This is a hacked-up port of the ypserv-0.11 server from the NYS project
written by Peter Eriksson.
The original package included some map creating and dumping tools and
was based on GDBM. This version has been modified in the following
ways:
- GDBM replaced with DB and many weird hacks made to the read_database()
function because of this.
- implimented the ypxfr service (using ypxfr from the yps-0.21 package,
aso from the NYS project)
- added code to check the TCP port from which NIS requests originate:
the server will refuse to serve the master.passwd.{byname|byuid} maps
if the request doesn't come from a privileged port. Normally, only the
superuser can issue such a request. Requests for the passwd.{bynam|byuid}
maps aren't affected. There will be a small change made to getpwent.c
in libc to complement this.
- added code to do DNS lookups via actual resolver queries instead of
relying on gethostbyname() and friends. The author noted in the original
documentation that a loop condition could arise where the server would
query itself for hostsname lookups. Using direct DNS lookups prevents
this from happening.
- added code to properly fork() the server into the background unless
invoked with the -debug flag.
- Added combined syslog/perror function.
- fixed a few bugs (which were probably introduced by all the other
changes)
- Created a bmake Makefile.
Note that this package can be linked against the tcp_wrapper package
to provide address-based authentication, but this isn't done by default
since the tcp_wrapper package isn't part of FreeBSD.