.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" References consulted: .\" Linux libc source code .\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) .\" 386BSD man pages .\" Modified Sun Jul 25 11:01:53 1993 by Rik Faith (faith@cs.unc.edu) .TH RESOLVER 3 "21 de maio de 1993" "BSD" "Manual do Programador Linux" .SH NOME res_init, res_query, res_search, res_querydomain, res_mkquery, res_send, dn_comp, dn_expand \- rotinas resolvedoras .SH SINOPSE .nf .B #include .B #include .B #include .B extern struct state _res; .sp .B int res_init(void); .sp .BI "int res_query(const char *" dname ", int " class ", int " type , .RS .BI "unsigned char *" answer ", int " anslen ); .RE .sp .BI "int res_search(const char *" dname ", int " class ", int " type , .RS .BI "unsigned char *" answer ", int " anslen ); .RE .sp .BI "int res_querydomain(const char *" name ", const char *" domain , .RS .BI "int " class ", int " type ", unsigned char *" answer , .BI "int " anslen ); .RE .sp .BI "int res_mkquery(int " op ", const char *" dname ", int " class , .RS .BI "int " type ", char *" data ", int " datalen ", struct rrec *" newrr , .BI "char *" buf ", int " buflen ); .RE .sp .BI "int res_send(const char *" msg ", int " msglen ", char *" answer , .RS .BI "int " anslen ); .RE .sp .BI "int dn_comp(unsigned char *" exp_dn ", unsigned char *" comp_dn , .RS .BI "int " length ", unsigned char **" dnptrs ", unsigned char *" exp_dn , .BI "unsigned char **" lastdnptr ); .RE .sp .BI "int dn_expand(unsigned char *" msg ", unsigned char *" eomorig , .RS .BI "unsigned char *" comp_dn ", unsigned char *" exp_dn , .BI "int " length ); .RE .fi .SH DESCRIÇÃO Estas funções fazem pesquisas e interpretam as respostas de servidores de nomes de domínio da Internet. .PP A função \fBres_init()\fP 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. \fBres_init()\fP é executado normalmente pela primeira chamada a uma das outras funções. .PP A função \fBres_query()\fP pesquisa o servidor de nome para o nome de domínio totalmente qualificado \fIname\fP do \fItipo\fP e da \fIclasse\fP especificada. O que for retornado é deixado no buffer \fIanswer\fP de comprimento \fIanslen\fP fornecido pelo chamador. .PP A função \fBres_search()\fP faz uma pesquisa e espera pela resposta como \fBres_query()\fP, 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 \fI_res\fP abaixo). .PP A função \fBres_querydomain()\fP faz uma pesquisa usando \fBres_query()\fP sobre a conecatenação de \fInome\fP e \fIdomínio\fP. .PP As seguintes funções são rotinas de nível mais baixo, usadas por \fBres_query()\fP. .PP A função \fBres_mkquery()\fP constrói uma mensagem de pesquisa em \fIbuf\fP de comprimento \fIbuflen\fP para o nome de domínio \fIdname\fP. O tipo de pesquisa \fIop\fP é geralmente QUERY, mas pode ser qualquer um dos tipos definidos em \fI\fP. \fInewrr\fP não é usado correntemente. .PP A função \fBres_send()\fP envia uma pesquisa pré-formatada dada em \fImsg\fP de comprimento \fImsglen\fP e retorna a resposta em \fIanswer\fP que tem comprimento \fIanslen\fP. Ela chamará a função \fBres_init()\fP, se ela já não tiver sido chamada. .PP A função \fBdn_comp()\fP comprime o nome de domínio \fIexp_dn\fP e o armazena no buffer \fIcomp_dn\fP de comprimento \fIlength\fP. A compressão usa uma matriz de ponteiros \fIdnptrs\fP 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 \fIlastdnptr\fP. Se \fIdnptr\fP é NULL, os nomes de domínio não são comprimidos. Se \fIlastdnptr\fP é NULL, a lista de títulos não é atualizada. .PP A função \fPdn_expand()\fP expande o nome de domínio comprimido \fIcomp_dn\fP para um nome de domínio completo, que é colocado no buffer \fIexp_dn\fP de tamanho \fIlength\fP. O nome comprimido está contido em uma pesquisa ou mensagem de resposta, e \fImsg\fP aponta para o início da mensagem. .PP As rotinas de resolução usam configurações globais e informações de estado contidas na estrutura \fI_res\fP, que está definida em \fI\fP. O único campo que normalmente é manipulado pelo usuário é \fI_res.options\fP. Este campo pode conter um 'OU' bit-a-bit das seguintes opções: .sp .TP .B RES_INIT Verdadeiro se \fBres_init()\fP foi chamado. .TP .B RES_DEBUG Imprime mensagens de eliminação de erros. .TP .B RES_AAONLY Aceita somente respostas autoritativas. \fBres_send()\fP continua até encontrar uma resposta autoritativas ou retorna um erro. [Não implementado correntemente]. .TP .B RES_USEVC Usa conexões TCP para pesquisas em vez de datagramas UDP. .TP .B RES_PRIMARY Somente servidor primário de nome de domínio de pesquisa. .TP .B RES_IGNTC Ignora erros de truncamento. Não tenta novamente com TCP. [Não implementado correntemente]. .TP .B 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 \fBres_send()\fP. [Habilitado por padrão]. .TP .B RES_DEFNAMES Se setado, \fBres_search()\fP 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]. .TP .B RES_STAYOPEN Usado com RES_USEVC para manter a conexão TCP aberta entre pesquisas. .TP .B RES_DNSRCH Se setado, \fBres_search()\fP buscará nomes de hosts no domínio corrente e em domínios pais. Esta opção é usada por .BR gethostbyname (3). [Habilitado por padrão]. .SH "VALOR DE RETORNO" A função \fBres_init()\fP retorna 0 em caso de sucesso, ou \-1 se ocorrer um erro. .PP As funções \fBres_query()\fP, \fBres_search()\fP, \fBres_querydomain()\fP, \fBres_mkquery()\fP e \fBres_send()\fP retornam o comprimento da resposta, ou \-1 se ocorre um erro. .PP The \fBdn_comp()\fP and \fBdn_expand()\fP functions return the length of the compressed name, or \-1 if an error occurs. .SH FILES .nf /etc/resolv.conf arquivo de configuração do resolvedor /etc/host.conf arquivo de configuração do resolvedor .fi .SH "CONFORME" BSD 4.3 .SH "VEJA TAMBÉM" .BR gethostbyname "(3), " hostname "(7), " named "(8), " resolv+ (8) .SH TRADUZIDO PELO LDP-BR EM dd/MM/AAAA \&\fR\&\f(CWRUBENS DE JESUS NOGUEIRA (tradução)\fR \&\fR\&\f(CWXXXXXX XX XXXXX XXXXXXXX (revisão)\fR