Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       resolver,    res_init,    res_query,    res_search,    res_querydomain,
       res_mkquery, res_send, dn_comp, dn_expand - Routines de  resolution  de
       noms

SYNOPSIS

       #include <netinet/in.h>
       #include <arpa/nameser.h>
       #include <resolv.h>
       extern struct state _res;

       int res_init(void);

       int res_query(const char *dname, int classe, int type,
              unsigned char *answer, int anslen);

       int res_search(const char *dname, int classe, int type,
              unsigned char *answer, int anslen);

       int res_querydomain(const char *name, const char *domain,
              int classe, int type, unsigned char *answer, int anslen);

       int res_mkquery(int op, const char *dname, int class,
              int type, char *data, int datalen, struct rrec *newrr,
              char *buf, int buflen);

       int res_send(const char *msg, int msglen, char *answer,
              int anslen);

       int dn_comp(unsigned char *exp_dn, unsigned char *comp_dn,
              int length, unsigned char **dnptrs, unsigned char **lastdnptr);

       int dn_expand(unsigned char *msg, unsigned char *eomorig,
              unsigned char *comp_dn, char *exp_dn,
              int length);

       Effectuez l'edition des liens avec l'option -lresolv.

DESCRIPTION

       Ces  fonctions  interrogent et interpretent les reponses de serveurs de
       noms Internet.

       La  fonction  res_init()  lit  les  fichiers  de  configuration   (voir
       resolv.conf(5))  pour  obtenir le nom de domaine par defaut, l'ordre de
       recherche et l'adresse du (des) serveur(s) de noms.  Si  aucun  serveur
       n'est  donne,  on  essaye  de  contacter l'hote local. Si aucun domaine
       n'est donne, on utilise celui associe a l'hote local.  Ceci  peut  etre
       surcharge  par  la variable d'environnement LOCALDOMAIN. res_init() est
       normalement  executee  lors  du  premier  appel  a  l'une  des   autres
       fonctions.

       La  fonction  res_query()  interroge  le serveur de noms pour le nom de
       domaine pleinement qualifie name du type  specifie,  et  de  la  classe
       donnee.  La reponse est placee dans le tampon answer de longueur anslen
       qui doit etre fourni par l'appelant.

       La fonction res_search() interroge un serveur, et  attend  la  reponse,
       comme  res_query(),  mais implemente de plus les regles de recherche et
       de valeurs par defaut controlees par RES_DEFNAMES et  RES_DNSRCH  (voir
       les options de _res plus bas).

       La   fonction   res_querydomain()  interroge  le  serveur  en  appelant
       res_query() avec la concatenation de name et domain.

       Les fonctions suivantes sont  des  routines  bas-niveau  utilisees  par
       res_query().

       La  fonction  res_mkquery()  construit une requete dans buf de longueur
       buflen concernant le nom de domaine dname. Le type op  de  requete  est
       generalement  QUERY,  mais  on  peut  egalement utiliser l'un des types
       definis dans <arpa/nameser.h>. newrr ne sert a rien actuellement.

       La fonction res_send() envoie une requete preformatee, situee dans  msg
       de  longueur  msglen  et  renvoie  la  reponse  dans  answer qui est de
       longueur anslen. Elle appelle res_init(), si  ca  n'a  pas  encore  ete
       fait.

       La  fonction  dn_comp() compresse le nom de domaine exp_dn et le stocke
       dans le tampon comp_dn de longueur length. La compression  utilise  une
       table  de  pointeurs  dnptrs  vers  les noms precedemment compresses du
       message en cours. Le premier pointeur vise le debut du message,  et  la
       table  se  termine  par  NULL.  La  limite de la table est indiquee par
       lastdnptr. Si dnptr  est  NULL,  les  noms  de  domaines  ne  sont  pas
       compresses. Si lastdnptr est NULL, la liste d'etiquettes n'est pas mise
       a jour.

       La fonction dn_expand() developpe le nom de domaine  compresse  comp_dn
       en  un  nom  de  domaine  complet, qui est ensuite place dans le tampon
       exp_dn de taille length. Le nom compresse est contenu dans une requete,
       ou dans un message de reponse, et msg pointe sur le debut du message.

       Les  routines de resolution de noms utilisent une configuration globale
       et des informations d'etat contenues dans la  structure  _res,  definie
       dans   <resolv.h>.   Le   seul   champ   habituellement   manipule  par
       l'utilisateur est _res.options. Il contient un  OU  binaire  entre  les
       options suivantes :

       RES_INIT
              Vrai si res_init() a ete appelee.

       RES_DEBUG
              Afficher les messages de debogage.

       RES_AAONLY
              N'accepter  que  les  reponses  des serveurs autoritatifs (Ndt :
              << autoritatif >> est un  barbarisme,  voir  << L'administration
              reseau  sous  Linux >>  chapitre 2.6.4 pour une justification de
              son emploi). res_send()  continue  jusqu'a  trouver  un  serveur
              autoritatif, ou renvoie une erreur. Pas encore implemente.

       RES_USEVC
              Utiliser  des  connexions TCP pour les interrogations plutot que
              des datagrammes UDP.

       RES_PRIMARY
              N'interroger que le serveur de domaines primaire.

       RES_IGNTC
              Ignorer les erreurs de troncature. Ne pas  reessayer  avec  TCP.
              Pas encore implemente.

       RES_RECURSE
              Fixer  dans  les  requetes le bit de recursion. La recursion est
              prise en charge par le serveur de nom du  domaine,  et  pas  par
              res_send(). [Active par defaut].

       RES_DEFNAMES
              res_search()  ajoutera  le  nom  de  domaine par defaut aux noms
              simples, c'est-a-dire ceux ne contenant pas  de  point.  [Active
              par defaut].

       RES_STAYOPEN
              Utilisee  avec  RES_USEVC  pour garder ouverte une connexion TCP
              entre les interrogations successives.

       RES_DNSRCH
              res_search()  recherchera  les  noms  d'hotes  dans  le  domaine
              courant, et dans les domaines parents. Cette option est utilisee
              par gethostbyname(3). [Active par defaut].

VALEUR RENVOY'EE

       La fonction res_init() renvoie 0 si elle reussit, ou -1 si  une  erreur
       se produit.

       Les    fonctions    res_query(),    res_search(),    res_querydomain(),
       res_mkquery() et res_send() renvoient la longueur de la reponse, ou  -1
       si une erreur se produit.

       Les  fonctions  dn_comp()  et  dn_expand() renvoient la longueur du nom
       compresse, ou -1 si une erreur se produit.

FICHIERS

       /etc/resolv.conf   Configuration de la resolution de noms.
       /etc/host.conf     Configuration de la resolution de noms.

CONFORMIT'E

       BSD 4.3.

VOIR AUSSI

       gethostbyname(3), resolv.conf(5), resolver(5), hostname(7), named(8)

COLOPHON

       Cette page fait partie de  la  publication  3.27  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain  Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Nicolas
       Francois et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.