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 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)