   _        ___  ____ ____  ____
  |_|_ _   / _ \/ ___/ ___||  _ \   ___  __ _
  _|_||_| | | | \___ \___ \| |_) | / __|/ _` |
 |_||_|_| | |_| |___) |__) |  __/  \__ \ (_| |
  |_|_|_|  \___/|____/____/|_|     |___/\__,_|

  OSSP sa - Socket Abstraction

  CHANGELOG

  This is a list of all changes to OSSP sa.
  For a more brief summary please have a look at the NEWS file.

  Changes between 1.1.0 and 1.2.0 (10-Nov-2003 to 02-Apr-2004)

   o In sa_connect() also select(2) on the socket if EINTR was
     returned similar to what is done already for EINPROGRESS, because
     one is not allowed to re-start connect(2) according to STEVENS
     (Unix Network Programming, volume 1, section 5.9) but instead have
     to perform the same post-processing under EINTR (under both timeout
     and non-timeout situations) what we already did for EINPROGRESS (in
     timeout-aware situation).
     [Ralf S. Engelschall]

   o Adjusted all copyright messages for new year 2004.
     [Ralf S. Engelschall]

   o Restart accept(2) after interrupted system call.
     OSSP lmtp2nntp daemon failed to accept a connection after a signal
     handler was run on Solaris which caused the system call to be
     interrupted. Issue was found and reported by Amos Gouaux.
     [Thomas Lotterer <thl@dev.de.cw.net>]

   o Add SA_CHECK_SOCKOPT autoconf check to detect setsockopt failing
     under run-time on Solaris 2.6,8,9,10 and Debian 2.2 because
     SO_RCVTIMEO|SO_SNDTIMEO are defined but not implemented.
     Issue was found and reported by Amos Gouaux.
     [Thomas Lotterer <thl@dev.de.cw.net>, Amos Gouaux <amos@utdallas.edu>]

   o Upgrade and unify build environment devtool and devtool.func.
     Change devtool.conf to require current versions of
     shtool, libtool and autoconf; correct spelling
     [Thomas Lotterer <thl@dev.de.cw.net>]

  Changes between 1.0.5 and 1.1.0 (31-Jan-2003 to 10-Nov-2003)
   
   o Upgrade build environment to GNU autoconf 2.58.
     [Ralf S. Engelschall <rse@engelschall.com>]

   o Upgrade build environment to GNU libtool 1.5.
     [Ralf S. Engelschall <rse@engelschall.com>]

   o Fix memory leak in test suite (sa_test.c).
     [Ralf S. Engelschall <rse@engelschall.com>]

   o Added internal address resolving support via the new IEEE Std
     1003.1g-2000 ("POSIX.1") getaddrinfo(3) API. This especially
     provides more portable IPv6 address resolving.
     [Ralf S. Engelschall <rse@engelschall.com>]

  Changes between 1.0.4 and 1.0.5 (28-Jan-2003 to 31-Jan-2003)

   o Fixed test suite library (ts.c): the ts_suite_free()
     function performed an illegal iteration for freeing elements (they
     were freed but still references for traversing to next element).
     This is now solved by a look-ahead traversion.
     [Ralf S. Engelschall, Brian T. Egleston <brian@egleston.com>]

   o Fixed test suite (sa_test.c): an sa_addr_t was destroyed
     too early and this way crashed the test suite.
     [Brian T. Egleston <brian@egleston.com>]

  Changes between 1.0.3 and 1.0.4 (06-Jan-2003 to 28-Jan-2003)

   o Fixed embedding support: mappings for symbols sa_sendf and sa_id
     were missing.
     [Thomas Lotterer <thl@dev.de.cw.net>]

  Changes between 1.0.2 and 1.0.3 (04-Dec-2002 to 06-Jan-2003)

   o Adjusted all copyright messages for new year 2003.
     [Ralf S. Engelschall]

   o Fixed generated owner in distribution tarball.
     [Ralf S. Engelschall]

   o Fixed two compile-time warnings in sa_test.c.
     [Ralf S. Engelschall]

  Changes between 1.0.1 and 1.0.2 (07-Nov-2002 to 04-Dec-2002)

   o Fixed a few bugs and lots of internal type inconsistencies,
     all found by splint(1).
     [Ralf S. Engelschall]

   o Upgraded build environment to GNU autoconf 2.57.
     [Ralf S. Engelschall]

  Changes between 1.0.0 and 1.0.1 (01-Nov-2002 to 07-Nov-2002)

   o Make sure that "va_list" variables are not compared against NULL
     because this is not possible on all platforms.
     [Ralf S. Engelschall]

   o Ported to brain-dead OpenUNIX where shutdown(3)'s SHUT_XX values
     are not easily available and where variables named sa_len conflict
     with structure fields in vendor headers.
     [Ralf S. Engelschall]

   o Fixed two compile-time warnings.
     [Alvaro Lopez Ortega <alvaro@alobbs.com>]

   o Upgraded build environment to GNU shtool 1.6.2
     [Ralf S. Engelschall]

  Changes between 0.9.3 and 1.0.0 (30-Oct-2002 to 01-Nov-2002)
   
   o Consistently return SA_ERR_MEM instead of SA_ERR_SYS
     if memory allocations failed.
     [Ralf S. Engelschall]

   o Various source tree cleanups.
     [Ralf S. Engelschall]

   o Cleanup markup in manual page (sa.pod)
     [Ralf S. Engelschall]

   o API Cleanups: use politically correct use "extern" keyword in sa.h;
     use leading underscores for variables names in prototypes; move
     "raddr" argument to second position in sa_{send,recv,sendf}.
     [Ralf S. Engelschall]

  Changes between 0.9.2 and 0.9.3 (11-Oct-2002 to 30-Oct-2002)

   o Added a function sa_sendf(3) which is a convience wrapper
     to sa_send(3) for sending formatted data. This is similar to what
     sa_writef(3) does for sa_write(3). The difference is just that
     sa_writef(3) does not need a temporary buffer (because can use the
     stream I/O write buffer) while sa_sendf(3) requires a temporary
     buffer for its operation. Nevertheless the temporary buffer is
     allocated only if the formatted data is large. For small formatted
     data a fast stack-based buffer is used for higher performance.
     [Ralf S. Engelschall]

   o Finished implementation of test suite in order to cover
     mostly all functionality of the API.
     [Ralf S. Engelschall]

   o Rewrote the implementation of sa_option(3) in order to make options
     configurable _before_ the underlying socket is implicitly
     allocated. This fixes especially sa_option(sa, SA_OPTION_REUSEADDR, 1)
     before sa_bind().
     [Ralf S. Engelschall, Michael van Elst <mlelstv@dev.de.cw.net>]

   o Finished writing the documentation (manual page sa.pod).
     [Ralf S. Engelschall]

   o Fixed return code and error handling in sa_read(3).
     [Ulrich Dessauer <udessauer@agnitas.de>]

   o Upgraded build environment to GNU autoconf 2.54 and GNU libtool 1.4.3.
     [Ralf S. Engelschall]

   o Source tree cleanups and polishing.
     [Ralf S. Engelschall]

  Changes between 0.9.1 and 0.9.2 (15-Mar-2002 to 11-Oct-2002)

   o Check for inet_addr, inet_aton, inet_pton, inet_ntoa and inet_ntop
     under configure time and use this to use reasonable fallbacks for
     the underlying usage of address manipulation functions.
     [Ralf S. Engelschall]

   o Upgraded build environment to GNU shtool 1.6.1.
     [Ralf S. Engelschall]

   o Fixed "make realclean" target.
     [Ralf S. Engelschall]

  Changes between 0.9.0 and 0.9.1 (31-Jan-2002 to 15-Mar-2002)

   o Removed gcc -ggdb3 option under --enable-debug.
     [Ralf S. Engelschall]

   o Upgraded build environment to GNU autoconf 2.53 and GNU shtool 1.6.0.
     [Ralf S. Engelschall]

   o Fixed internal snprintf implementation
     [Ralf S. Engelschall]

   o Fixed internal test suite library
     [Ralf S. Engelschall]

