diff options
author | peter <peter@FreeBSD.org> | 1996-08-30 19:40:05 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1996-08-30 19:40:05 +0000 |
commit | d976fee71f9db074ad153373647c3e747415556c (patch) | |
tree | a8bc6b155fd1945e0f70be176512096e41a3ec2d /lib/libc/net/resolver.3 | |
parent | 54b29fe2cd76130677ad46471e6e642b9da747b6 (diff) | |
download | FreeBSD-src-d976fee71f9db074ad153373647c3e747415556c.zip FreeBSD-src-d976fee71f9db074ad153373647c3e747415556c.tar.gz |
back out last two changes, this caused the mandoc pages to be replaced by
man pages. I'll fold in the real changes in a seperate commit.
Diffstat (limited to 'lib/libc/net/resolver.3')
-rw-r--r-- | lib/libc/net/resolver.3 | 452 |
1 files changed, 218 insertions, 234 deletions
diff --git a/lib/libc/net/resolver.3 b/lib/libc/net/resolver.3 index a0713a2..4014c72 100644 --- a/lib/libc/net/resolver.3 +++ b/lib/libc/net/resolver.3 @@ -1,175 +1,175 @@ -.\" Copyright (c) 1985, 1995 The Regents of the University of California. -.\" All rights reserved. +.\" Copyright (c) 1985, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. .\" -.\" Redistribution and use in source and binary forms are permitted provided -.\" that: (1) source distributions retain this entire copyright notice and -.\" comment, and (2) distributions including binaries display the following -.\" acknowledgement: ``This product includes software developed by the -.\" University of California, Berkeley and its contributors'' in the -.\" documentation or other materials provided with the distribution and in -.\" all advertising materials mentioning features or use of this software. -.\" Neither the name of the University nor the names of its contributors may -.\" be used to endorse or promote products derived from this software without -.\" specific prior written permission. -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED -.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF -.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. .\" -.\" @(#)resolver.3 6.5 (Berkeley) 6/23/90 -.\" $Id: resolver.3,v 8.4 1996/05/09 05:59:10 vixie Exp $ +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" -.TH RESOLVER 3 "December 11, 1995 -.UC 4 -.SH NAME -res_query, res_search, res_mkquery, res_send, res_init, dn_comp, dn_expand \- resolver routines -.SH SYNOPSIS -.B #include <sys/types.h> -.br -.B #include <netinet/in.h> -.br -.B #include <arpa/nameser.h> -.br -.B #include <resolv.h> -.PP -.B "res_query(dname, class, type, answer, anslen)" -.br -.B const char *dname; -.br -.B int class, type; -.br -.B u_char *answer; -.br -.B int anslen; -.PP -.B "res_search(dname, class, type, answer, anslen)" -.br -.B const char *dname; -.br -.B int class, type; -.br -.B u_char *answer; -.br -.B int anslen; -.PP -.B "res_mkquery(op, dname, class, type, data, datalen, newrr, buf, buflen)" -.br -.B int op; -.br -.B const char *dname; -.br -.B int class, type; -.br -.B const char *data; -.br -.B int datalen; -.br -.B struct rrec *newrr; -.br -.B u_char *buf; -.br -.B int buflen; -.PP -.B res_send(msg, msglen, answer, anslen) -.br -.B const u_char *msg; -.br -.B int msglen; -.br -.B u_char *answer; -.br -.B int anslen; -.PP -.B res_init() -.PP -.B dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr) -.br -.B const char *exp_dn; -.br -.B u_char *comp_dn; -.br -.B int length; -.br -.B u_char **dnptrs, **lastdnptr; -.PP -.B dn_expand(msg, eomorig, comp_dn, exp_dn, length) -.br -.B const u_char *msg, *eomorig, *comp_dn; -.br -.B char *exp_dn; -.br -.B int length; -.PP -.B herror(const char *s) -.PP -.B hstrerror(int err) -.SH DESCRIPTION +.\" @(#)resolver.3 8.1 (Berkeley) 6/4/93 +.\" +.Dd June 4, 1993 +.Dt RESOLVER 3 +.Os BSD 4.3 +.Sh NAME +.Nm res_query , +.Nm res_search , +.Nm res_mkquery , +.Nm res_send , +.Nm res_init , +.Nm dn_comp , +.Nm dn_expand +.Nd resolver routines +.Sh SYNOPSIS +.Fd #include <sys/types.h> +.Fd #include <netinet/in.h> +.Fd #include <arpa/nameser.h> +.Fd #include <resolv.h> +.Fo res_query +.Fa "char *dname" +.Fa "int class" +.Fa "int type" +.Fa "u_char *answer" +.Fa "int anslen" +.Fc +.Fo res_search +.Fa "char *dname" +.Fa "int class" +.Fa "int type" +.Fa "u_char *answer" +.Fa "int anslen" +.Fc +.Fo res_mkquery +.Fa "int op" +.Fa "char *dname" +.Fa "int class" +.Fa "int type" +.Fa "char *data" +.Fa "int datalen" +.Fa "struct rrec *newrr" +.Fa "char *buf" +.Fa "int buflen" +.Fc +.Fo res_send +.Fa "char *msg" +.Fa "int msglen" +.Fa "char *answer" +.Fa "int anslen" +.Fc +.Fn res_init +.Fo dn_comp +.Fa "char *exp_dn" +.Fa "char *comp_dn" +.Fa "int length" +.Fa "char **dnptrs" +.Fa "char **lastdnptr" +.Fc +.Fo dn_expand +.Fa "u_char *msg" +.Fa "u_char *eomorig" +.Fa "u_char *comp_dn" +.Fa "u_char *exp_dn" +.Fa "int length" +.Fc +.Sh DESCRIPTION These routines are used for making, sending and interpreting query and reply messages with Internet domain name servers. -.PP +.Pp Global configuration and state information that is used by the resolver routines is kept in the structure -.IR _res . +.Em _res . Most of the values have reasonable defaults and can be ignored. Options stored in -.I _res.options +.Em _res.options are defined in -.I resolv.h +.Pa resolv.h and are as follows. Options are stored as a simple bit mask containing the bitwise ``or'' of the options enabled. -.IP RES_INIT +.Bl -tag -width RES_DEFNAMES +.It Dv RES_INIT True if the initial name server address and default domain name are initialized (i.e., -.I res_init +.Fn res_init has been called). -.IP RES_DEBUG +.It Dv RES_DEBUG Print debugging messages. -.IP RES_AAONLY +.It Dv RES_AAONLY Accept authoritative answers only. With this option, -.I res_send +.Fn res_send should continue until it finds an authoritative answer or finds an error. Currently this is not implemented. -.IP RES_USEVC -Use TCP connections for queries instead of UDP datagrams. -.IP RES_STAYOPEN -Used with RES_USEVC to keep the TCP connection open between +.It Dv RES_USEVC +Use +.Tn TCP +connections for queries instead of +.Tn UDP +datagrams. +.It Dv RES_STAYOPEN +Used with +.Dv RES_USEVC +to keep the +.Tn TCP +connection open between queries. This is useful only in programs that regularly do many queries. -UDP should be the normal mode used. -.IP RES_IGNTC -Unused currently (ignore truncation errors, i.e., don't retry with TCP). -.IP RES_RECURSE +.Tn UDP +should be the normal mode used. +.It Dv RES_IGNTC +Unused currently (ignore truncation errors, i.e., don't retry with +.Tn TCP ) . +.It Dv RES_RECURSE Set the recursion-desired bit in queries. This is the default. -(\c -.I res_send +.Pf ( Fn res_send does not do iterative queries and expects the name server to handle recursion.) -.IP RES_DEFNAMES +.It Dv RES_DEFNAMES If set, -.I res_search +.Fn res_search will append the default domain name to single-component names (those that do not contain a dot). This option is enabled by default. -.IP RES_DNSRCH +.It Dv RES_DNSRCH If this option is set, -.I res_search +.Fn res_search will search for host names in the current domain and in parent domains; see -.IR hostname (7). +.Xr hostname 7 . This is used by the standard host lookup routine -.IR gethostbyname (3). +.Xr gethostbyname 3 . This option is enabled by default. -.IP RES_NOALIASES -This option turns off the user level aliasing feature controlled by -the HOSTALIASES environment variable. Network daemons should set this option. -.PP +.El +.Pp The -.I res_init +.Fn res_init routine reads the configuration file (if any; see -.IR resolver (5)) +.Xr resolver 5 ) to get the default domain name, search list and the Internet address of the local name server(s). @@ -177,163 +177,147 @@ If no server is configured, the host running the resolver is tried. The current domain name is defined by the hostname if not specified in the configuration file; -it can be overridden by the environment variable LOCALDOMAIN. -This environment variable may contain several blank-separated -tokens if you wish to override the -.I "search list" -on a per-process basis. This is similar to the -.I search -command in the configuration file. -Another environment variable (``RES_OPTIONS'') can be set to -override certain internal resolver options which are otherwise -set by changing fields in the -.I _res -structure or are inherited from the configuration file's -.I options -command. The syntax of the ``RES_OPTIONS'' environment variable -is explained in -.IR resolver (5). +it can be overridden by the environment variable +.Ev LOCALDOMAIN . Initialization normally occurs on the first call -to one of the other resolver routines. -.PP +to one of the following routines. +.Pp The -.I res_query +.Fn res_query function provides an interface to the server query mechanism. It constructs a query, sends it to the local server, awaits a response, and makes preliminary checks on the reply. The query requests information of the specified -.I type +.Fa type and -.I class +.Fa class for the specified fully-qualified domain name -.I dname . +.Fa dname . The reply message is left in the -.I answer +.Fa answer buffer with length -.I anslen +.Fa anslen supplied by the caller. -.PP +.Pp The -.I res_search +.Fn res_search routine makes a query and awaits a response like -.IR res_query , +.Fn res_query , but in addition, it implements the default and search rules -controlled by the RES_DEFNAMES and RES_DNSRCH options. +controlled by the +.Dv RES_DEFNAMES +and +.Dv RES_DNSRCH +options. It returns the first successful reply. -.PP +.Pp The remaining routines are lower-level routines used by -.IR res_query . +.Fn res_query . The -.I res_mkquery +.Fn res_mkquery function constructs a standard query message and places it in -.IR buf . +.Fa buf . It returns the size of the query, or \-1 if the query is larger than -.IR buflen . +.Fa buflen . The query type -.I op -is usually QUERY, but can be any of the query types defined in -.IR <arpa/nameser.h> . +.Fa op +is usually +.Dv QUERY , +but can be any of the query types defined in +.Aq Pa arpa/nameser.h . The domain name for the query is given by -.IR dname . -.I Newrr +.Fa dname . +.Fa Newrr is currently unused but is intended for making update messages. -.PP +.Pp The -.I res_send +.Fn res_send routine sends a pre-formatted query and returns an answer. It will call -.I res_init -if RES_INIT is not set, send the query to the local name server, and +.Fn res_init +if +.Dv RES_INIT +is not set, send the query to the local name server, and handle timeouts and retries. The length of the reply message is returned, or \-1 if there were errors. -.PP +.Pp The -.I dn_comp +.Fn dn_comp function compresses the domain name -.I exp_dn +.Fa exp_dn and stores it in -.IR comp_dn . +.Fa comp_dn . The size of the compressed name is returned or \-1 if there were errors. The size of the array pointed to by -.I comp_dn +.Fa comp_dn is given by -.IR length . +.Fa length . The compression uses an array of pointers -.I dnptrs +.Fa dnptrs to previously-compressed names in the current message. The first pointer points to -to the beginning of the message and the list ends with NULL. +to the beginning of the message and the list ends with +.Dv NULL . The limit to the array is specified by -.IR lastdnptr . +.Fa lastdnptr . A side effect of -.I dn_comp +.Fn dn_comp is to update the list of pointers for labels inserted into the message as the name is compressed. If -.I dnptr -is NULL, names are not compressed. +.Em dnptr +is +.Dv NULL, names are not compressed. If -.I lastdnptr -is NULL, the list of labels is not updated. -.PP +.Fa lastdnptr +is +.Dv NULL , +the list of labels is not updated. +.Pp The -.I dn_expand +.Fn dn_expand entry expands the compressed domain name -.I comp_dn +.Fa comp_dn to a full domain name The compressed name is contained in a query or reply message; -.I msg +.Fa msg is a pointer to the beginning of the message. The uncompressed name is placed in the buffer indicated by -.I exp_dn +.Fa exp_dn which is of size -.IR length . +.Fa length . The size of compressed name is returned or \-1 if there was an error. -.PP -The external variable -.B h_errno -is set whenever an error occurs during resolver operation. The following -definitions are given in -.BR <netdb.h> : -.PP -.nf -#define NETDB_INTERNAL -1 /* see errno */ -#define NETDB_SUCCESS 0 /* no problem */ -#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ -#define TRY_AGAIN 2 /* Non-Authoritive not found, or SERVFAIL */ -#define NO_RECOVERY 3 /* Nonrecoverable: FORMERR, REFUSED, NOTIMP */ -#define NO_DATA 4 /* Valid name, no data for requested type */ -.ft R -.ad -.fi -.PP -The -.B herror -function writes a message to the diagnostic output consisting of the string -parameter -.BR s , -the constant string ": ", and a message corresponding to the value of -.BR h_errno . -.PP +.Sh FILES +.Bl -tag -width Pa +/etc/resolv.conf +The configuration file +see +.Xr resolver 5 . +.El +.Sh SEE ALSO +.Xr gethostbyname 3 , +.Xr named 8 , +.Xr resolver 5 , +.Xr hostname 7 , +.Pp +.%T RFC1032 , +.%T RFC1033 , +.%T RFC1034 , +.%T RFC1035 , +.%T RFC974 +.Rs +.%T "Name Server Operations Guide for BIND" +.Re +.Sh HISTORY The -.B hstrerror -function returns a string which is the message text corresponding to the -value of the -.B err -parameter. -.SH FILES -/etc/resolv.conf see resolver(5) -.SH "SEE ALSO" -gethostbyname(3), named(8), resolver(5), hostname(7), -.br -RFC1032, RFC1033, RFC1034, RFC1035, RFC974, -.br -SMM:11 Name Server Operations Guide for BIND +.Nm +function appeared in +.Bx 4.3 . |