Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ resolver(3N) — Dell System V Release 4 Issue 2.2

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

named(1M)

resolv.conf(4)

resolver(3N)



resolver(3N)           UNIX System V(Internet Utilities)           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>
      int resmkquery(int op, char *dname, int class, int type,
          char *data, int datalen, struct rrec *newrr, char *buf,
          int buflen);
      int ressend(char *msg, int msglen, char *answer, int anslen);
      void resinit(void);
      int dncomp(char *expdn, char *compdn, int length, char **dnptrs,
          char **lastdnptr);
      int dnexpand(char *msg, char *eomorig, char *compdn,
          char *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 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).

      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.




10/89                                                                    Page 1







resolver(3N)           UNIX System V(Internet Utilities)           resolver(3N)


      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 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, eomorig is a pointer to the first memory
      location after the message, exp_dn is a pointer to a buffer of size
      length for the result.  The size of the compressed name is returned or -1
      if there was an error.

      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)





Page 2                                                                    10/89







resolver(3N)           UNIX System V(Internet Utilities)           resolver(3N)


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

      Programs must be loaded with the option -lresolv.


















































10/89                                                                    Page 3





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