Provided by: manpages-pt-dev_20040726-2_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 domnio.

       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)