Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Jun 1996 21:36:56 -0700 (PDT)
From:      Bill Paul <wpaul>
To:        CVS-committers, cvs-all, cvs-usrsbin
Subject:   cvs commit:  src/usr.sbin/rpc.ypxfrd - Imported sources
Message-ID:  <199606050436.VAA26433@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

wpaul       96/06/04 21:36:55

  src/usr.sbin/rpc.ypxfrd - Imported sources
  Update of /home/ncvs/src/usr.sbin/rpc.ypxfrd
  In directory freefall.freebsd.org:/a/wpaul/import
  
  Revision/Branch: 1.1.1
  
  Log Message:
  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.)
  
  Status:
  
  Vendor Tag:	WPAUL
  Release Tags:	ypxfrd_1_0
  		
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/Makefile
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/rpc.ypxfrd.8
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/ypxfrd.x
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/ypxfrd_extern.h
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/ypxfrd_main.c
  N src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd/ypxfrd_server.c
  
  No conflicts created by this import
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199606050436.VAA26433>