Provided by:
manpages-es_1.55-3_all 
NOMBRE
res_init, res_query, res_search, res_querydomain, res_mkquery,
res_send, dn_comp, dn_expand - rutinas "resolver" (de resolución)
SINOPSIS
#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 class, int type,
unsigned char *answer, int anslen);
int res_search(const char *dname, int class, int type,
unsigned char *answer, int anslen);
int res_querydomain(const char *name, const char *domain,
int class, 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 *exp_dn,
unsigned char **lastdnptr);
int dn_expand(unsigned char *msg, unsigned char *eomorig,
unsigned char *comp_dn, unsigned char *exp_dn, int length);
DESCRIPCIÓN
Estas funciones hacen peticiones e interpretan las respuestas de los
servidores de nombres de dominio de Internet.
La función res_init() lee los ficheros de configuración (ver
resolv+(8)) para conseguir el nombre del dominio por defecto, orden de
búsqueda y la dirección(es) del servidor(es) de nombres. Si no se
proporciona servidor, se intenta con el host local. Si no se
proporciona dominio, se usa el asociado al host local. Este puede
sobreescribirse con la variable de entorno LOCALDOMAIN. Normalmente
res_init() es ejecutado por la primera llamada a una de las otras
funciones.
La función res_query() pide al servidor de nombres el nombre de dominio
completamente cualificado name de type y class especificados. La
respuesta se deja en el buffer answer de longitud anslen proporcionado
por quien realiza la llamada.
La función res_search() hace una petición y espera la respuesta como
res_query(), pero además implementa las reglas por defecto y las de
búsqueda controladas por RES_DEFNAMES y RES_DNSRCH (ver más abajo la
descripción de las opciones de _res).
La función res_querydomain() hace una petición utilizando res_query()
en la concatenación de name y domain.
Las siguientes son funciones de un nivel más bajo utilizadas por
res_query().
La función res_mkquery() construye un mensaje de petición en buf de
longitud buflen para el nombre de dominio dname. El tipo de petición
op normalmente es QUERY, pero puede ser cualquiera de los tipos
definidos en <arpa/nameser.h>. newrr actualmente no se usa.
La función res_send() envía una petición preformateada, dada en msg de
longitud msglen y devuelve la respuesta en answer que tiene longitud
anslen. Este llamará a res_init(), si aún no ha sido llamado.
La función dn_comp() comprime el nombre de dominio exp_dn y lo guarda
en el buffer comp_dn de longitud length. La compresión usa una matriz
de punteros dnptrs a nombres previamente comprimidos en el mensaje
actual. El primero de los punteros apunta al principio del mensaje y la
lista termina con NULL. El límite de la matriz está especificado por
lastdnptr. Si dnptr es NULL, los nombres de dominio no se comprimen.
Si lastdnptr es NULL, la lista de etiquetas no se actualiza.
La función dn_expand() expande el nombre de dominio comprimido comp_dn
a un nombre de dominio completo, y es puesto en el buffer exp_dn de
tamaño length. El nombre comprimido está contenido en una petición o
mensaje de respuesta, y msg apunta al principio del mensaje.
Las rutinas del "resolver" usan la configuración global e información
del estado contenida en la estructura _res, definida en <resolv.h>. El
único campo que puede manipular normalmente el usuario es _res.options.
Este campo puede contener un "o (OR) lógico" bit a bit de las
siguientes opciones:
RES_INIT
Cierto si res_init() ha sido llamado.
RES_DEBUG
Imprimir mensajes de depuración.
RES_AAONLY
Aceptar respuestas autoritativas solamente. res_send() continua
hasta que encuentra una respuesta autoritativa o devuelve un
error. [Àún no implementado].
RES_USEVC
Usar conexiones TCP para las peticiones, en vez de datagramas
UDP.
RES_PRIMARY
Hacer petición solamente al servidor de nombres de dominio
primario.
RES_IGNTC
Ignorar errores de truncado. No reintentar con TCP. [Aún no
implementado].
RES_RECURSE
Poner a 1 el bit de recursión deseada en las peticiones. La
recursión es llevada a cabo por el servidor de nombres de
dominio, no por res_send(). [Activado por defecto].
RES_DEFNAMES
Si está puesto a 1, res_search() añadirá el nombre de dominio
por defecto a los nombres de componentes simples, p.ej. aquellos
que no contienen punto. [Activado por defecto].
RES_STAYOPEN
Usado con RES_USEVC para mantener la conexión TCP abierta entre
peticiones.
RES_DNSRCH
Si está a 1, res_search() buscará nombres de host en el dominio
actual y en los dominios "padre". Esta opción es usada por
gethostbyname(3). [Activado por defecto].
VALOR DEVUELTO
La función res_init() devuelve 0 si hay éxito, o -1 si hubo un error.
Las funciones res_query(), res_search(), res_querydomain(),
res_mkquery() y res_send() devuelven la longitud de la respuesta, o -1
si hubo un error.
Las funciones dn_comp() y dn_expand() devuelven la longitud del nombre
comprimido, o -1 si hubo un error.
FICHEROS
/etc/resolv.conf fichero de configuración de resolver
/etc/host.conf fichero de configuración de resolver
CONFORME A
BSD 4.3
VÉASE TAMBIÉN
gethostbyname(3), hostname(7), named(8), resolv+(8)