freebsd kernel with SKQ
Go to file
Bill Paul 16118c2bcb Import rpc.ypxfrd.
This server impliments an RPC-based file transfer protocol that allows
an NIS slave server to copy a raw map database file from an NIS master.

The goal here is to speed up the transfer of very large maps. If you
have, for example, an NIS password database with 30,000 records in it,
it can take around 8 to 10 minutes to regenerate it (four hash databases
are created). As it stands now, ypxfr(8) transfers a map by sucking all
the records from ypserv(8) on the master using yp_all() and writing them
to a new database using the db(3) library. This adds up to another 8 to 10
minutes, per slave. With as the number of slaves increases, this latency
becomes prohibitive.

With rpc.ypxfrd, all the slave has to do is copy the already-built
hash database file from the master and move it into place. Even with a
multi-megabyte file, this reduces the master to slave transfer time
to well under a minute. (This is using TCP.)

Access restrictions are applied using the same mechanism as in ypserv:
you can control access using /var/yp/securenets, and the server will
not transmit the master.passwd.* maps unless the transfer request originates
on a reserved port.

Note: this server is based on my hastily contrived protocol and is _NOT_
compatible with Sun's protocol of the same name. It can't be compatible
for a couple of reasons. For one thing, Sun's protocol has not been published
anywhere that I know of. It is not included in any of the SunRPC source
distributions that I've been able to find. Second, Sun's NIS v2 code
uses old style ndbm maps while FreeBSD uses Berkeley DB. The file formats
are incompatible, so being able to transfer maps between FreeBSD and SunOS
hosts wouldn't do any good anyway. (You could always port the FreeBSD NIS
code to SunOS if you really wanted to do it. :)

(There's also the little fact that SunOS/SPARC is big-endian and FreeBSD/i386
is little-endian. Berkeley DB can handle byte ordering differences; ndbm
probably can't.)
1996-06-05 04:36:55 +00:00
bin Backup yacc changes. 1996-06-02 17:06:40 +00:00
eBones Localize time 1996-05-07 19:05:10 +00:00
etc Eliminate warning message and add big warnings about security holes 1996-05-22 05:43:30 +00:00
games Backed out yacc changes. 1996-06-03 01:56:05 +00:00
gnu Use setreuid instead of seteuid for permissions management 1996-06-02 19:59:26 +00:00
include Now that Peter has been nice enough to bail me out of my last little 1996-06-05 03:47:18 +00:00
lib Add ypxfrd.x so that the XDR routines for this protocol will be built 1996-06-05 03:54:43 +00:00
libexec Pass in both username and file to jkfprintf 1996-06-04 15:42:09 +00:00
lkm `mv'' -> `mv -f'' 1996-05-07 23:19:49 +00:00
release Put .inf files directly into distributions so that sysinstall can find them. 1996-05-29 04:13:17 +00:00
sbin Return make_union, s-bit removed 1996-05-19 17:24:10 +00:00
secure Localize time 1996-05-07 19:05:10 +00:00
share Fix incorrect handling of .cxx files in default rules. 1996-06-03 13:26:16 +00:00
sys Keep page-table pages from ever being sensed as dirty. This should fix 1996-06-05 03:31:49 +00:00
tools Don't look in libkern, it went away. 1995-12-29 01:51:23 +00:00
usr.bin Upgrade from 1.1 to 1.1.91. Unknown to me, the latter version was 1996-06-04 19:09:50 +00:00
usr.sbin Import rpc.ypxfrd. 1996-06-05 04:36:55 +00:00
COPYRIGHT This is the official 4.4 Lite copyright. 1994-09-11 07:53:28 +00:00
Makefile 1) make -DCLOBBER not remove most of /usr/lib 1996-05-04 07:12:07 +00:00