Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ resolver(3N) — Amiga System V Release 4 Version 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

named(1M)

resolv.conf(4)



resolver(3N)            NETWORK FUNCTIONS            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(msg, msglen, answer, anslen)
     char *msg;
     int msglen;
     char *answer;
     int anslen;

     resinit

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

     dnexpand(msg, msglen, compdn, expdn, length)
     char *msg, *compdn, expdn;
     int  msglen, 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  vari-
     able  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).

     RESDEBUG           Print debugging messages.




                       Last change: TCP/IP                      1





resolver(3N)            NETWORK FUNCTIONS            resolver(3N)



     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 con-
                         nection  open  between queries.  This is
                         useful only in programs  that  regularly
                         do many queries.  UDP should be the nor-
                         mal 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 recur-
                         sion.

     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 mes-
     sages.

     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



                       Last change: TCP/IP                      2





resolver(3N)            NETWORK FUNCTIONS            resolver(3N)



     result.  The size of 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 pre-
     viously 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.
























                       Last change: TCP/IP                      3



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