Provided by:
manpages-es_1.55-10_all 
NOMBRE
res_init, res_query, res_search, res_querydomain, res_mkquery,
res_send, dn_comp, dn_expand - rutinas "resolver" (de resolucion)
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'ON
Estas funciones hacen peticiones e interpretan las respuestas de los
servidores de nombres de dominio de Internet.
La funcion res_init() lee los ficheros de configuracion (ver
resolv+(8)) para conseguir el nombre del dominio por defecto, orden de
busqueda y la direccion(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 funcion 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 funcion res_search() hace una peticion y espera la respuesta como
res_query(), pero ademas implementa las reglas por defecto y las de
busqueda controladas por RES_DEFNAMES y RES_DNSRCH (ver mas abajo la
descripcion de las opciones de _res).
La funcion res_querydomain() hace una peticion utilizando res_query()
en la concatenacion de name y domain.
Las siguientes son funciones de un nivel mas bajo utilizadas por
res_query().
La funcion res_mkquery() construye un mensaje de peticion en buf de
longitud buflen para el nombre de dominio dname. El tipo de peticion
op normalmente es QUERY, pero puede ser cualquiera de los tipos
definidos en <arpa/nameser.h>. newrr actualmente no se usa.
La funcion res_send() envia una peticion preformateada, dada en msg de
longitud msglen y devuelve la respuesta en answer que tiene longitud
anslen. Este llamara a res_init(), si aun no ha sido llamado.
La funcion dn_comp() comprime el nombre de dominio exp_dn y lo guarda
en el buffer comp_dn de longitud length. La compresion 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 limite de la matriz esta 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 funcion 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
tamano length. El nombre comprimido esta contenido en una peticion o
mensaje de respuesta, y msg apunta al principio del mensaje.
Las rutinas del "resolver" usan la configuracion global e informacion
del estado contenida en la estructura _res, definida en <resolv.h>. El
unico campo que puede manipular normalmente el usuario es _res.options.
Este campo puede contener un "o (OR) logico" bit a bit de las
siguientes opciones:
RES_INIT
Cierto si res_init() ha sido llamado.
RES_DEBUG
Imprimir mensajes de depuracion.
RES_AAONLY
Aceptar respuestas autoritativas solamente. res_send() continua
hasta que encuentra una respuesta autoritativa o devuelve un
error. [Aun no implementado].
RES_USEVC
Usar conexiones TCP para las peticiones, en vez de datagramas
UDP.
RES_PRIMARY
Hacer peticion solamente al servidor de nombres de dominio
primario.
RES_IGNTC
Ignorar errores de truncado. No reintentar con TCP. [Aun no
implementado].
RES_RECURSE
Poner a 1 el bit de recursion deseada en las peticiones. La
recursion es llevada a cabo por el servidor de nombres de
dominio, no por res_send(). [Activado por defecto].
RES_DEFNAMES
Si esta puesto a 1, res_search() anadira 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 conexion TCP abierta entre
peticiones.
RES_DNSRCH
Si esta a 1, res_search() buscara nombres de host en el dominio
actual y en los dominios "padre". Esta opcion es usada por
gethostbyname(3). [Activado por defecto].
VALOR DEVUELTO
La funcion res_init() devuelve 0 si hay exito, 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 configuracion de resolver
/etc/host.conf fichero de configuracion de resolver
CONFORME A
BSD 4.3
V'EASE TAMBI'EN
gethostbyname(3), hostname(7), named(8), resolv+(8)