Provided by: manpages-es_1.55-10_all bug

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)