Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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> >>.