Commit Graph

58 Commits

Author SHA1 Message Date
Ruslan Ermilov
8af1452cf8 Removed duplicate VCS ID tags, as per style(9). 2001-08-13 14:06:34 +00:00
Alfred Perlstein
603c86672c Implement client side NFS locks.
Obtained from: BSD/os
Import Ok'd by: mckusick, jkh, motd on builder.freebsd.org
2001-04-17 20:45:23 +00:00
Alfred Perlstein
8360efbd6c Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

  Bring in required TLI library routines to support this.

  Since we don't support TLI we've essentially copied what NetBSD
  has done, adding a thin layer to emulate direct the TLI calls
  into BSD socket calls.

  This is mostly from Sun's tirpc release that was made in 1994,
  however some fixes were backported from the 1999 release (supposedly
  only made available after this porting effort was underway).

  The submitter has agreed to continue on and bring us up to the
  1999 release.

  Several key features are introduced with this update:
    Client calls are thread safe. (1999 code has server side thread
    safe)
    Updated, a more modern interface.

  Many userland updates were done to bring the code up to par with
  the recent RPC API.

  There is an update to the pthreads library, a function
  pthread_main_np() was added to emulate a function of Sun's threads
  library.

  While we're at it, bring in NetBSD's lockd, it's been far too
  long of a wait.

  New rpcbind(8) replaces portmap(8) (supporting communication over
  an authenticated Unix-domain socket, and by default only allowing
  set and unset requests over that channel). It's much more secure
  than the old portmapper.

  Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
  to support TI-RPC and to support IPV6.

  Umount(8) is also fixed to unmount pathnames longer than 80 chars,
  which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul
2001-03-19 12:50:13 +00:00
Jeroen Ruigrok van der Werven
9a01d32bfd Fix typo: seperate -> separate.
Seperate does not exist in the english language.

Submitted to look at by:	kris
2001-02-06 10:39:38 +00:00
Alfred Perlstein
702665c754 remove unneeded sys/ucred.h include 2000-11-30 18:33:02 +00:00
Peter Wemm
a4add9a9b1 $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
Archie Cobbs
17640fbe70 Make rcsid a const char[] instead of char[] to avoid compiler warnings 1998-12-06 08:15:08 +00:00
David E. O'Brien
b8cff82d7f Build headers with -DWANT_NFS3.
(finishing up on Amd upgrade)
1998-09-17 19:51:40 +00:00
David E. O'Brien
8a2d7d2231 Fix tons of cut-n-paste errors in the WANT_NFS3 code. 1998-09-06 09:21:35 +00:00
Bruce Evans
59bd6ec5a0 Uncommit the generated file key_prot.h. Install it from where it
is generated.  It must be installed in both /usr/include/rpc/ and
/usr/include/rpcsvc/ for historical reasons.  The generated version
was once missing ANSI prototypes because the wrong flags were passed
to rpcgen, but that is fixed now.  The committed version had `#pragma
indent' which gratuitously broke K&R support.  Apart from this, all
versions before and after this commit are identical.
1998-02-13 03:10:28 +00:00
Bill Paul
813907f9ec Invoke rpcgen with -C so that headers are created with ANSI prototypes.
Note: this may cause some problems in a few cases. With very old versions
of rpcgen, if you defined a procedure called foo, then rpcen would create
client stubs for function foo_1() and server stubs _also_ with function
foo_1(). This only worked because of the lack of ANSI prototypes: the
client side stub takes different arguments than the server side stub.
(The client side takes a CLIENT * handle, while the server side wants
an svc_req *.)

To fix this conflict, rpcgen in ANSI mode generates foo_1() for the client
and foo_1_svc() for the server. RPC server code that depends on the old
behavior might break because of this. (Fixing it is just a matter of
adding the _svc suffix onto the server procedure names.)
1998-01-19 17:19:09 +00:00
Bruce Evans
b68659fc63 Fixed pedantic syntax error (trailing comma in enum). 1998-01-16 12:39:20 +00:00
Bruce Evans
a67d6a5933 Removed `#pragma ident' (for a FreeBSD Id) so that the K&R support
isn't gratuitously broken.  This also prevents ANSI compilers from
recognizing the pragma as a request to run /usr/games/hack...
FreeBSD Ids should be in comments or rcsids, not in `#pragma ident's
(which are equivalent to comments when compiled by gcc), and the
only FreeBSD change in this file seems to be adding the Id.
1998-01-16 12:28:09 +00:00
Bruce Evans
ab111c13d5 Commented out `#pragma ident' (for a Sun id) so that the K&R support
isn't gratuitously broken.  This also prevents ANSI compilers from
recognizing the pragma as a request to run /usr/games/hack...
1998-01-16 12:20:41 +00:00
Bruce Evans
2ab72cf580 Removed redundant declarations. rpcgen generates `typedef enum foo;'
from `enum foo;'.
1998-01-16 12:17:55 +00:00
Bruce Evans
cb4b2fb400 Made this header self-sufficent. It had unnecessary dependencies on
<sys/cdefs.h>, <sys/types.h>, <rpcsvc/yp_prot.h>, and on the latter's
prerequisites (5 more).
1998-01-16 12:10:13 +00:00
Bruce Evans
25776f4cf7 Fixed a missing dependency. 1998-01-16 11:51:19 +00:00
Philippe Charnier
d95c2f3a27 Add Ids, from lite2. 1997-11-24 07:36:46 +00:00
Philippe Charnier
e84f19ceda Remove sccsid, not present in Lite2. 1997-11-20 07:18:07 +00:00
Philippe Charnier
468b39106c Add const to rcsid[] definition so that -Wall will not complain. 1997-10-31 12:26:52 +00:00
Bruce Evans
3b6f5a5bdd Removed installhdrs target. It was an unnecessary complication. 1997-09-16 10:52:59 +00:00
Bruce Evans
41b5513403 Fix and simplify installhdrs target. It didn't install the headers in
${HFILES} and it's simpler to install the non-headers in ${XFILES}.
1997-08-21 18:33:13 +00:00
John-Mark Gurney
4604167e0a fix a problem with headers not being installed properly... basicly the
installhdrs target was not being propagated to the subdirs...

also fix rpcsvc's Makefile to have a installhdrs target to install the
headers..
1997-08-21 09:29:49 +00:00
Bill Paul
c3a87c6d45 Undo small change I accidentally left in while testing (files were
installed with wrong ownerships).

Pointed out by: bde
1997-05-28 16:26:05 +00:00
Bill Paul
9bd1654ae3 Resolve conflicts. 1997-05-28 04:38:30 +00:00
Bill Paul
4728e9f6ac This commit was generated by cvs2svn to compensate for changes in r26206,
which included commits to RCS files with non-trunk default branches.
1997-05-28 04:35:55 +00:00
Bill Paul
3b0f74670a Hold onto your hats folks, here it comes: the first stage of the
Secure RPC import I've been threatening.

This step adds some necessary protocol definition files and headers to
rpcsvc, including the ones needed for NIS+.

Reviewed by:	Mark Murray
1997-05-28 04:35:55 +00:00
Eivind Eklund
f756433e8b Back out all of yesterdays include file changes. 1997-05-07 20:01:10 +00:00
Eivind Eklund
3c9cc90091 Back out part of yesterdays changes. They were obviously not tested well
enough :-(  (With backout on this file, libc compiles.  'make world' isn't
finished yet.)

Pointed out by: Oliver Roberts
1997-05-07 19:10:49 +00:00
Eivind Eklund
48ea0bec18 Make a lot of include-files self-contained. I excluded the patches changing
int's to gid_t and uid_t - should I commit these, too?

Closes PR misc/2625.

Submitted by:	Julian Assange <proff@iq.org>
1997-05-07 02:27:18 +00:00
Doug Rabson
7538921e31 Add protocol definitions for NFSv3. Use -DWANT_NFS3 with rpcgen to get
the new protocol.

Obtained from: rfc1813
1997-04-18 12:31:27 +00:00
Peter Wemm
79403fe300 Revert $FreeBSD$ to $Id$ 1997-02-23 09:21:14 +00:00
Jordan K. Hubbard
1130b656e5 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.
1997-01-14 07:20:47 +00:00
Peter Wemm
2a053fb1ae - Prototypes, including pointers to functions
- C++ safe
1996-12-30 14:01:12 +00:00
Peter Wemm
8b7156a207 'make install' is not supposed to touch anything. 1996-08-30 22:36:45 +00:00
Peter Wemm
20c5124b62 missed these parts of Bruce's changes last time..
Submitted by: bde (again :-)
1996-08-30 21:57:39 +00:00
Peter Wemm
0fd77885de Some bmake magic to clean up the install more.
fix another missed -c typo of mine.
clean the rpcgen implicit rule more

Submitted by: bde
1996-08-30 19:31:28 +00:00
Peter Wemm
230a383d0d replace cmp -s || install with ${INSTALL} -C, and @for with .for 1996-08-29 19:59:48 +00:00
Bill Paul
74e4b87eb6 There are a few small additions to the protocol to make it
easier to use in mixed environments:

- Add three new members to the request structure:

  - a filename specification
  - a database type specification
  - a system byte prder specification

  These allow the client to ask the server for a particular type of
  database (Berkeley DB hash/btree/recno, GNU GDBM, dbm, ndbm, etc...)
  and get back a meaningful error if the server doesn't support it.
  The byte order spec is needed if the database type is byte order
  sensntive. You don't, for example, want to read an ndbm database
  from a big endian machine on a little endian machine (the ndbm code
  will explode). The filename spec lets the client handle things like
  ndbm which uses two seperate files per database (foo.dir and foo.pag).
  The client can ask for each half, one at a time.

- Add a list of database types and byte order values. Each list has
  a wildcard 'ANY' entry which lets the client ask for whatever the
  server supports. (XFR_ENDIAN_ANY is useful with the Berkeley DB hash
  method for instance, since it isn't byte order sensitive.)

- Add two newserver failure codes: XFR_DB_TYPE_MISMATCH and
  XFR_DB_ENDIAN_MISMATCH. The server uses these to tell the client
  that it doesn't support the requested type/byte order.

These changes were made at the suggestion of Thorsten Kukuk, the
current maintainer of the Linux ypserv distribution. This allows
Linux and FreeBSD NIS servers to use the same ypxfrd protocol and
avoid accidentally exchanging incompatible map files.
1996-07-04 02:08:17 +00:00
Bill Paul
2dc30288e5 Now that Peter has been nice enough to bail me out of my last little
mishap, it's time to have the Makefile install ypxfrd.x and ypxfrd.h.
1996-06-05 03:47:18 +00:00
Bill Paul
2f83f6d899 (I hope I'm doing this correctly.)
Import a my own little ypxfrd protocol. Note that this protocol is
_NOT_ the same as Sun's, which is proprietary.

This basically impliments an RPC-based file transfer protocol which
lets a slave server suck over a raw map database file from the master.
This is many times faster than the normal method, which requires reading
the records from ypserv via yp_all() and then creating a new database
on the fly, particularly when you have many tens of thousands of
records in a map (e.g. a huge passwd database).

The protocol number I chose falls within the 'user-specified' range.
Maybe we should register it with Sun so we can get an official vendor
number for it. :)
1996-06-05 02:42:33 +00:00
Bill Paul
2a781cb86e 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.)
1996-02-26 02:22:53 +00:00
Mike Pritchard
71d9c7815e Fix a bunch of spelling errors in the comment fields
of a bunch of system include files.
1996-01-30 23:33:04 +00:00
cvs2svn
0cc3916673 This commit was manufactured by cvs2svn to create branch 'WPAUL'. 1996-01-12 07:03:35 +00:00
Bill Paul
898daf2b5b *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.)
1995-12-22 04:08:28 +00:00
Bill Paul
d888004745 *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.)
1995-12-09 08:34:04 +00:00
Bill Paul
04228afa84 "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.
1995-12-08 17:58:50 +00:00
Joerg Wunsch
df57976dbc Install the headers and sample files with 444 perms (as opposed to
555).

Submitted by:	graichen@sirius.physik.fu-berlin.de (Thomas Graichen)
1995-08-15 20:06:50 +00:00
Bruce Evans
48cfb668fc Change install' to ${INSTALL}' so that default install flags can be
specified in the top level Makefiles.

Previously I missed dozens of Makefiles that skip the install after
using `cmp -s' to decide that the install isn't necessary.
1995-08-06 12:24:38 +00:00
Garrett Wollman
827d45ce27 Fix a bug I didn't manage to trigger until after committing previous
fix to header installation.
1995-06-29 19:45:46 +00:00