summaryrefslogtreecommitdiff
path: root/static/openbsd/man3/res_init.3
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:54:44 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 19:54:44 -0400
commita9157ce950dfe2fc30795d43b9d79b9d1bffc48b (patch)
tree9df484304b560466d145e662c1c254ff0e9ae0ba /static/openbsd/man3/res_init.3
parent160aa82b2d39c46ad33723d7d909cb4972efbb03 (diff)
docs: Added All OpenBSD Manuals
Diffstat (limited to 'static/openbsd/man3/res_init.3')
-rw-r--r--static/openbsd/man3/res_init.3441
1 files changed, 441 insertions, 0 deletions
diff --git a/static/openbsd/man3/res_init.3 b/static/openbsd/man3/res_init.3
new file mode 100644
index 00000000..3e0cabc3
--- /dev/null
+++ b/static/openbsd/man3/res_init.3
@@ -0,0 +1,441 @@
+.\" $OpenBSD: res_init.3,v 1.6 2021/11/24 20:06:32 jca Exp $
+.\"
+.\" Copyright (c) 1985, 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. 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.
+.\"
+.Dd $Mdocdate: November 24 2021 $
+.Dt RES_INIT 3
+.Os
+.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
+.In sys/types.h
+.In netinet/in.h
+.In arpa/nameser.h
+.In resolv.h
+.Ft int
+.Fo res_query
+.Fa "const char *dname"
+.Fa "int class"
+.Fa "int type"
+.Fa "unsigned char *answer"
+.Fa "int anslen"
+.Fc
+.Ft int
+.Fo res_search
+.Fa "const char *dname"
+.Fa "int class"
+.Fa "int type"
+.Fa "unsigned char *answer"
+.Fa "int anslen"
+.Fc
+.Ft int
+.Fo res_mkquery
+.Fa "int op"
+.Fa "const char *dname"
+.Fa "int class"
+.Fa "int type"
+.Fa "const unsigned char *data"
+.Fa "int datalen"
+.Fa "const unsigned char *newrr"
+.Fa "unsigned char *buf"
+.Fa "int buflen"
+.Fc
+.Ft int
+.Fo res_send
+.Fa "const unsigned char *msg"
+.Fa "int msglen"
+.Fa "unsigned char *answer"
+.Fa "int anslen"
+.Fc
+.Ft int
+.Fn res_init "void"
+.Ft int
+.Fo dn_comp
+.Fa "const char *exp_dn"
+.Fa "unsigned char *comp_dn"
+.Fa "int length"
+.Fa "unsigned char **dnptrs"
+.Fa "unsigned char **lastdnptr"
+.Fc
+.Ft int
+.Fo dn_expand
+.Fa "const unsigned char *msg"
+.Fa "const unsigned char *eomorig"
+.Fa "const unsigned char *comp_dn"
+.Fa "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
+Global configuration and state information that is used by the
+resolver routines is kept in the structure
+.Va _res .
+Most of the values have reasonable defaults and can be ignored.
+Options stored in
+.Va _res.options
+are defined in
+.In resolv.h
+and are as follows.
+Options are stored as a simple bit mask containing the bitwise OR
+of the options enabled.
+.Bl -tag -width RES_USE_DNSSEC
+.It Dv RES_INIT
+True if the initial name server address and default domain name are
+initialized (i.e.\&
+.Fn res_init
+has been called).
+.It Dv RES_DEBUG
+Print debugging messages,
+if libc is compiled with
+.Dv DEBUG .
+By default on
+.Ox
+this option does nothing.
+.It Dv RES_AAONLY
+Accept authoritative answers only.
+With this option,
+.Fn res_send
+should continue until it finds an authoritative answer or finds an error.
+On
+.Ox
+this option does nothing.
+.It Dv RES_USEVC
+Use TCP connections for queries instead of UDP datagrams.
+.It Dv RES_PRIMARY
+Query the primary name server only.
+On
+.Ox
+this option does nothing.
+.It Dv RES_IGNTC
+Ignore truncation errors, i.e. don't retry with TCP.
+.It Dv RES_RECURSE
+Set the recursion-desired bit in queries.
+.Pf ( Fn res_send
+does not do iterative queries and expects the name server
+to handle recursion.)
+This option is enabled by default.
+.It Dv RES_DEFNAMES
+If set,
+.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.
+.It Dv RES_STAYOPEN
+Used with
+.Dv RES_USEVC
+to keep the TCP connection open between queries.
+This is useful only in programs that regularly do many queries.
+UDP should be the normal mode used.
+.It Dv RES_DNSRCH
+If this option is set,
+.Fn res_search
+will search for host names in the current domain and in parent domains; see
+.Xr hostname 7 .
+This is used by the standard host lookup routine
+.Xr gethostbyname 3 .
+This option is enabled by default.
+.It Dv RES_INSECURE_1
+Do not require the IP source address on the reply packet
+to be equal to the server's address.
+.It Dv RES_INSECURE_2
+Do not check if the query section of the reply packet
+is equal to that of the query packet.
+.It Dv RES_NOALIASES
+This option has no effect.
+In the past, it turned off the legacy
+.Ev HOSTALIASES
+feature.
+.It Dv RES_TRUSTAD
+If set, the resolver routines will set the AD flag in DNS queries and
+preserve the value of the AD flag in DNS replies.
+If not set, the resolver routines will clear the AD flag in responses.
+Direct use of this option to enable AD bit processing is discouraged.
+Instead the use of trusted name servers should be annotated with
+.Dq options trust-ad
+in
+.Xr resolv.conf 5 .
+This option is automatically enabled if
+.Xr resolv.conf 5
+only lists name servers on localhost.
+.It Dv RES_USE_INET6
+With this option
+.Xr gethostbyname 3
+will return IPv6 addresses if available.
+This option is deprecated; software should use the
+.Xr getaddrinfo 3
+interface instead of modifying the behavior of
+.Xr gethostbyname 3 .
+On some operating systems this option also causes IPv4 addresses to be
+returned as IPv4-mapped IPv6 addresses.
+For example, 10.1.1.1 will be returned as ::ffff:10.1.1.1.
+IPv4-mapped IPv6 addresses are not supported on
+.Ox .
+.It Dv RES_USE_EDNS0
+Attach an OPT pseudo-RR for the EDNS0 extension,
+as specified in RFC 2671.
+This informs DNS servers of a client's receive buffer size,
+allowing them to take advantage of a non-default receive buffer size,
+and thus to send larger replies.
+DNS query packets with the EDNS0 extension are not compatible with
+non-EDNS0 DNS servers.
+.Ox
+uses 4096 bytes as input buffer size.
+.It Dv RES_USE_DNSSEC
+Request that the resolver uses
+Domain Name System Security Extensions (DNSSEC),
+as defined in RFCs 4033, 4034, and 4035.
+The resolver routines will use the EDNS0 extension and set the DNSSEC DO
+flag in queries, asking the name server to signal validated records by
+setting the AD flag in the reply and to attach additional DNSSEC
+records.
+The resolver routines will clear the AD flag in replies unless the name
+servers are considered trusted.
+Also, client applications are often only interested in the value of the
+AD flag, making the additional DNSSEC records a waste of network
+bandwidth.
+See the description for
+.Dq options trust-ad
+in
+.Xr resolv.conf 5 .
+.It Dv RES_USE_CD
+Set the Checking Disabled flag on queries.
+.El
+.Pp
+The
+.Fn res_init
+routine reads the configuration file (if any; see
+.Xr resolv.conf 5 )
+to get the default domain name, search list, and the Internet address
+of the local name server(s).
+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
+.Ev LOCALDOMAIN .
+This environment variable may contain several blank-separated
+tokens if you wish to override the search list on a per-process basis.
+This is similar to the
+.Ic search
+command in the configuration file.
+Another environment variable
+.Ev RES_OPTIONS
+can be set to override certain internal resolver options which
+are otherwise set by changing fields in the
+.Va _res
+structure or are inherited from the configuration file's
+.Ic options
+command.
+The syntax of the
+.Ev RES_OPTIONS
+environment variable is explained in
+.Xr resolv.conf 5 .
+Initialization normally occurs on the first call
+to one of the following routines.
+.Pp
+The
+.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
+.Fa type
+and
+.Fa class
+for the specified fully qualified domain name
+.Fa dname .
+The reply message is left in the
+.Fa answer
+buffer with length
+.Fa anslen
+supplied by the caller.
+Values for the
+.Fa class
+and
+.Fa type
+fields
+are defined in
+.In arpa/nameser.h .
+.Pp
+The
+.Fn res_search
+routine makes a query and awaits a response like
+.Fn res_query ,
+but in addition, it implements the default and search rules controlled by the
+.Dv RES_DEFNAMES
+and
+.Dv RES_DNSRCH
+options.
+It returns the first successful reply.
+.Pp
+The remaining routines are lower-level routines used by
+.Fn res_query .
+The
+.Fn res_mkquery
+function constructs a standard query message and places it in
+.Fa buf .
+It returns the size of the query, or \-1 if the query is larger than
+.Fa buflen .
+The query type
+.Fa op
+is usually
+.Dv QUERY ,
+but can be any of the query types defined in
+.In arpa/nameser.h .
+The domain name for the query is given by
+.Fa dname .
+.Fa newrr
+is currently unused but is intended for making update messages.
+.Pp
+The
+.Fn res_send
+routine sends a pre-formatted query and returns an answer.
+It will call
+.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
+The
+.Fn dn_comp
+function compresses the domain name
+.Fa exp_dn
+and stores it in
+.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
+.Fa comp_dn
+is given by
+.Fa length .
+The compression uses an array of pointers
+.Fa dnptrs
+to previously compressed names in the current message.
+The first pointer points
+to the beginning of the message and the list ends with
+.Dv NULL .
+The limit to the array is specified by
+.Fa lastdnptr .
+A side effect of
+.Fn dn_comp
+is to update the list of pointers for labels inserted into the message
+as the name is compressed.
+If
+.Fa dnptrs
+is
+.Dv NULL ,
+names are not compressed.
+If
+.Fa lastdnptr
+is
+.Dv NULL ,
+the list of labels is not updated.
+.Pp
+The
+.Fn dn_expand
+entry expands the compressed domain name
+.Fa comp_dn
+to a full domain name.
+The compressed name is contained in a query or reply message;
+.Fa msg
+is a pointer to the beginning of the message.
+The uncompressed name is placed in the buffer indicated by
+.Fa exp_dn
+which is of size
+.Fa length .
+The size of compressed name is returned or \-1 if there was an error.
+.Sh FILES
+.Bl -tag -width "/etc/resolv.confXX"
+.It Pa /etc/resolv.conf
+The configuration file.
+.El
+.Sh SEE ALSO
+.Xr gethostbyname 3 ,
+.Xr resolv.conf 5 ,
+.Xr hostname 7
+.Sh STANDARDS
+.Rs
+.%A M. Stahl
+.%D November 1987
+.%R RFC 1032
+.%T Domain Administrators Guide
+.Re
+.Pp
+.Rs
+.%A M. Lottor
+.%D November 1987
+.%R RFC 1033
+.%T Domain Administrators Operations Guide
+.Re
+.Pp
+.Rs
+.%A P. Mockapetris
+.%D November 1987
+.%R RFC 1034
+.%T Domain Names \(en Concepts and Facilities
+.Re
+.Pp
+.Rs
+.%A P. Mockapetris
+.%D November 1987
+.%R RFC 1035
+.%T Domain Names \(en Implementation and Specification
+.Re
+.Pp
+.Rs
+.%A J. Klensin
+.%D October 2008
+.%R RFC 5321
+.%T Simple Mail Transfer Protocol
+.Re
+.Sh HISTORY
+The functions
+.Fn res_mkquery ,
+.Fn res_send ,
+.Fn res_init ,
+.Fn dn_comp ,
+and
+.Fn dn_expand
+appeared in
+.Bx 4.3 .
+The functions
+.Fn res_query
+and
+.Fn res_search
+appeared in
+.Bx 4.3 Tahoe .