home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ARM Club 3
/
TheARMClub_PDCD3.iso
/
hensa
/
network
/
resolv_1
/
ReadMe
next >
Wrap
Text File
|
1993-05-13
|
5KB
|
97 lines
This is resolv+ 2.1, a modified version of the resolver library
from BIND 4.8.3.
resolv+ allows you to specify whether hostname and address lookups
should be performed with BIND, the /etc/hosts file, NIS, or any
combination of the above. This is an idea that I stole shamelessly
from Ultrix.
Version 2.1 includes further enhancements, including enhanced security
in the form of a hostname spoofing check and the ability to trim domains
from local hostnames. See the man page resolv+(8) for more information.
Other than the changes outlines above, this resolver functions exactly
like that in BIND 4.8.3 (because it *is* the resolver from BIND 4.8.3).
To build the resolver library, edit the Makefile and run "make".
If desired, you may edit include/resolv.h and change the MAXNS and
MAXDNSRCH constants first.
This resolver library can be included in the system's shared C library
under SunOS 4.1 releases. To build a shared C library which includes
the resolver, type "make shared". Be sure to edit Makefile first.
To install the library, skip down three paragraphs. Warnings:
(1) Some users have reported problems when a PC-NFS server uses resolv+.
Do so at your own risk. (It may work if you enable the "trim" option
and make sure hostnames in NIS and the hosts file are unqualified, but this
has not been tested.) (2) You will be unable to generate the shared
library if the directory /usr/lib/shlib.etc is empty. This directory
is part of the "Shlib_custom" software category and can be installed
from your SunOS distribution tape or CD.
To configure host lookups, create /etc/host.conf. The format of this
file has changed significantly since the last release of resolv+; you
are advised to read the resolv+(8) manual page for details.
-------------------------------------------------------------------------------
After compiling the library, it should be installed in /usr/lib/libresolv.a.
If you feel particularly ambitious, incorporate it into your systemwide C
library. If your system uses shared libraries, this can be a (fairly)
easy way to make all of your networking programs use this resolver.
To install a new shared C library on a SunOS system, copy the libc.so and
libc.sa files generated by make (they'll be in the shlib subdirectory) into
/lib, then type ldconfig from root. If things to awry and you must back
out the installation, rename the files to some unrelated name (do NOT
remove them or Bad Things may happen(*)) then type ldconfig again. If you
want to test the shared library before installing it system-wide, you can
do so by setting the LD_LIBRARY_PATH environment variable to the
name of the directory containing the libc.so file. If you install a
new shared library it's still a good idea to install the resolver library
in /usr/lib/libresolv.a so it will be used by statically linked programs.
((*) If you remove a shared library file while any running processes are
linked to that library, the processes will die horrible deaths. The safe
way to remove an old shared library file is to rename it so that the system
will no longer recognize it as a shared library, reboot the system, then
remove it.)
Caveat: programs linked on a system with a modified C library may not run
on systems with the stock library. In particular, resolv+ uses BIND's
h_errno external variable, which is not part of Sun's library.
Unless you do incorporate the resolver into a shared C library, you will have
to recompile all your networking programs before you see much benefit from
this package. If you don't have a source code license, don't feel bad:
you're exactly like most of the rest of us. Fortunately, the source code
for the Berkeley networking software is publically available from several
major anonymous FTP sites, including ftp.uu.net and gatekeeper.dec.com.
If your system runs a particularly crummy version of UNIX, you may have
to copy some of the headers in the include subdirectory into /usr/include,
particularly netdb.h. (Actually, you should probably copy them all into
/usr/include anyway, since they're more recent than what most vendors ship.
Or you can do like me and put them all into /usr/local/include, since gcc
automatically looks there.)
-------------------------------------------------------------------------------
Miscellaneous hints and tips:
It's a very good idea to statically link sendmail with a regular,
old-fashioned resolver, as some of resolv+'s features can cause it
to function improperly. If you don't want to do this, you can simulate
the appropriate behaviour by adding something like the following to
/etc/rc.local:
RESOLV_SERV_ORDER=bind /usr/lib/sendmail -bd -q15m
Note that this will take care of the sendmail server, but not any
locally-called sendmail processes (i.e., users sending mail). Linking
statically is really the best solution.
Thanks for bug fixes, enhancements, ideas and suggestions go to John DiMarco,
Patrick Gosling, Chris Metcalf, J. Porter Clark, John P. Rouillard, Tom
Limoncelli, Dan O'Neill and Mic Kaczmarczik.