History log of /freebsd-9.3-release/include/rpcsvc/yp.x
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 114629 04-May-2003 obrien

Use __FBSDID vs. rcsid[].


# 50473 27-Aug-1999 peter

$Id$ -> $FreeBSD$


# 31387 24-Nov-1997 charnier

Add Ids, from lite2.


# 31305 20-Nov-1997 charnier

Remove sccsid, not present in Lite2.


# 30870 31-Oct-1997 charnier

Add const to rcsid[] definition so that -Wall will not complain.


# 26208 28-May-1997 wpaul

Resolve conflicts.


# 23037 23-Feb-1997 peter

Revert $FreeBSD$ to $Id$


# 21673 14-Jan-1997 jkh

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 14261 26-Feb-1996 wpaul

Add structure and procedure definitions for NIS v1. (This information
was reverse-engineered using the <rpcsvc/ypv1_prot.h> file supplied
with SunOS 4.1.3 as a guide.)


# 12957 22-Dec-1995 wpaul

*groan* Fix yet _ANOTHER_ discrepancy between the NIS protocol definition
and real life. YPPUSHPROC_XFRRESP is supposed to return void and take
an argument of type yppushresp_xfr, not the other way around as yp.x seems
to imply. (I spent two hours today staring intensely at my prototype ypxfr
code and scratching my head before I finally figured this out.)


# 12690 09-Dec-1995 wpaul

*sigh* Yet another bogosity: the YPPROC_FIRST procedure is listed as
taking an argument of type ypresp_key. This is incorrect: it should be
ypresp_nokey. (yp_first() is supposed to return the first key in a
given map; the server doesn't need any client-specified key to handle
such a request.)


# 12677 08-Dec-1995 wpaul

"What? He's modifying the NIS protocol definition!?"

No, not really. There are just a couple of long-standing bogosities here
that I feel compelled to fix. :)

There are two small changes here:

1) yp.x actually contains _three_ protocol definitions: YPPROG (standard
NIS client/server procedures), YPPUSH_XFRRESPPROG (callback handler
for the YPPROC_XFR service, aka ypxfr/yppush) and YPBINDPROG (for ypbind,
ypset & friends). The problem is that when you run yp.x through rpcgen(1),
it generates client and server stubs with hooks for all three services.
This makes it impossible to actually use the rpcgen-erated code in a
program that only deals with _one_ of these services (ypserv, ypbind,
etc...) without manually removing the unneeded stubs (either by hand
editing or by committing unspeakable horrors with sed). This defeats
the whole purpose of using rpcgen and is generally annoying.

What I've done is to insert a few #ifndefs and #endifs to allow a
programmer to selectively blot out those functions that aren't needed
for a particular program. For instance, if you do 'rpcgen -DYPSERV_ONLY',
you'll get only the necessary client/server stubs to implement the
standard yp client and server functions. If you do 'rpcgen -DYPBIND_ONLY',
you get only what you need for ypbind. If you don't #define anything,
you get the whole mess, just like before, so existing programs won't
notice the difference. (Note that the -D flag is not supported by our
existing crufty version of rpcgen, but I intend to update it soon.)

2) The definition for the ypresp_key_val structure is actually incorrect
with respect to reality: the key and val members are specified in the
wrong order. It should be val/key rather than key/val. For whatever
the reason, Sun's actual NIS implementation contradicts the protocol
definition in this case. Again, accounting for this bogosity here is
cleaner and easier than mangling the output from rpcgen.


# 1832 04-Aug-1994 wollman

Moved 1.1.5 RPC service files from 1.1.5. Tese are the correct ones;
the ones in /usr/src/lib/librpc/rpcsvc are somewhat bogus and will
be deleted.

Submitted by: Original work in 1.1 by J.T. Conklin.