Provided by: manpages-es_1.55-3_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)