mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2024-11-29 04:21:26 +01:00
234 lines
9.5 KiB
Plaintext
234 lines
9.5 KiB
Plaintext
RPCSRC 4.0 7/11/89
|
|
|
|
This distribution contains Sun Microsystem's implementation of the
|
|
RPC and XDR protocols and is compatible with 4.2BSD and 4.3BSD. Also
|
|
included is complete documentation, utilities, RPC service
|
|
specification files, and demonstration services in the format used by
|
|
the RPC protocol compiler (rpcgen). See WHAT'S NEW below for
|
|
details.
|
|
|
|
NOTE ABOUT SECURE RPC:
|
|
|
|
This release of RPCSRC contains most of the code needed to implement
|
|
Secure RPC (see "DES Authentication" in the RPC Protocol Specification,
|
|
doc/rpc.rfc.ms). Due to legal considerations, we are unable to
|
|
distribute an implementation of DES, the Data Encryption Standard, which
|
|
Secure RPC requires. For this reason, all of the files, documentation, and
|
|
programs associated with Secure RPC have been placed into a separate
|
|
directory, secure_rpc. The RPC library contained in the main body of this
|
|
release *DOES NOT* support Secure RPC. See secure_rpc/README for more
|
|
details. (A DES library was posted in Volume 18 of comp.sources.unix.)
|
|
|
|
If you wish to report bugs found in this release, send mail to:
|
|
|
|
Portable ONC/NFS
|
|
Sun Microsystems, Inc
|
|
MS 12-33
|
|
2550 Garcia Avenue
|
|
Mountain View, CA 94043
|
|
|
|
or send Email to nfsnet@sun.com (the Internet) or sun!nfsnet (Usenet).
|
|
|
|
ROADMAP
|
|
|
|
The directory hierarchy is as follows:
|
|
|
|
demo/ Various demonstration services
|
|
demo/dir Remote directory lister
|
|
demo/msg Remote console message delivery service
|
|
demo/sort Remote sort service
|
|
|
|
doc/ Documentation for RPC, XDR and NFS in "-ms" format.
|
|
|
|
etc/ Utilities (rpcinfo and portmap). portmap must be
|
|
started by root before any other RPC network services are
|
|
used. SEE BELOW FOR BUGFIX TO 4.3BSD COMPILER.
|
|
|
|
man/ Manual pages for RPC library, rpcgen, and utilities.
|
|
|
|
rpc/ The RPC and XDR library. SEE BELOW
|
|
FOR BUGFIX TO 4.2BSD COMPILER.
|
|
|
|
rpcgen/ The RPC Language compiler (for .x files)
|
|
|
|
rpcsvc/ Service definition files for various services and the
|
|
server and client code for the Remote Status service.
|
|
|
|
secure_rpc/ The files in this directory are used to build a version of
|
|
the RPC library with DES Authentication. See the README
|
|
file in that directory for more details.
|
|
|
|
BUILD INSTRUCTIONS
|
|
|
|
Makefiles can be found in all directories except for man. The
|
|
Makefile in the top directory will cause these others to be invoked
|
|
(except for in the doc, man and demo directories), in turn building the
|
|
entire release.
|
|
|
|
WARNING! THE DEFAULT INSTALLATION PROCEDURES WILL INSTALL FILES
|
|
IN /usr/include, /usr/lib, /usr/bin and /etc.
|
|
|
|
The master RPC include file, rpc/rpc.h, is used by all programs and
|
|
routines that use RPC. It includes other RPC and system include files
|
|
needed by the RPC system. PLEASE NOTE: If your system has NFS, it
|
|
may have been based on Sun's NFS Source. The include files installed
|
|
by this package may duplicate include files you will find on your NFS
|
|
system. The RPCSRC 4.0 include files are upwardly compatible to all
|
|
NFS Source include files as of the date of this distribution (not
|
|
including any new definitions or declarations added by your system
|
|
vendor). HOWEVER: Please read the comments towards the end of
|
|
rpc/rpc.h regarding rpc/netdb.h. You may need to uncomment the
|
|
inclusion of that file if the structures it defines are already
|
|
defined by your system's include files.
|
|
|
|
After making any compiler fixes that are needed (see below), at
|
|
the top directory, type:
|
|
|
|
make install
|
|
|
|
For all installations, the Makefile macro DESTDIR is prepended to the
|
|
installation path. It is defined to be null in the Makefiles, so
|
|
installations are relative to root. (You will probably need root
|
|
privileges for installing the files under the default path.) To
|
|
install the files under some other tree (e.g., /usr/local), use the
|
|
command:
|
|
|
|
make install DESTDIR=/usr/local
|
|
|
|
This will place the include files in /usr/local/usr/include, the RPC
|
|
library in /usr/local/usr/lib, rpcgen in /usr/local/usr/bin, and the
|
|
utilities in /usr/local/etc. You'll have to edit the Makefiles or
|
|
install the files by hand if you want to do anything other than this
|
|
kind of relocation of the installation tree.
|
|
|
|
The RPC library will be built and installed first. By default it is
|
|
installed in /usr/lib as "librpclib.a". The directory
|
|
/usr/include/rpc will also be created, and several header files will
|
|
be installed there. ALL RPC SERVICES INCLUDE THESE HEADER FILES.
|
|
|
|
The programs in etc/ link in routines from librpclib.a. If you change
|
|
where it is installed, be sure to edit etc/'s Makefile to reflect this.
|
|
These programs are installed in /etc. PORTMAP MUST BE RUNNING ON
|
|
YOUR SYSTEM BEFORE YOU START ANY OTHER RPC SERVICE.
|
|
|
|
rpcgen is installed in /usr/bin. This program is required to build
|
|
the demonstration services in demo and the rstat client and server in
|
|
rpcsvc/.
|
|
|
|
The rpcsvc/ directory will install its files in the directory
|
|
/usr/include/rpcsvc. The Remote Status service (rstat_svc) will be
|
|
compiled and installed in /etc. If you wish to make this service
|
|
available, you should either start this service when needed or have
|
|
it started at boot time by invoking it in your /etc/rc.local script.
|
|
(Be sure that portmap is started first!) Sun has modified its
|
|
version of inetd to automatically start RPC services. (Use "make
|
|
LIB=" when building rstat on a Sun Workstation.) The Remote Status
|
|
client (rstat) will be installed in /usr/bin. This program queries
|
|
the rstat_svc on a remote host and prints a system status summary
|
|
similar to the one printed by "uptime".
|
|
|
|
The documentation is not built during the "make install" command.
|
|
Typing "make" in the doc directory will cause all of the manuals to
|
|
be formatted using nroff into a single file. We have had a report
|
|
that certain "troff" equivalents have trouble processing the full
|
|
manual. If you have trouble, try building the manuals individually
|
|
(see the Makefile).
|
|
|
|
The demonstration services in the demo directory are not built by the
|
|
top-level "make install" command. To build these, cd to the demo
|
|
directory and enter "make". The three services will be built.
|
|
RPCGEN MUST BE INSTALLED in a path that make can find. To run the
|
|
services, start the portmap program as root and invoke the service
|
|
(you probably will want to put it in the background). rpcinfo can be
|
|
used to check that the service succeeded in getting registered with
|
|
portmap, and to ping the service (see rpcinfo's man page). You can
|
|
then use the corresponding client program to exercise the service.
|
|
To build these services on a Sun workstation, you must prevent the
|
|
Makefile from trying to link the RPC library (as these routines are
|
|
already a part of Sun's libc). Use: "make LIB=".
|
|
|
|
BUGFIX FOR 4.3BSD COMPILER
|
|
|
|
The use of a 'void *' declaration for one of the arguments in
|
|
the reply_proc() procedure in etc/rpcinfo.c will trigger a bug
|
|
in the 4.3BSD compiler. The bug is fixed by the following change to
|
|
the compiler file mip/manifest.h:
|
|
|
|
*** manifest.h.r1.1 Thu Apr 30 13:52:25 1987
|
|
--- manifest.h.r1.2 Mon Nov 23 18:58:17 1987
|
|
***************
|
|
*** 21,27 ****
|
|
/*
|
|
* Bogus type values
|
|
*/
|
|
! #define TNULL PTR /* pointer to UNDEF */
|
|
#define TVOID FTN /* function returning UNDEF (for void) */
|
|
|
|
/*
|
|
--- 21,27 ----
|
|
/*
|
|
* Bogus type values
|
|
*/
|
|
! #define TNULL INCREF(MOETY) /* pointer to MOETY -- impossible type */
|
|
#define TVOID FTN /* function returning UNDEF (for void) */
|
|
|
|
/*
|
|
|
|
If you cannot fix your compiler, change the declaration in reply_proc()
|
|
from 'void *' to 'char *'.
|
|
|
|
BUGFIX FOR 4.2BSD COMPILER
|
|
|
|
Unpatched 4.2BSD compilers complain about valid C. You can make old
|
|
compilers happy by changing some voids to ints. However, the fix to
|
|
the 4.2 VAX compiler is as follows (to mip/trees.c):
|
|
|
|
*** trees.c.r1.1 Mon May 11 13:47:58 1987
|
|
--- trees.c.r1.2 Wed Jul 2 18:28:52 1986
|
|
***************
|
|
*** 1247,1253 ****
|
|
if(o==CAST && mt1==0)return(TYPL+TYMATCH);
|
|
if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
|
|
else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
|
|
! else if( mt12 == 0 ) break;
|
|
else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
|
|
else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
|
|
break;
|
|
--- 1261,1269 ----
|
|
if(o==CAST && mt1==0)return(TYPL+TYMATCH);
|
|
if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
|
|
else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
|
|
! /* if right is TVOID and looks like a CALL, is not ok */
|
|
! else if (mt2 == 0 && (p->in.right->in.op == CALL || p->in.right->in.op == UNARY CALL))
|
|
! break;
|
|
else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
|
|
else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
|
|
break;
|
|
|
|
WHAT'S NEW IN THIS RELEASE: RPCSRC 4.0
|
|
|
|
The previous release was RPCSRC 3.9. As with all previous releases,
|
|
this release is based directly on files from Sun Microsystem's
|
|
implementation.
|
|
|
|
Upgrade from RPCSRC 3.9
|
|
|
|
1) RPCSRC 4.0 upgrades RPCSRC 3.9. Improvements from SunOS 4.0 have
|
|
been integrated into this release.
|
|
|
|
Secure RPC (in the secure_rpc/ directory)
|
|
|
|
2) DES Authentication routines and programs are provided.
|
|
3) A new manual, "Secure NFS" is provided, which describes Secure RPC
|
|
and Secure NFS.
|
|
4) Skeleton routines and manual pages are provided which describe the
|
|
DES encryption procedures required by Secure RPC. HOWEVER, NO DES
|
|
ROUTINE IS PROVIDED.
|
|
|
|
New Functionality
|
|
|
|
5) rpcinfo can now be used to de-register services from the portmapper
|
|
which may have terminated abnormally.
|
|
6) A new client, rstat, is provided which queries the rstat_svc and
|
|
prints a status line similar to the one displayed by "uptime".
|