Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Apropos / Subsearch:
optional field

RESOLVER(3)                Library Functions Manual                RESOLVER(3)

       resolver,   res_mkquery,   res_send,  res_init,  dn_comp,  dn_expand  -
       resolver routines

       #include <&lt;sys/types.h>&gt;
       #include <&lt;netinet/in.h>&gt;
       #include <&lt;arpa/nameser.h>&gt;
       #include <&lt;resolv.h>&gt;

       res_mkquery(op, dname, class, type, data, datalen, newrr, buf, buflen)
       int op;
       char *dname;
       int class, type;
       char *data;
       int datalen;
       struct rrec *newrr;
       char *buf;
       int buflen;

       res_send(msg, msglen, answer, anslen)
       char *msg;
       int msglen;
       char *answer;
       int anslen;


       dn_comp(exp_dn, comp_dn, length, dnptrs, lastdnptr)
       u_char *exp_dn, *comp_dn;
       int length;
       u_char **dnptrs, **lastdnptr;

       dn_expand(msg, msglen, comp_dn, exp_dn, length)
       u_char *msg, *eomorig, *comp_dn, exp_dn;
       int length;

       These routines are used for making, sending and interpreting packets to
       Internet domain name servers.  You can link a program with the resolver
       library using the -lresolv argument on the linking command line.

       Global information that is used by the resolver routines is kept in the
       variable  _res.  Most of the values have reasonable defaults and can be
       ignored.  Options are a simple bit mask and are  OR'ed  in  to  enable.
       Options  stored  in  _res.options  are defined in <&lt;resolv.h>&gt; and are as

       RES_INIT            True if the initial name server address and default
                           domain  name  are  initialized (that is, res_init()
                           has been called).

       RES_DEBUG           Print debugging messages.

       RES_AAONLY          Accept authoritative answers only.  res_send() con-
                           tinues  until  it  finds an authoritative answer or
                           finds an error.  Currently this is not implemented.

       RES_USEVC           Use TCP connections for queries instead of UDP.

       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, that
                           is, do not 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

       RES_DEFNAMES        Append  the  default  domain  name  to single label
                           queries.  This is the default.

       RES_DNSRCH          Search up the domain tree from the default  domain,
                           in all but the top level.  This is the default.

       res_init() reads the initialization file to get the default domain name
       and the Internet addresses of the initial name servers.   If  no  name-
       server   line   exists,   the  host  running  the  resolver  is  tried.
       res_mkquery() makes a standard query message  and  places  it  in  buf.
       res_mkquery()  returns  the  size  of  the  query or -1 if the query is
       larger than buflen.  op is usually QUERY but can be any  of  the  query
       types defined in <&lt;nameser.h>&gt;.  dname is the domain name.  If dname con-
       sists of a single label and  the  RES_DEFNAMES  flag  is  enabled  (the
       default),  dname is appended with the current domain name.  The current
       domain name is defined in a system file and can be  overridden  by  the
       environment  variable  LOCALDOMAIN.   newrr  is currently unused but is
       intended for making update messages.

       res_send() sends a query to name servers and  returns  an  answer.   It
       calls  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  mes-
       sage is returned or -1 if there were errors.

       dn_expand() Expands the compressed domain name comp_dn to a full domain
       name.  Expanded names are converted to upper case.  msg is a pointer to
       the  beginning  of the message, exp_dn is a pointer to a buffer of size
       length for the result.  The size of compressed name is returned  or  -1
       if there was an error.

       dn_comp()  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.
       length  is  the  size  of the array pointed to by comp_dn.  dnptrs is a
       list of pointers to previously compressed names in the current message.
       The  first  pointer points to the beginning of the message and the list
       ends with NULL.  lastdnptr is a pointer to the end of the array pointed
       to  dnptrs.  A side effect is to update the list of pointers for labels
       inserted into the message by dn_comp() as the name is  compressed.   If
       dnptr  is  NULL, do not try to compress names. If lastdnptr is NULL, do
       not update the list.

       /etc/resolv.conf    see resolv.conf(5)

       resolv.conf(5), named(8C)

       /usr/lib/libresolv.a is necessary for compiling programs.

                                 30 June 1989                      RESOLVER(3)