#
# @(#)README	3.1 93/04/08	- A More Universal Network superserver
#

NOTE: feature 1) below now in a separate program. I found that integration
of this into the main stream code could not be done elegantly.


munetd(8) is a modified version of the BSD inetd(8) version 5.25, as distributed
by several FTP archive sites. 

FEATURES:

	1) Listening for connections on pseudo-terminals (pty's), useful
	   for programmes that expect a terminal as their stdio but you
	   want to run on a network connection (eg. tip(1), lpd(8), uucp).
	   Example: the configuration entry

	   /dev/ptyrf stream  pty  wait  root  /usr/local/etc/tt.jetd  tt.jetd -h pc-lw

	   would allow lpd(8) or tip(1) to connect to a Laser printer on the
	   network (`tt.jetd' typically sets up the connection using TCP and
	   then acts as a bi-directional transfer agent).

	2) Support for AF_UNIX sockets on the local machine.
	   As yet, I have found no useful purpose for this, but it was
	   relatively easy to add. A configuration line would go like this:

	   /tmp/your-sock stream unix nowait root /etc/your-daemon <args>


	3) Support for RPC based daemons.
	   Syntax as used by Sun Microsystems, example:

	   rusersd/1-2	dgram	rpc/udp	wait nobody /usr/etc/rpc.rusersd rpc.rusersd

	4) Saving the process ID in a file (typically `/etc/munetd.pid') for
	   easier installation of configuration changes. This comes in
	   handy if you automate (as we do) the distribution of configuration
	   files on a bundle of machines.

	5) Some bug fixes (especially in the handling of HANGUP signals)

	6) Specification on a per service basis of the maximum number of
	   allowed requests within a fixed time interval. This may be used
	   to prevent "service failed (looping)" for heavily used services,
	   while retaining this safety barrier for services for which such
	   rapidly succeeding invocations indicates erroneous behaviour (of
	   another host).

	7) Allow services to run with a specified primary group id, in stead
	   of the group id normally associated with the user id given in
	   the ``user'' field of the configuration file.
	   This idea was proposed by Darren Reed (avalon@coombs.anu.edu.au)
	   and Wietse Venema (wietse@wzv.win.tue.nl).


INSTALLATION

	Define RPC=0 in the makefile if your libraries do not contain
	the routines `pmap_set' and `pmap_unset'.

	Type `make withlib' if library routines `daemon' or `setenv' 
	are not available on your system.


TODO
	Should hold a lock on `/etc/munetd.pid' while running to
	avoid inadvertent killings.


FTP

	`munetd' is available by Anonymous FTP from `ftp.cs.few.eur.nl'
	(file: `pub/munetd.tar.Z')


REMARKS TO

	Paul Kranenburg, Dept. C. Sc., Erasmus University Rotterdam, NL
	pk@cs.few.eur.nl
