Revision history for Perl extension Net::Server.

0.87  Feb 14 2004
        - Patch by Enrik.Berkhan@planb.de (Enrik Berkhan)
          that fixes RT Bug #3671
        - Patch by chris@dyndns.org (Chris Reinhardt)
          Integrate pre_accept_hook and post_accept_hook
          into Net::Server::Fork

0.86  Nov 06 2003
        - Changed maintainer to bbb@cpan.org (Rob Brown).
        - Patch to fix Net::Server::Daemonize setuid bug:
          http://www.ijs.si/software/amavisd/net-server.patch
        - Add a fix in the argument handling of configure
          to account for some alpha systems (James Vasak)
        - For RedHat 8.0 perl.req, avoid demanding that
          perl(IO::Muliplex) and perl(IO::Socket::SSL)
          rpms are installed just to use Net::Server.

0.85  Mar 06 18:00 2003
        - Lower timeouts during tests (Anil Madhavapeddy)	
        - Add configure_hook to MultiType (Michael Alan Dorman)
        - More graceful exit of children in PreForkSimple (Helge Kraenz)
        - Correct test for POSIX::setuid(0) success (Peter Chen)
        - Allow DOS filenames for conf files (Mark M. Adkins)
        - Allow for ndelay on Sys::Syslog::openlog (Doug Perham)
        - Add documentation about run_dequeue.
        - Add run_dequeue feature to Multiplex personality.

0.84  May 22 08:00 2002
        - Safer peername check in get_client_info to
          avoid crashing under certain conditions.
        - Create noarch RPM since Net::Server is pure perl.
        - Always chown log and pid files when started as root
          but running as non-root.
        - More graceful exit of children in PreFork
        - Kill children with a kill 15 rather than kill 2 -
          Fixes on Tru64 UNIX (Marco Sbodio)
        - Allow for SOCK_STREAM and SOCK_DGRAM to be passed
          as strings to proto (ie "/tmp/path/|SOCK_STREAM|unix") (Andrzej Filip)
        - Backward compatibility fix for IO::Socket usage (Matt Sergeant)
        - Avoid reopening STDIN and STDOUT in INET mode. (Bernard Quatermass)


0.83  Mar 26 15:33 2002
        - Prevent race condition warning between accept on socket
          and assigning client to STDIN
        - Fix bug in Net::Server::Proto::UNIX which affected
          older perls (<= 5.005)
        - Allow failed attempt to change user to continue with
          warning if not root.
        - Add parent/child communication code to PreFork.pm based of
          code submitted by Vadim.  Allows children to speak to parent.
        - Improved accounting of child processes in PreFork.
        - Add spec file for rpm.

0.82  Jan 29 16:20 2002
        - Add changes pointed out by Vadim to make sure
          that SSL client handle is blessed into correct class.

0.81  Nov 19 12:39 2001
        - Fix Net::Server::Fork - Bug in forking server
          once parent has reached max_servers caused.
          slow infinite loop and no processing of connections.
        - Some perldoc cleanups
        - Don't require IO::Multiplex for base test.

0.80  Nov 14 09:30 2001
        - Fix Net::Server::Multiplex::MUX::mux_eof
          to pass a ref to the remaining data.

0.79  Oct 23 12:00 2001
        - Added Net::Server::Multiplex
        - NOTE: IO::Multiplex >= 1.01 is required
          to use this personality.

0.78  Sep 28 9:13
        - Added post_child_cleanup_hook to server_close
        - Moved pre_server_close_hook inside server_close
        - Various small cleanups
        - Added no_close_by_child flag (see perldoc)

0.77  Aug 27 10:00
        - Added dequeuing ability to Fork mode server.
        - All Fork and PreFork modes now have dequeue ability.

0.76  Aug 24 11:16
        - Added Net::Server::PreForkSimple
                - Simpler PreFork server that only attempts to
                  maintain a constant number of child servers.
                - Changed Net::Server::PreFork to subclass
                  off of Net::Server::PreForkSimple.  No
                  functional changes.
                - Fixed a bug in Net::Server::Daemonize::set_user.
                - Fixed syntax bug on 5.005_03 in Proto's

0.75  Aug 23 10:49
        - Both Net::Server::Fork and Net::Server::PreFork are
                using safe signals via Net::Server::SIG.
        - Net::Server::PreFork has new child managment model.
                NOTE: spare_servers is no longer used.  It
                has been replaced by min_spare_servers and
                max_spare_servers.  This is a major change.
                The server will die if these parameters are
                not properly set.
                - operates better under high loads
                - provides better clean up of waiting servers.
                - more configurable.
                - Read the perldoc for updates.
        - Net::Server::Fork and Net::Server::PreFork HUP
                properly again.
        - t/Server_PreFork.t and t/Server_Fork.t execute
                properly.
        - Fix in Multiport accept with signals.
        - Updated perldocs

0.73  Aug 21 17:06
        - Net::Server::PreFork is on safe signals.

0.72  Aug 21 16:22 2001
        - Beginning work on Safe signals
        - Net::Server::Fork is on safe signals.
        - Added Net::Server::SIG
        - Added examples/sigtest.pl

0.71  Aug 17 15:51 2001
        - Die on failed change to another user or group.
            WARNING: No longer defaults to nobody.nobody.
            Defaults to currently running user and group.
        - Various cleanups with file removal.
        - All files to be removed are now chowned.

0.70  Aug 17 10:34 2001

        - Added support for different protocols to Net::Server.
            This implemented via Net::Server::Proto and its classes.
            Included Net::Server::Proto::TCP,
                Net::Server::Proto::UDP,
                Net::Server::Proto::UNIX,
                and experimental Net::Server::Proto::SSL.
            TCP, UDP, and UNIX are fully tested.

        - Added Net::Server::Daemonize.
        - Allows for modular daemonization/forking routines.

        - Allowed for configure to be called multiple times.
            Configure method can be called at later times during
            server startup.  Arguments are cached.  This allows
            new protocols to add arguments without modification
            to Net::Server base class.

        - Updated perldocs.
            No more protocol specific information in central perldoc.
            More information on new protocol layout.

        - Added t/UNIX_test.t
        - Added examples/connection_test.pl

        - UNIX, UDP, and TCP types are fully operational.
            Server can bind to all three types.
            Properties are determined according to type.
            Server can HUP on all three types.

        - SSL type added, but experimental (read "extremely alpha")

0.65  Jul 05 22:01 2001
        - Modified test suite to no longer depend upon
                hard coded ports.  Improves test reliability
                on systems where reuse on a socket is not
                reliable itself.

0.64  Jul 03 21:21 2001
        - Allow fall back to main run method at server close
        - Clean up signal processing in PreFork server
        - Clean up child management in PreFork server
        - Added run_dequeue and dequeue methods to the
                PreFork server (intended to allow for
                management of items such as mail queues)

0.63  May 07 22:39 2001
        - Updated UDP parameter names.  Names are now
                udp_recv_len (previously udp_packet_size)
                and udp_recv_flags (previously udp_packet_offset).
        - Updated udp_server.pl to use new names.

0.62  May 01 00:44 2001
        - Updated to use getsockopt (determine proto on the fly)
        - Updated perldoc.
        - Added udp_server.pl example.
        - Added UDP_test.t for "make test".
        - Allow customization of udp recv parameters.

0.61  Apr 30 06:32 2001
        - Sig HUP with UDP now works.
        - Peer info is correctly accessed under UDP
        - Net::Server::INET will not allow one server
                to do both tcp and udp without special
                parameters being passed to the server.
        - Need to make test program for UDP.

0.60  Apr 28 01:56 2001
        - Added support for UDP.  Can now simultaneously accept
                 TCP and UDP.
                Still to do:
                    - allow for SIG HUP under UDP
                    - better determination of peerinfo under UDP
                    - clean up inetd mode.
        - Added restart_close_hook.
        - Added restart_open_hook.
        - Added more documentation (socket access, restarting,
                protocols)

0.59  Apr 24 07:40 2001
        - Forced STDIN,STDOUT,and STDERR to reopen to /dev/null
                if setsid or log_file is set.
                This allows for true daemonization (so
                no output ends up at the terminal).
        - Made appropriate changes in MultiType as well.

0.58  Apr 06 12:29 2001
        - SIG HUP is complete.  Fixed bug in SIG HUP'ing
                PreFork mode.  Now effectively restarts.
        - Various clean ups in code.
        - More unification of code.

0.57  Mar 29 01:36 2001
        - SIG HUP is now functional on multiport mode under
                Single and Fork Mode.  No functionality is
                lost under PreFork, but HUP'ing results in
                seg fault.
        - Various bug fixes.

0.56  Mar 20 12:34 2001
        - Catch SIG pipes
        - Clean up of existing signal handling.
        - Trim memory in PreFork

0.55  Mar 19 10:44 2001
        - Allow overwrite of pid file - safe as other user.
        - More unified Signal handling, removal of duplicate code.
        - Allow Fork Server to shutdown the socket immediately
                after client accept to allow parent to HUP more
                 easily.
        - Check to see if parent process is still around in PreFork
                Server.  (Don't keep running if parent was
                 "kill 9"ed.)
        - Save commandline parameters in preparation for HUP

0.54  Mar 16 12:47 2001
        - Better handling of sigs in prefork
        - Improved logic on child coordination routine
        - Added parent_read_hook
        - Added httpd example
        - Added LoadTester.pl example

0.53  Mar 14 01:13 2001
        - Allow host to be set to '*'
                Allows for the server to bind to port whatever
                on all addresses at that box.
        - Make passing of host and proto on command line
                taint clean.
        - Added setsid functionality.
        - Added syslog_facility option - default is daemon.
        - Changed Fork and PreFork to handle $SIG{CHLD} in
                a more reliable fashion.
        - Added parent_read_hook

0.52  Mar 13 01:16 2001
        - Added syslog ability.
                This allows for logging to syslog instead
                of STDERR or a log file.  Logging still
                takes place via $self->log() but is configurable
                at startup.
        - Standardized existing log numbers to match syslog levels.

0.51  Mar 10 16:35 2001
        - Added piped serialization option.
                This allows for serialization to be done on
                a wider range of machines.  Flock is more
                bulletproof, but pipe is more portable.
                See the Net::Server::PreFork manpage.

0.50  Mar 10 10:06 2001
        - Added serialize option to PreFork.
                This allows for serialization to be turned on
                even on non_multi port process - this is
                done to get around some OS's which don't
                allow children to accept on the same socket
                at the same time.
        - Added semaphore type to the serialize option
                This type uses IPC::Semaphore instead of flock
                to serialize the child accept sequence.
                Thanks to Bennett Todd for sample code.

0.48  Mar 08 23:57 2001
        - Catch $SIG{INT}, $SIG{TERM} and $SIG{QUIT} in PreFork and Fork.
                This allows parent to shutdown children properly.
        - Catch $SIG{HUP} (currently shuts down server, needs to
                be able to restart server re-reading conf file)
        - Changed pid_file creation to after chroot, change of group
                and change of user - making sure the server has
                permission to write out the pid file.
        - Remove use of "use subs" in PreFork.

0.47  Mar 08 07:03 2001
        - Fix reverse lookup bug - thanks to Jonathan J. Miner for
          pointing out the missing pieces.
        - Cleaned up pod examples
        - Clarified some of the pod

0.46  Mar 05 07:37 2001
	- secure removal of pid_file - only happens on success -
                possibly should only happen after process has become
                another user
        - secure removal of lock_file - only happens if we generated it
        - added child_init_hook and child_finish_hook to PreFork
        - changed pre_configure_hook to configure_hook
        - added simple httpd example script

0.45  Mar 02 00:44 2001
	- clean up make process.
        - change version to hard coded number.
        - improve testing scripts

0.44  Mar 01 00:55 2001
	- partitioned properties in single hashref value.
        - changed versioning system to use cvs revision.
        - general clean up and add documentation.

0.43  Feb 28 01:08 2001
	- this revision and last add bulk of documentation.
        -various clean ups

0.4.1  Feb 26 17:48 2001
        - first build.  Up to this point many revisions, bug fixes
                and optimizations had been made.

0.1.0  Feb 08 06:28 2001
        - first cvs check in.  Up to this point, much thought and
                research had gone into the server.

