Provided by: manpages-pt-dev_20040726-4_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)