
This file describes the changes to xinetd. The base version is 2.0.0.

2.0.0: (not released)

2.0.1: (not released)

2.0.2:
   Changes to the Makefile.
   Trivial mods to the usage() function

2.0.3:
   Changes to the Makefile.
   Fixed a bug in the usage() function

2.0.4:
   Distribution versions of the Makefile no longer contain any 
   references to options.opt

2.0.5:
   1) Clarified what an "unlisted RPC service" is in the man page
   2) Fixed a bug in remote_address_check which caused access to be denied
      for all hosts if no_access was set and only_from was not set.
   3) Fixed a bug which caused arbitrary syslog levels if the log_type
      was specified as SYSLOG in the "defaults" entry

2.0.6:
   bug fix in child.c: replaced strx_sprint with strx_print when naming
   interceptor processes


-------------------------------------------------------------------------------

2.1.0: (not released)
   This was mostly a clean-up of 2.0
   List of changes:

   A. The man page has been split into 3 parts:
         xinetd.man         :   man page describing the program
         xinetd.conf.man   :   man page describing the configuration file 
                              This file now includes figures about the
                              overhead of interception.
         xinetd.log.man      :   man page describing the log file
   B. New service attributes
         rpc_number         : to support unlisted RPC services
         nice               : to set the nice value of forked servers
   C. The IDONLY service flag was added
   D. Now uses the timer library unless NO_TIMERS is defined. If NO_TIMERS
      is not defined, the following are also available:
         a) a new option, -cc, to do periodic consistency checks
         b) timeout for reconfiguration
   E.   Configuration file man page now mentions that access control is 
      based on IP-address instead of domain address.
   F.   The interception code now sets the TCP_NODELAY option.
   G. The timeout when contacting a remote identification server is
      configurable both when the service request has been accepted and 
      when the request is rejected. In the former case it defaults to
      infinity while in the latter it defaults to 30 sec.
   H. The log line ids are now constants in an include file.
   I. The fsma library is no longer used.
   J. Most structure fields were renamed; certain functions were renamed too.
      Access to structure fields is now via macros.
   K. A bug in not restoring the number of descriptors to the soft limit
      was fixed.
   L. The -pid option works
   M. New internal services:
         "servers"      : lists active servers
         "services"      : lists active services

2.1.1:
   xinetd produces more meaningful messages if it can't start logging

2.1.2:
   Fixed 2 bugs:
      1) xinetd would request a port number for unlisted RPC services
         One could get around this by simply specifying the port attribute
         for the service; the specified value would be ignored anyway.
      2) xinetd initialization might fail sometimes in function msg_init()
         syslog logging was specified (i.e. the option -syslog was used)
         The cause of this bug was that the 
            xlog_control( xlog, XLOG_GETFD, &fd ) 
         operation will not fail for xlogs connected to syslog and
         the value of 'fd' would be used in the subsequent fcntl(). That
         value is arbitrary since 'fd' is a local variable.
         If 'fd' did not happen to refer to an open descriptor, the program 
         would terminate since the fcntl() would fail (btw, the success
         of the fcntl() call would be harmless if 'fd' happened to
         refer to an open descriptor).

2.1.3:
   Bug fix:
      only_from/no_access addresses would get inverted on little-endian
      machines when such addresses were specified using the numeric notation
      (for example, 128.138.45.3). This bug was in the numeric_addr function
      which did not convert the result of inet_addr to host-byte-order.
      A work around for the bug would be to use the factorized address 
      notation (for example, 128.138.45.{3})

2.1.4:
   Bug fixes:
      1) in dgram_echo(), sin_len was not being set before the invocation of
         recvfrom
      2) in finger_shutdown(), it was possible for Srdline() to return NULL
         (if the remote end would close the socket without sending anything).
         If the RECORD option was set in the log_on_failure flags, this
         would cause the forked xinetd process which did the recording to
         die since it would try to dereference a NULL pointer.

2.1.4-bsdi.0:  (not released)
2.1.4-linux.0: (not released)
	initial BSDI 1.x port
	testing

2.1.4-bsdi.1:
2.1.4-linux.1:
	initial ports
	clean build version
	BSDI 2.x port
	Linux port
	BSDI 1.x, 2.x, and Linux ports first release

2.1.4-bsdi.2:
2.1.4-linux.2:
2.1.4-freebsd.2:
	fix for getrlimit() problem with BSDI; use getdtablesize() instead
	added SIGCONT to list of ignored signals
	code changes for BSDI 1.x RPC support
	code changes for BSDI 2.x RPC support
	removed -DNO_RPC from BSDI 1.x build
	removed -DNO_RPC and _DNO_TERMIOS from BSDI 2.x and Linux builds
	added RPC option code for BSDI 1.x, BSDI 2.x, and Linux builds
	added -clean option to compile-src
	added cvt.c and gcvt.c to misc lib for FreeBSD support
	ported to FreeBSD 2.x

2.1.4-bsdi.3:
2.1.4-linux.3:
2.1.4-freebsd.3:
	added shared lib support for BSDI 2.x
	changed LOGUSER_SUCCESS_TIMEOUT to 30 sec. to prevent child processes
		hanging on no-answer ident queries
	further BSDI 2.x code cleanup
