Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ resolver(3) — Atari System V ue12

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

named(1M)

resolv.conf(4)





   resolver(3N)                     (TCP/IP)                      resolver(3N)


   NAME
         resolver, resmkquery, ressend, resinit, dncomp, dnexpand -
         resolver routines

   SYNOPSIS
         #include <sys/types.h>
         #include <netinet/in.h>
         #include <arpa/nameser.h>
         #include <resolv.h>

         resmkquery(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;

         ressend(buf, buflen, answer, anslen)
         char *buf;
         int buflen;
         char *answer;
         int anslen;

         resinit()

         dncomp(expdn, compdn, length, dnptrs, lastdnptr)
         uchar *expdn, *compdn;
         int length;
         uchar **dnptrs, **lastdnptr;

         dnexpand(msg, eomorig, compdn, expdn, length)
         uchar *msg, *eomorig, *compdn, *compdn, *expdn;
         int  length;

   DESCRIPTION
         These routines are used for making, sending and interpreting packets
         to Internet domain name servers.  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 /usr/include/resolv.h and are as follows.

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





   7/91                                                                 Page 1









   resolver(3N)                     (TCP/IP)                      resolver(3N)


         RESDEBUG           Print debugging messages.

         RESAAONLY          Accept authoritative answers only.  ressend will
                             continue until it finds an authoritative answer
                             or finds an error.  Currently this is not
                             implemented.

         RESUSEVC           Use TCP connections for queries instead of UDP.

         RESSTAYOPEN        Used with RESUSEVC 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.

         RESIGNTC           Unused currently (ignore truncation errors, that
                             is, do not retry with TCP).

         RESRECURSE         Set the recursion desired bit in queries.  This
                             is the default.  ressend does not do iterative
                             queries and expects the name server to handle
                             recursion.

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

         resinit reads the initialization file to get the default domain name
         and the Internet address of the initial hosts running the name
         server.  If this line does not exist, the host running the resolver
         is tried.  resmkquery makes a standard query message and places it
         in buf.  resmkquery will return 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 /usr/include/arpa/nameser.h.  dname is the
         domain name.  If dname consists of a single label and the
         RESDEFNAMES flag is enabled (the default), dname will be 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.

         ressend sends a query to name servers and returns an answer.  It
         will call resinit if RESINIT is not set, send the query to the
         local name server, and handle timeouts and retries.  The length of
         the message is returned or -1 if there were errors.

         dnexpand 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.




   Page 2                                                                 7/91









   resolver(3N)                     (TCP/IP)                      resolver(3N)


         dncomp 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 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 dncomp as
         the name is compressed.  If dnptr is NULL, do not try to compress
         names.  If lastdnptr is NULL, do not update the list.

   FILES
         /usr/include/arpa/nameserv.h
         /usr/include/netinet/in.h
         /usr/include/resolv.h
         /usr/include/sys/types.h
         /etc/resolv.conf
         /usr/lib/libresolv.a

   SEE ALSO
         named(1M), resolv.conf(4).

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

         Programs must be loaded with the option -lresolv.



























   7/91                                                                 Page 3





Typewritten Software • bear@typewritten.org • Edmonds, WA 98026