1.\" Copyright (c) 1995, 1996
2.\"	Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\"    must display the following acknowledgement:
14.\"	This product includes software developed by Bill Paul.
15.\" 4. Neither the name of the author nor the names of contributors
16.\"    may be used to endorse or promote products derived from this software
17.\"    without specific prior written permission.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
20.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22.\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR CONTRIBUTORS BE LIABLE
23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29.\" SUCH DAMAGE.
30.\"
31.\" $FreeBSD: src/usr.sbin/rpc.ypxfrd/rpc.ypxfrd.8,v 1.9.2.3 2003/03/11 22:31:32 trhodes Exp $
32.\"
33.Dd June 2, 1996
34.Dt RPC.YPXFRD 8
35.Os
36.Sh NAME
37.Nm rpc.ypxfrd
38.Nd "NIS map transfer server"
39.Sh SYNOPSIS
40.Nm
41.Op Fl p Ar path
42.Sh DESCRIPTION
43The
44.Nm
45utility is used to speed up the distribution of very large NIS maps
46from NIS master to NIS slave servers.
47The normal method for transferring
48maps involves several steps:
49.Bl -bullet -offset indent
50.It
51The master server calls
52.Xr yppush 8
53to inform the slave servers to start a transfer.
54.It
55The slave servers invoke
56.Xr ypxfr 8 ,
57which reads the entire contents of a map from the master server
58using the
59.Fn yp_all
60function.
61.It
62The
63.Xr ypxfr 8
64program then creates a new map database file by using the
65.Xr db 3
66library hash method to store the data that it receives from the server.
67.It
68When all the data has been retrieved,
69.Xr ypxfr 8
70moves the new file into place and sends
71.Xr ypserv 8
72on the local machine a YPPROC_CLEAR to tell it to refresh its
73database handles.
74.El
75.Pp
76This process can take several minutes when there are very large
77maps involved.
78For example: a passwd database with several tens of
79thousands of entries can consume several megabytes of disk space,
80and it can take the
81.Xr db 3
82library package a long time to sort and store all the records
83in a hash database.
84Consider also that there are two sets of map
85files:
86.Pa master.passwd.by{name,uid}
87and
88.Pa passwd.by{name,uid} .
89.Pp
90The
91.Nm
92utility speeds up the transfer process by allowing NIS slave servers to
93simply copy the master server's map files rather than building their
94own from scratch.
95Simply put,
96.Nm
97implements an RPC-based file transfer protocol.
98Transferring even
99a multi-megabyte file in this fashion takes only a few seconds compared
100to the several minutes it would take even a reasonably fast slave server
101to build a new map from scratch.
102.Pp
103The
104.Nm
105utility uses the same access restriction mechanism as
106.Xr ypserv 8 .
107This means that slave servers will only be permitted to transfer
108files if the rules in the
109.Pa securenets
110database permit it (see
111.Xr ypserv 8
112for more information on
113.Pa securenets ) .
114Furthermore, only slave servers using reserved
115ports will be allowed to transfer the
116.Pa master.passwd
117maps.
118.Sh OPTIONS
119The following option is available:
120.Bl -tag -width indent
121.It Fl p Ar path
122This option can be used to override the default path to
123the location of the NIS
124map databases.
125The compiled-in default path is
126.Pa /var/yp .
127.El
128.Sh FILES
129.Bl -tag -width Pa -compact
130.It Pa /var/yp/[domainname]/[maps]
131The NIS maps for a particular NIS domain.
132.El
133.Sh SEE ALSO
134.Xr yp 8 ,
135.Xr yppush 8 ,
136.Xr ypserv 8 ,
137.Xr ypxfr 8
138.Sh AUTHORS
139.An Bill Paul Aq Mt wpaul@ctr.columbia.edu
140.Sh BUGS
141The
142.Dx
143.Nm ypxfrd
144protocol is not compatible with that used by SunOS.
145This is unfortunate
146but unavoidable: Sun's protocol is not freely available, and even if it
147were it would probably not be useful since the SunOS NIS v2 implementation
148uses the original ndbm package for its map databases whereas the
149.Dx
150implementation uses Berkeley DB.
151These two packages use vastly different
152file formats.
153Furthermore, ndbm is byte-order sensitive and not very
154smart about it, meaning that am ndbm database created on a big endian
155system can't be read on a little endian system.
156