2001-09-14  Alexandre Cassen  <acassen@linux-vs.org>

	* keepalived-0.4.1 released.
	* Added support to LVS kernel 2.4 code


2001-08-23  Alexandre Cassen  <acassen@linux-vs.org>

	* keepalived-0.4.0 released.
	* Patch a race condition into the scheduler timer computation.
	* Patch a race condition into the tcp checker thread. Only
	  register next timer thread if tcp connection is not in progress.
	* Patch a race condition into the http checker thread. Handle
	  empty buffer returned from remote http server.
	* Patch a race condition into the dumping configuration process.
	  A simple dereferencing pointer value...oops...
	* Eric Jarman, <ehj38230@cmsu2.cmsu.edu> added MISC CHECKER.
	  It Perform a system call to run an extra system or script.
	  => security auditing needed for system call,
	  buffer overflow over script path must be handled.

	* Added VRRP support using our scheduling I/O multiplexer.
	  VRRP implementation support to IPSEC-AH using HMAC-96bits digest
	  with anti-replay. rfc2402 & rfc2104.
	* Added routing table fetcher. We ignore route when it is a
	  cloned route from other router, learn by an ICMP redirect
	  or set by kernel. Only UNICAST route are stored.
	* Added dropping packet support.


2001-07-15  Alexandre Cassen  <acassen@linux-vs.org>

	* keepalived-0.3.5 released.
        * Rewrite the whole signal handling, registering a terminating
          thread on signal.
        * Move logsystem to syslog using facility LOG_INFO & LOG_DEBUG.
        * Added a daemonization function imported from zebra.
        * Rewrite the pidfile handling, check if daemon is running, if not
          remove eventual stalled pidfile and create new pidfile.
        * Added a strong scheduling framework based on an I/O multiplexer
          to handle asynchronous process. This code is imported from zebra
          and have been enhanced for keepalived purposes.

          Thread types are :
          . timeouted read on fd.
          . timeouted write on fd.
          . timer.
          . event.
          . terminate event.

          => The zebra framework have been enhanced to add support for timeouted
             read/write fds.

          => With this framework keepalived use a Boss/Worker thread model design,
             fetching ready thread from a master threading queues.

        * Rewrite the configuration file reader to add flexibility on extending.
          The dynamic data structure has been rewritten to use apropriate types.
          Right now parsing framework is ready for easy new checker structures
          integration.
        * Rewrite the smtp connector. The implementation take advantage of the
          I/O multiplexer. All read/write operations from/to the remote smtp server
          are done asynchronously. The implementation is rfc 821 compliant (multiple
          receiver are handled by a multiple RCPT TO command as specified in rfc821.3.1).
        * Rewrite the IPFW & IPVS wrappers.
        * Added support for NAT mask on IP MASQ rules (keyword nat_mask in configuration
          file). Added support for sorry server facility, so when all the server from a 
          VS server pool are removed, a sorry server is automaticaly added to the VS pool 
          (typically this is used when you have a spare server online).
        * Rewrite the previous checkers. Checkers are now based on a hierarchic layer
          stack framework. The protocol implemented for the moment is TCP. All layer 5
          checkers are using layer4.c primitives with the same design :

          . a checker connector thread (creating the socket) registering the connection
            checker thread.
          . a connection checker thread testing connection states (error, in_progress,
            timeout, success). When connection success upper level thread are registered
            to handle checks.
        * Delay loop is now checkers specifics since we can use a multithreaded framework.
        * Update the PDF documentation file.
