summaryrefslogtreecommitdiff
path: root/lib/libc
diff options
context:
space:
mode:
authorPeter Wemm <peter@FreeBSD.org>1996-08-30 19:40:05 +0000
committerPeter Wemm <peter@FreeBSD.org>1996-08-30 19:40:05 +0000
commitbc7413d0a305014fc9a952e793296db2fddfc1bb (patch)
treea8bc6b155fd1945e0f70be176512096e41a3ec2d /lib/libc
parent1133312c37e854019422d2ec2408781bee1830d1 (diff)
Notes
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/gethostbyname.3333
-rw-r--r--lib/libc/net/getnetent.3248
-rw-r--r--lib/libc/net/resolver.3452
3 files changed, 529 insertions, 504 deletions
diff --git a/lib/libc/net/gethostbyname.3 b/lib/libc/net/gethostbyname.3
index e1d5050b1da3..702a116d52f5 100644
--- a/lib/libc/net/gethostbyname.3
+++ b/lib/libc/net/gethostbyname.3
@@ -1,72 +1,75 @@
-.\" Copyright (c) 1983, 1987 The Regents of the University of California.
-.\" All rights reserved.
+.\" Copyright (c) 1983, 1987, 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.
.\"
-.\" @(#)gethostbyname.3 6.12 (Berkeley) 6/23/90
+.\" 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 GETHOSTBYNAME 3 "June 23, 1990"
-.UC 5
-.SH NAME
-gethostbyname, gethostbyaddr, gethostent, sethostent, endhostent, herror \- get network host entry
-.SH SYNOPSIS
-.B "#include <netdb.h>
-.PP
-.B "extern int h_errno;
-.PP
-.B "struct hostent *gethostbyname(name)
-.br
-.B "char *name;
-.PP
-.B "struct hostent *gethostbyname2(name, af)
-.br
-.B "char *name; int af;
-.PP
-.B "struct hostent *gethostbyaddr(addr, len, type)
-.br
-.B "char *addr; int len, type;
-.PP
-.B "struct hostent *gethostent()
-.PP
-.B "sethostent(stayopen)
-.br
-.B "int stayopen;
-.PP
-.B "endhostent()
-.PP
-.B "herror(string)
-.br
-.B "char *string;
-.PP
-.SH DESCRIPTION
-.IR Gethostbyname ,
-.IR gethostbyname2 ,
+.\" @(#)gethostbyname.3 8.2 (Berkeley) 4/19/94
+.\"
+.Dd April 19, 1994
+.Dt GETHOSTBYNAME 3
+.Os BSD 4.2
+.Sh NAME
+.Nm gethostbyname ,
+.Nm gethostbyaddr ,
+.Nm gethostent ,
+.Nm sethostent ,
+.Nm endhostent ,
+.Nm herror
+.Nd get network host entry
+.Sh SYNOPSIS
+.Fd #include <netdb.h>
+.Fd extern struct h_errno;
+.Ft struct hostent *
+.Fn gethostbyname "char *name"
+.Ft struct hostent *
+.Fn gethostbyaddr "char *addr" "int len" "int type"
+.Ft struct hostent *
+.Fn gethostent void
+.Fn sethostent "int stayopen"
+.Fn endhostent void
+.Fn herror "char *string"
+.Sh DESCRIPTION
+The
+.Fn gethostbyname
and
-.I gethostbyaddr
+.Fn gethostbyaddr
+functions
each return a pointer to an object with the
following structure describing an internet host
referenced by name or by address, respectively.
This structure contains either the information obtained from the name server,
-.IR named (8),
+.Xr named 8 ,
or broken-out fields from a line in
-.IR /etc/hosts .
+.Pa /etc/hosts .
If the local name server is not running these routines do a lookup in
-.IR /etc/hosts .
-.RS
-.PP
-.nf
+.Pa /etc/hosts .
+.Bd -literal
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
@@ -75,108 +78,103 @@ struct hostent {
char **h_addr_list; /* list of addresses from name server */
};
#define h_addr h_addr_list[0] /* address, for backward compatibility */
-.ft R
-.ad
-.fi
-.RE
-.PP
+.Ed
+.Pp
The members of this structure are:
-.TP \w'h_addr_list'u+2n
-h_name
+.Bl -tag -width h_addr_list
+.It Fa h_name
Official name of the host.
-.TP \w'h_addr_list'u+2n
-h_aliases
+.It Fa h_aliases
A zero terminated array of alternate names for the host.
-.TP \w'h_addr_list'u+2n
-h_addrtype
-The type of address being returned; usually AF_INET.
-.TP \w'h_addr_list'u+2n
-h_length
+.It Fa h_addrtype
+The type of address being returned; currently always
+.Dv AF_INET .
+.It Fa h_length
The length, in bytes, of the address.
-.TP \w'h_addr_list'u+2n
-h_addr_list
+.It Fa h_addr_list
A zero terminated array of network addresses for the host.
Host addresses are returned in network byte order.
-.TP \w'h_addr_list'u+2n
-h_addr
-The first address in h_addr_list; this is for backward compatibility.
-.PP
+.It Fa h_addr
+The first address in
+.Fa h_addr_list ;
+this is for backward compatibility.
+.Pp
When using the nameserver,
-.I gethostbyname
+.Fn gethostbyname
will search for the named host in the current domain and its parents
unless the name ends in a dot.
-If the name contains no dot, and if the environment variable ``HOSTALAIASES''
+If the name contains no dot, and if the environment variable
+.Dq Ev HOSTALIASES
contains the name of an alias file, the alias file will first be searched
for an alias matching the input name.
See
-.IR hostname (7)
+.Xr hostname 7
for the domain search procedure and the alias file format.
-.PP
-.I Gethostbyname2
-is an evolution of
-.I gethostbyname
-intended to allow lookups in address families other than AF_INET, for example
-AF_INET6. Currently the
-.I af
-argument must be specified as
-.I AF_INET
-else the function will return \s-2NULL\s+2 after having set
-.I h_errno
-to \s-2NETDB_INTERNAL\s+2.
-.PP
-.I Sethostent
-may be used to request the use of a connected TCP socket for queries.
+.Pp
+The
+.Fn sethostent
+function
+may be used to request the use of a connected
+.Tn TCP
+socket for queries.
If the
-.I stayopen
+.Fa stayopen
flag is non-zero,
-this sets the option to send all queries to the name server using TCP
+this sets the option to send all queries to the name server using
+.Tn TCP
and to retain the connection after each call to
-.I gethostbyname
+.Fn gethostbyname
or
-.IR gethostbyaddr .
-Otherwise, queries are performed using UDP datagrams.
-.PP
-.I Endhostent
-closes the TCP connection.
-.SH DIAGNOSTICS
-.PP
+.Fn gethostbyaddr .
+Otherwise, queries are performed using
+.Tn UDP
+datagrams.
+.Pp
+The
+.Fn endhostent
+function
+closes the
+.Tn TCP
+connection.
+.Sh FILES
+.Bl -tag -width /etc/hosts -compact
+.It Pa /etc/hosts
+.El
+.Sh DIAGNOSTICS
Error return status from
-.I gethostbyname
+.Fn gethostbyname
and
-.I gethostbyaddr
+.Fn gethostbyaddr
is indicated by return of a null pointer.
The external integer
-.IR h_errno
+.Va h_errno
may then be checked to see whether this is a temporary failure
or an invalid or unknown host.
The routine
-.I herror
+.Fn herror
can be used to print an error message describing the failure.
If its argument
-.I string
-is non-NULL, it is printed, followed by a colon and a space.
+.Fa string
+is
+.Pf non Dv -NULL ,
+it is printed, followed by a colon and a space.
The error message is printed with a trailing newline.
-.PP
-.IR h_errno
+.Pp
+The variable
+.Va h_errno
can have the following values:
-.RS
-.IP NETDB_INTERNAL \w'HOST_NOT_FOUND'u+2n
-This indicates an internal error in the library, unrelated to the network
-or name service.
-.I errno
-will be valid in this case; see
-.IR perror (3).
-.IP HOST_NOT_FOUND \w'HOST_NOT_FOUND'u+2n
+.Bl -tag -width HOST_NOT_FOUND
+.It Dv HOST_NOT_FOUND
No such host is known.
-.IP TRY_AGAIN \w'HOST_NOT_FOUND'u+2n
+.It Dv TRY_AGAIN
This is usually a temporary error
and means that the local server did not receive
a response from an authoritative server.
A retry at some later time may succeed.
-.IP NO_RECOVERY \w'HOST_NOT_FOUND'u+2n
+.It Dv NO_RECOVERY
Some unexpected server failure was encountered.
This is a non-recoverable error.
-.IP NO_DATA \w'HOST_NOT_FOUND'u+2n
+.It Dv NO_DATA
The requested name is valid but does not have an IP address;
this is not a temporary error.
This means that the name is known to the name server but there is no address
@@ -184,43 +182,68 @@ associated with this name.
Another type of request to the name server using this domain name
will result in an answer;
for example, a mail-forwarder may be registered for this domain.
-.RE
-.SH FILES
-/etc/hosts
-.SH "SEE ALSO"
-resolver(3), hosts(5), hostname(7), named(8)
-.SH CAVEAT
-.PP
-.I Gethostent
+.El
+.Sh SEE ALSO
+.Xr resolver 3 ,
+.Xr hosts 5 ,
+.Xr hostname 7 ,
+.Xr named 8
+.Sh CAVEAT
+The
+.Fn gethostent
+function
is defined, and
-.I sethostent
+.Fn sethostent
and
-.I endhostent
+.Fn endhostent
are redefined,
when
-.IR libc
+.Xr libc 3
is built to use only the routines to lookup in
-.IR /etc/hosts
+.Pa /etc/hosts
and not the name server.
-.PP
-.I Gethostent
+.Pp
+The
+.Fn gethostent
+function
reads the next line of
-.IR /etc/hosts ,
+.Pa /etc/hosts ,
opening the file if necessary.
-.PP
-.I Sethostent
-is redefined to open and rewind the file. If the
-.I stayopen
+.Pp
+The
+.Fn sethostent
+function
+opens and/or rewinds the file
+.Pa /etc/hosts .
+If the
+.Fa stayopen
argument is non-zero,
-the hosts data base will not be closed after each call to
-.I gethostbyname
+the file will not be closed after each call to
+.Fn gethostbyname
or
-.IR gethostbyaddr .
-.I Endhostent
-is redefined to close the file.
-.SH BUGS
-All information
-is contained in a static area
-so it must be copied if it is
-to be saved. Only the Internet
+.Fn gethostbyaddr .
+.Pp
+The
+.Fn endhostent
+function
+closes the file.
+.Sh HISTORY
+The
+.Fn herror
+function appeared in
+.Bx 4.3 .
+The
+.Fn endhostent ,
+.Fn gethostbyaddr ,
+.Fn gethostbyname ,
+.Fn gethostent ,
+and
+.Fn sethostent
+functions appeared in
+.Bx 4.2 .
+.Sh BUGS
+These functions use static data storage;
+if the data is needed for future use, it should be
+copied before any subsequent calls overwrite it.
+Only the Internet
address format is currently understood.
diff --git a/lib/libc/net/getnetent.3 b/lib/libc/net/getnetent.3
index c02b4b83d662..7514371c4577 100644
--- a/lib/libc/net/getnetent.3
+++ b/lib/libc/net/getnetent.3
@@ -1,133 +1,151 @@
-.\" $Id: getnetent.3,v 8.2 1996/05/09 05:59:10 vixie Exp $
-.TH getnetent 3
-.SH NAME
-getnetent, getnetbyaddr, getnetbyname, setnetent, endnetent \- get networks
-entry
-.SH SYNTAX
-.nf
-.B #include <netdb.h>
-.PP
-.B struct netent *getnetent()
-.PP
-.B struct netent *getnetbyname(\fIname\fP)
-.B char *\fIname\fP;
-.PP
-.B struct netent *getnetbyaddr(\fInet\fP, \fItype\fP)
-.B unsigned long \fInet\fP; int \fItype\fP;
-.PP
-.B void setnetent(\fIstayopen\fP)
-.B int \fIstayopen\fP;
-.PP
-.B void endnetent()
-.fi
-.SH DESCRIPTION
+.\" Copyright (c) 1983, 1991, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" 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.
+.\"
+.\" 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.
+.\"
+.\" @(#)getnetent.3 8.1 (Berkeley) 6/4/93
+.\"
+.Dd June 4, 1993
+.Dt GETNETENT 3
+.Os BSD 4.2
+.Sh NAME
+.Nm getnetent ,
+.Nm getnetbyaddr ,
+.Nm getnetbyname ,
+.Nm setnetent ,
+.Nm endnetent
+.Nd get network entry
+.Sh SYNOPSIS
+.Fd #include <netdb.h>
+.Ft struct netent *
+.Fn getnetent
+.Ft struct netent *
+.Fn getnetbyname "char *name"
+.Ft struct netent *
+.Fn getnetbyaddr "long net" "int type"
+.Fn setnetent "int stayopen"
+.Fn endnetent
+.Sh DESCRIPTION
The
-.IR getnetent ,
-.IR getnetbyname ,
+.Fn getnetent ,
+.Fn getnetbyname ,
and
-.I getnetbyaddr
-subroutines
+.Fn getnetbyaddr
+functions
each return a pointer to an object with the
following structure
containing the broken-out
-fields of a line in the
-.I networks
-database.
-.RS
-.PP
-.nf
+fields of a line in the network data base,
+.Pa /etc/networks .
+.Bd -literal -offset indent
struct netent {
- char *n_name; /* official name of net */
- char **n_aliases; /* alias list */
- int n_addrtype; /* net number type */
- long n_net; /* net number */
+ char *n_name; /* official name of net */
+ char **n_aliases; /* alias list */
+ int n_addrtype; /* net number type */
+ unsigned long n_net; /* net number */
};
-.ft R
-.ad
-.fi
-.RE
-.PP
+.Ed
+.Pp
The members of this structure are:
-.TP \w'n_addrtype'u+2n
-n_name
+.Bl -tag -width n_addrtype
+.It Fa n_name
The official name of the network.
-.TP \w'n_addrtype'u+2n
-n_aliases
+.It Fa n_aliases
A zero terminated list of alternate names for the network.
-.TP \w'n_addrtype'u+2n
-n_addrtype
-The type of the network number returned: AF_INET.
-.TP \w'n_addrtype'u+2n
-n_net
+.It Fa n_addrtype
+The type of the network number returned; currently only AF_INET.
+.It Fa n_net
The network number. Network numbers are returned in machine byte
order.
-.PP
-If the
-.I stayopen
-flag on a
-.I setnetent
-subroutine is NULL, the
-.I networks
-database is opened. Otherwise the
-.I setnetent
-has the effect of rewinding the
-.I networks
-database.
+.El
+.Pp
The
-.I endnetent
-may be called to
-close the
-.I networks
-database when processing is complete.
-.PP
+.Fn getnetent
+function
+reads the next line of the file, opening the file if necessary.
+.Pp
The
-.I getnetent
-subroutine simply reads the next
-line while
-.I getnetbyname
-and
-.I getnetbyaddr
-search until a matching
-.I name
+.Fn setnetent
+function
+opens and rewinds the file. If the
+.Fa stayopen
+flag is non-zero,
+the net data base will not be closed after each call to
+.Fn getnetbyname
or
-.I net
-number is found
-(or until EOF is encountered). The \fItype\fP must be AF_INET.
+.Fn getnetbyaddr .
+.Pp
+The
+.Fn endnetent
+function
+closes the file.
+.Pp
The
-.I getnetent
-subroutine keeps a pointer in the database, allowing
-successive calls to be used
-to search the entire file.
-.PP
-A call to
-.I setnetent
-must be made before a
-.I while
-loop using
-.I getnetent
-in order to perform initialization and an
-.I endnetent
-must be used after the loop. Both
-.I getnetbyname
+.Fn getnetbyname
+function
and
-.I getnetbyaddr
-make calls to
-.I setnetent
+.Fn getnetbyaddr
+sequentially search from the beginning
+of the file until a matching
+net name or
+net address and type is found,
+or until
+.Dv EOF
+is encountered.
+Network numbers are supplied in host order.
+.Sh FILES
+.Bl -tag -width /etc/networks -compact
+.It Pa /etc/networks
+.El
+.Sh DIAGNOSTICS
+Null pointer
+(0) returned on
+.Dv EOF
+or error.
+.Sh SEE ALSO
+.Xr networks 5
+.Sh HISTORY
+The
+.Fn getnetent ,
+.Fn getnetbyaddr ,
+.Fn getnetbyname ,
+.Fn setnetent ,
and
-.I endnetent .
-.SH FILES
-.I /etc/networks
-.SH DIAGNOSTICS
-Null pointer (0) returned on EOF or error.
-.SH SEE ALSO
-.nf
-networks(5)
-RFC 1101
-.SH HISTORY
-The getnetent(), getnetbyaddr(), getnetbyname(), setnetent(), and
-endnetent() functions appeared in 4.2BSD.
-.SH BUGS
-The data space used by these functions is static; if future use requires the
-data, it should be copied before any subsequent calls to these functions
-overwrite it. Only Internet network numbers are currently understood.
-Expecting network numbers to fit in no more than 32 bits is probably naive.
+.Fn endnetent
+functions appeared in
+.Bx 4.2 .
+.Sh BUGS
+The data space used by
+these functions is static; if future use requires the data, it should be
+copied before any subsequent calls to these functions overwrite it.
+Only Internet network
+numbers are currently understood.
+Expecting network numbers to fit
+in no more than 32 bits is probably
+naive.
diff --git a/lib/libc/net/resolver.3 b/lib/libc/net/resolver.3
index a0713a2afec1..4014c723be5a 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 .