resolver

RESOLVER(3)               Manuel du programmeur Linux              RESOLVER(3)



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 __res_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, const unsigned char *data, int datalen,
              const unsigned char *newrr, unsigned char *buf, int buflen);

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

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

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

       Effectuez l'édition des liens avec l'option -lresolv.

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

       La fonction res_init() lit les fichiers de configuration (consultez
       resolv.conf(5)) pour obtenir le nom de domaine par défaut, l'ordre de
       recherche et l'adresse du ou des serveurs de noms. Si aucun serveur
       n'est donné, l'hôte local est essayé. Si aucun domaine n'est donné,
       celui associé à l'hôte local est utilisé. Cela 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 indiqué, et de la classe
       donnée. La réponse est placée dans le tampon 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 l'un des types définis dans
       <arpa/nameser.h> peut également être utilisé. newrr ne sert à rien
       actuellement.

       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 appelle 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 tampon 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 tampon
       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ée.

       RES_DEBUG
              Afficher les messages de débogage. Cette option n'est
              disponible que si le débogage a été activé lors de la
              construction la gblic, ce qui n'est pas le cas par défaut.

       RES_AAONLY
              N'accepter que les réponses des serveurs faisant autorité.
              res_send() continue jusqu'Ã  trouver un serveur faisant
              autorité, 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
              Définir dans les requêtes le bit de récursion. La récursion
              est prise en charge par le serveur de noms du domaine, et pas
              par res_send() [activé par défaut].

       RES_DEFNAMES
              res_search() ajoutera le nom de domaine par défaut aux noms
              simples, c'est-à -dire ceux ne contenant pas de point [activé
              par défaut].

       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) [activé par défaut].

       Cette liste n'est pas exhaustive. D'autres attributs sont décrits dans
       resolv.conf(5).

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), resolv.conf(5), resolver(5), hostname(7), named(8)

COLOPHON
       Cette page fait partie de la publication 3.70 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler des
       anomalies peuvent être trouvées à l'adresse
       http://www.kernel.org/doc/man-pages/.

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

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

       Veuillez signaler toute erreur de traduction en écrivant Ã
       <perkamon-fr@traduc.org>.

       Vous pouvez toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».



GNU                               28 mai 2014                      RESOLVER(3)