Provided by: manpages-pt-dev_20040726-5_all bug

NOME

       res_init,  res_query,  res_search,  res_querydomain,  res_mkquery, res_send, dn_comp, dn_expand - rotinas
       resolvedoras

SINOPSE

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

DESCRIÇÃO

       Estas funções fazem pesquisas e interpretam as respostas de servidores de nomes de domínio da Internet.

       A função res_init() lê os arquivos de configuração (veja resolv+(8)) para obter o nome de domínio padrão,
       a ordem de buscas e o(s) endereço(s) do(s) servidor(es) de nome. Se nenhum servidor é dado, o host  local
       é  tentado.  Se  nenhum  domínio  é  dado,  é  usado aquele domínio associado ao host local. Ele pode ser
       sobreposto pela variável de ambiente LOCALDOMAIN.   res_init()  é  executado  normalmente  pela  primeira
       chamada a uma das outras funções.

       A  função  res_query()  pesquisa o servidor de nome para o nome de domínio totalmente qualificado name do
       tipo e da classe especificada. O que for retornado é deixado  no  buffer  answer  de  comprimento  anslen
       fornecido pelo chamador.

       A função res_search() faz uma pesquisa e espera pela resposta como res_query(), mas além disso implementa
       as  regras  padrão e de busca controladas por RES_DEFNAMES e RES_DNSRCH (veja a descrição das opções _res
       abaixo).

       A função res_querydomain() faz uma pesquisa usando res_query() sobre a conecatenação de nome e domínio.

       As seguintes funções são rotinas de nível mais baixo, usadas por res_query().

       A função res_mkquery() constrói uma mensagem de pesquisa em buf de comprimento  buflen  para  o  nome  de
       domínio  dname. O tipo de pesquisa op é geralmente QUERY, mas pode ser qualquer um dos tipos definidos em
       <arpa/nameser.h>. newrr não é usado correntemente.

       A função res_send() envia uma pesquisa pré-formatada dada em  msg  de  comprimento  msglen  e  retorna  a
       resposta  em answer que tem comprimento anslen. Ela chamará a função res_init(), se ela já não tiver sido
       chamada.

       A função dn_comp() comprime o nome de domínio exp_dn e  o  armazena  no  buffer  comp_dn  de  comprimento
       length.  A  compressão  usa uma matriz de ponteiros dnptrs para nomes previamente comprimidos na mensagem
       corrente. O primeiro ponteiro aponta para o início da mensagem, e a lista termina com NULL. O  limite  da
       matriz  é  especificada  por  lastdnptr.  Se  dnptr  é  NULL, os nomes de domínio não são comprimidos. Se
       lastdnptr é NULL, a lista de títulos não é atualizada.

       A função dn_expand() expande o nome de domínio comprimido comp_dn para um nome de domínio completo, que é
       colocado no buffer exp_dn de tamanho length. O nome comprimido está contido em uma pesquisa  ou  mensagem
       de resposta, e msg aponta para o início da mensagem.

       As  rotinas  de  resolução usam configurações globais e informações de estado contidas na estrutura _res,
       que está definida em <resolv.h>. O único campo que normalmente é manipulado pelo usuário é  _res.options.
       Este campo pode conter um 'OU' bit-a-bit das seguintes opções:

       RES_INIT
              Verdadeiro se res_init() foi chamado.

       RES_DEBUG
              Imprime mensagens de eliminação de erros.

       RES_AAONLY
              Aceita   somente   respostas   autoritativas.  res_send()  continua  até  encontrar  uma  resposta
              autoritativas ou retorna um erro.  [Não implementado correntemente].

       RES_USEVC
              Usa conexões TCP para pesquisas em vez de datagramas UDP.

       RES_PRIMARY
              Somente servidor primário de nome de domínio de pesquisa.

       RES_IGNTC
              Ignora erros de truncamento. Não tenta novamente com TCP.  [Não implementado correntemente].

       RES_RECURSE
              Seta o bit de recursão desejado em pesquisas. A recursão é realizada  pelo  servidor  de  nome  de
              domínio, e não por res_send().  [Habilitado por padrão].

       RES_DEFNAMES
              Se setado, res_search() acrescentará o nome de domínio padrão a nomes de componentes simples, isto
              é, aqueles que não contêm um ponto. [Habilitado por padrão].

       RES_STAYOPEN
              Usado com RES_USEVC para manter a conexão TCP aberta entre pesquisas.

       RES_DNSRCH
              Se setado, res_search() buscará nomes de hosts no domínio corrente e em domínios pais.  Esta opção
              é usada por gethostbyname(3).  [Habilitado por padrão].

VALOR DE RETORNO

       A função res_init() retorna 0 em caso de sucesso, ou -1 se ocorrer um erro.

       As   funções   res_query(),  res_search(),  res_querydomain(),  res_mkquery()  e  res_send()  retornam  o
       comprimento da resposta, ou -1 se ocorre um erro.

       The dn_comp() and dn_expand() functions return the length of the compressed  name,  or  -1  if  an  error
       occurs.

FILES

       /etc/resolv.conf          arquivo de configuração do resolvedor
       /etc/host.conf            arquivo de configuração do resolvedor

CONFORME

       BSD 4.3

VEJA TAMBÉM

       gethostbyname(3), hostname(7), named(8), resolv+(8)

TRADUZIDO PELO LDP-BR EM dd/MM/AAAA

       RUBENS  DE  JESUS  NOGUEIRA <darkseid99@usa.net> (tradução) XXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx>
       (revisão)

BSD                                            21 de maio de 1993                                    RESOLVER(3)