Provided by: manpages-fr_1.67.0-1_all bug

NOM

       resolver,    res_init,    res_query,    res_search,    res_querydomain,
       res_mkquery, res_send, dn_comp, dn_expand - Routines de  résolution  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 classe, 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 *exp_dn,
              unsigned char **lastdnptr);

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

DESCRIPTION

       Ces  fonctions interrogent, et interprètent les réponses de serveurs de
       noms Internet.

       La  fonction  res_init()  lit  les  fichiers  de  configuration   (voir
       resolv+(8))  pour  obtenir  le  nom  de  domaine par défaut, l’ordre de
       recherche et l’adresse du (des) serveur(s) de noms.  Si  aucun  serveur
       n’est  donné,  on  essaye  de contacter l’hôte local.  Si aucun domaine
       n’est donné, on utilise celui associé à l’hôte local.  Ceci  peut  être
       surchargé  par la variable d’environnement LOCALDOMAIN.  res_init() est
       normalement  exécutée  lors  du  premier  appel  à  l’une  des   autres
       fonctions.

       La  fonction  res_query()  interroge  le serveur de noms pour le nom de
       domaine pleinement qualifié name du type  spécifié,  et  de  la  classe
       donnée.  La réponse est placée dans le buffer answer de longueur anslen
       qui doit être fourni par l’appelant.

       La fonction res_search() interroge un serveur, et  attend  la  réponse,
       comme  res_query(),  mais implémente de plus les règles de recherche et
       de valeurs par défaut contrôlées 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 concaténation de name et domain.

       Les fonctions suivantes sont  des  routines  bas-niveau  utilisées  par
       res_query().

       La  fonction  res_mkquery()  construit une requête dans buf de longueur
       buflen concernant le nom de domaine dname.  Le type op de  requête  est
       généralement  QUERY,  mais  on  peut  également utiliser l’un des types
       définis dans <arpa/nameser.h>.  newrr ne sert à rien actuellemennt.

       La fonction res_send() envoie une requête préformatée, située dans  msg
       de  longueur  msglen  et  renvoie  la  réponse  dans  answer qui est de
       longueur anslen.  Elle appellera res_init(), si ça n’a pas  encore  été
       fait.

       La  fonction  dn_comp() compresse le nom de domaine exp_dn et le stocke
       dans le buffer comp_dn de longueur length.  La compression utilise  une
       table  de  pointeurs  dnptrs  vers  les noms précédemment compressés du
       message en cours. Le premier pointeur vise le début du message,  et  la
       table  se  termine  par  NULL.   La limite de la table est indiquée par
       lastdnptr.  Si dnptr est  NULL,  les  noms  de  domaines  ne  sont  pas
       compressés.   Si  lastdnptr  est  NULL, la liste d’étiquettes n’est pas
       mise à jour.

       La fonction dn_expand() développe le nom de domaine  compressé  comp_dn
       en  un  nom  de  domaine  complet, qui est ensuite placé dans le buffer
       exp_dn de taille  length.   Le  nom  compressé  est  contenu  dans  une
       requête,  ou  dans un message de réponse, et msg pointe sur le début du
       message.

       Les routines de résolution de noms utilisent une configuration  globale
       et  des  informations  d’état contenues dans la structure _res, définie
       dans  <resolv.h>.   Le   seul   champ   habituellement   manipulé   par
       l’utilisateur  est  _res.options.   Il contient un OU binaire entre les
       options suivantes :

       RES_INIT
              Vrai si res_init() a été appelé.

       RES_DEBUG
              Afficher les messages de débugging.

       RES_AAONLY
              N’accepter que les réponses  des  serveurs  autoritatifs  ([NDT]
              "autoritatif"  est  un barbarisme, voir "L’administration réseau
              sous Linux" chapitre 2.6.4 pour une justification de son emploi)
              res_send()  continue  jusqu’à trouver un serveur autoritatif, ou
              renvoie une erreur. Pas encore implémenté.

       RES_USEVC
              Utiliser des connexions TCP pour les interrogations  plutôt  que
              des datagrammes UDP.

       RES_PRIMARY
              N’interroger que le serveur de domaines primaire.

       RES_IGNTC
              Ignorer  les  erreurs de troncature. Ne pas ré-essayer avec TCP.
              Pas encore implémenté.

       RES_RECURSE
              Fixer dans les requêtes le bit de récursion.  La  récursion  est
              prise  en  charge  par  le serveur de nom du domaine, et pas par
              res_send().  [Active par défaut].

       RES_DEFNAMES
              res_search() ajoutera le nom de  domaine  par  défaut  aux  noms
              simples,  par  exemple  ceux ne contenant pas de point.  [Active
              par defaut].

       RES_STAYOPEN
              Utilisée avec RES_USEVC pour garder ouverte  une  connexion  TCP
              entre les interrogations successives.

       RES_DNSRCH
              res_search()  recherchera  les  noms  d’hôtes  dans  le  domaine
              courant, et dans les domaines parents. Cette option est utilisée
              par gethostbyname(3).  [Active par défaut].

VALEUR RENVOYÉE

       La  fonction  res_init() renvoie 0 si elle réussit, 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 réponse, ou -1
       si une erreur se produit.

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

FICHIERS

       /etc/resolv.conf   Configuration de la résolution de noms.
       /etc/host.conf     Configuration de la résolution de noms.

CONFORMITÉ

       BSD 4.3

VOIR AUSSI

       gethostbyname(3), hostname(7), named(8), resolv+(8)

TRADUCTION

       Christophe Blaess, 1996-2003.