+++ /dev/null
-<!-- Copyright (C) 2003 Red Hat, Inc. -->
-<!-- This material may be distributed only subject to the terms -->
-<!-- and conditions set forth in the Open Publication License, v1.0 -->
-<!-- or later (the latest version is presently available at -->
-<!-- http://www.opencontent.org/openpub/). -->
-<!-- Distribution of the work or derivative of the work in any -->
-<!-- standard (paper) book form is prohibited unless prior -->
-<!-- permission is obtained from the copyright holder. -->
-<HTML
-><HEAD
-><TITLE
->resolver</TITLE
-><meta name="MSSmartTagsPreventParsing" content="TRUE">
-<META
-NAME="GENERATOR"
-CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
-"><LINK
-REL="HOME"
-TITLE="eCos Reference Manual"
-HREF="ecos-ref.html"><LINK
-REL="UP"
-TITLE="TCP/IP Library Reference"
-HREF="tcpip-library-reference.html"><LINK
-REL="PREVIOUS"
-TITLE="ns"
-HREF="net-common-tcpip-manpages-ns.html"><LINK
-REL="NEXT"
-TITLE="accept"
-HREF="net-common-tcpip-manpages-accept.html"></HEAD
-><BODY
-CLASS="SECT1"
-BGCOLOR="#FFFFFF"
-TEXT="#000000"
-LINK="#0000FF"
-VLINK="#840084"
-ALINK="#0000FF"
-><DIV
-CLASS="NAVHEADER"
-><TABLE
-SUMMARY="Header navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TH
-COLSPAN="3"
-ALIGN="center"
->eCos Reference Manual</TH
-></TR
-><TR
-><TD
-WIDTH="10%"
-ALIGN="left"
-VALIGN="bottom"
-><A
-HREF="net-common-tcpip-manpages-ns.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="80%"
-ALIGN="center"
-VALIGN="bottom"
->Chapter 38. TCP/IP Library Reference</TD
-><TD
-WIDTH="10%"
-ALIGN="right"
-VALIGN="bottom"
-><A
-HREF="net-common-tcpip-manpages-accept.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-></TABLE
-><HR
-ALIGN="LEFT"
-WIDTH="100%"></DIV
-><DIV
-CLASS="SECT1"
-><H1
-CLASS="SECT1"
-><A
-NAME="NET-COMMON-TCPIP-MANPAGES-RESOLVER">resolver</H1
-><TABLE
-BORDER="5"
-BGCOLOR="#E0E0F0"
-WIDTH="70%"
-><TR
-><TD
-><PRE
-CLASS="SCREEN"
->RESOLVER(3) System Library Functions Manual RESOLVER(3)
-
-NAME
- res_query, res_search, res_mkquery, res_send, res_init, dn_comp,
- dn_expand - resolver routines
-
-SYNOPSIS
- #include <sys/types.h>
- #include <netinet/in.h>
- #include <arpa/nameser.h>
- #include <resolv.h>
-
- int
- res_query(char *dname, int class, int type, u_char *answer, int anslen);
-
- int
- res_search(char *dname, int class, int type, u_char *answer, int anslen);
-
- int
- res_mkquery(int op, char *dname, int class, int type, char *data,
- int datalen, struct rrec *newrr, char *buf, int buflen);
-
- int
- res_send(char *msg, int msglen, char *answer, int anslen);
-
- int
- res_init(void);
-
- int
- dn_comp(char *exp_dn, char *comp_dn, int length, char **dnptrs,
- char **lastdnptr);
-
- int
- dn_expand(u_char *msg, u_char *eomorig, u_char *comp_dn, u_char *exp_dn,
- int length);
-
-DESCRIPTION
- These routines are used for making, sending, and interpreting query and
- reply messages with Internet domain name servers.
-
- Global configuration and state information that is used by the resolver
- routines is kept in the structure _res. Most of the values have reason-
- able defaults and can be ignored. Options stored in _res.options are
- defined in <resolv.h> and are as follows. Options are stored as a simple
- bit mask containing the bitwise OR of the options enabled.
-
- RES_INIT True if the initial name server address and default domain
- name are initialized (i.e., res_init() has been called).
-
- RES_DEBUG Print debugging messages.
-
- RES_AAONLY Accept authoritative answers only. With this option,
- res_send() should continue until it finds an authoritative
- answer or finds an error. Currently this is not imple-
- mented.
-
- RES_USEVC Use TCP connections for queries instead of UDP datagrams.
-
- RES_STAYOPEN Used with 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.
-
- RES_IGNTC Unused currently (ignore truncation errors, i.e., don't
- retry with TCP).
-
- RES_RECURSE Set the recursion-desired bit in queries. This is the
- default. (res_send() does not do iterative queries and
- expects the name server to handle recursion.)
-
- RES_DEFNAMES If set, 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.
-
- RES_DNSRCH If this option is set, res_search() will search for host
- names in the current domain and in parent domains; see
- hostname(7). This is used by the standard host lookup
- routine gethostbyname(3). This option is enabled by
- default.
-
- RES_USE_INET6 Enables support for IPv6-only applications. This causes
- IPv4 addresses to be returned as an IPv4 mapped address.
- For example, 10.1.1.1 will be returned as ::ffff:10.1.1.1.
- The option is not meaningful on OpenBSD.
-
- The res_init() routine reads the configuration file (if any; see
- 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 config-
- ured, 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 environ-
- ment 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
- 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 _res structure or are
- inherited from the configuration file's options command. The syntax of
- the RES_OPTIONS environment variable is explained in resolv.conf(5).
- Initialization normally occurs on the first call to one of the following
- routines.
-
- The res_query() function provides an interface to the server query mecha-
- nism. 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 type and class for the specified fully qual-
- ified domain name dname. The reply message is left in the answer buffer
- with length anslen supplied by the caller.
-
- The res_search() routine makes a query and awaits a response like
- res_query(), but in addition, it implements the default and search rules
- controlled by the RES_DEFNAMES and RES_DNSRCH options. It returns the
- first successful reply.
-
- The remaining routines are lower-level routines used by res_query(). The
- res_mkquery() function constructs a standard query message and places it
- in buf. It returns the size of the query, or -1 if the query is larger
- than buflen. The query type op is usually QUERY, but can be any of the
- query types defined in <arpa/nameser.h>. The domain name for the query
- is given by dname. newrr is currently unused but is intended for making
- update messages.
-
- The res_send() routine sends a pre-formatted query and returns an answer.
- It will call res_init() if 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.
-
- The dn_comp() function compresses the domain name exp_dn and stores it in
- comp_dn. The size of the compressed name is returned or -1 if there were
- errors. The size of the array pointed to by comp_dn is given by length.
- The compression uses an array of pointers dnptrs to previously compressed
- names in the current message. The first pointer points to the beginning
- of the message and the list ends with NULL. The limit to the array is
- specified by lastdnptr. A side effect of dn_comp() is to update the list
- of pointers for labels inserted into the message as the name is com-
- pressed. If dnptr is NULL, names are not compressed. If lastdnptr is
- NULL, the list of labels is not updated.
-
- The dn_expand() entry expands the compressed domain name comp_dn to a
- full domain name The compressed name is contained in a query or reply
- message; msg is a pointer to the beginning of the message. The uncom-
- pressed name is placed in the buffer indicated by exp_dn which is of size
- length. The size of compressed name is returned or -1 if there was an
- error.
-
-FILES
- /etc/resolv.conf configuration file see resolv.conf(5).
-
-SEE ALSO
- gethostbyname(3), resolv.conf(5), hostname(7), named(8)
-
- RFC1032, RFC1033, RFC1034, RFC1035, RFC1535, RFC974
-
- Name Server Operations Guide for BIND.
-
-HISTORY
- The res_query function appeared in 4.3BSD.
-
-BSD June 4, 1993 BSD
- </PRE
-></TD
-></TR
-></TABLE
-></DIV
-><DIV
-CLASS="NAVFOOTER"
-><HR
-ALIGN="LEFT"
-WIDTH="100%"><TABLE
-SUMMARY="Footer navigation table"
-WIDTH="100%"
-BORDER="0"
-CELLPADDING="0"
-CELLSPACING="0"
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
-><A
-HREF="net-common-tcpip-manpages-ns.html"
-ACCESSKEY="P"
->Prev</A
-></TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="ecos-ref.html"
-ACCESSKEY="H"
->Home</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
-><A
-HREF="net-common-tcpip-manpages-accept.html"
-ACCESSKEY="N"
->Next</A
-></TD
-></TR
-><TR
-><TD
-WIDTH="33%"
-ALIGN="left"
-VALIGN="top"
->ns</TD
-><TD
-WIDTH="34%"
-ALIGN="center"
-VALIGN="top"
-><A
-HREF="tcpip-library-reference.html"
-ACCESSKEY="U"
->Up</A
-></TD
-><TD
-WIDTH="33%"
-ALIGN="right"
-VALIGN="top"
->accept</TD
-></TR
-></TABLE
-></DIV
-></BODY
-></HTML
->
\ No newline at end of file