Serf 0.7.0 [2010-08-25, r1407]
  Fix double free abort when destroying request buckets.
  Fix test server in unit test framework to avoid random test failures.
  Allow older Serf programs which don't use the new authn framework to still
    handle authn without forcing them to switch to the new framework. (r1401)
  Remove the SERF_DECLARE macros, preferring a .DEF file for Windows
  Barrier buckets now pass read_iovec to their wrapped bucket.
  Fix HTTP header parsing to allow for empty header values.


Serf 0.6.1 [2010-05-14, r1370]
  Generally: this release fixes problems with the 0.4.0 packaging.
  Small compilation fix in outgoing.c for Windows builds.


Serf 0.6.0 [2010-05-14, r1363]
  Not released.


Serf 0.5.0
  Not released.


Serf 0.4.0 [2010-05-13, r1353]
  [NOTE: this release misstated itself as 0.5.0; use a later release instead]

  Provide authn framework, supporting Basic, Digest, Kerberos (SSPI, GSS),
    along with proxy authn using Basic or Digest
  Added experimental listener framework, along with test_server.c
  Improvements and fixes to SSL support, including connection setup changes
  Experimental support for unrequested, arriving ("async") responses
  Experimental BWTP support using the async arrival feature
  Headers are combined on read (not write), to ease certian classes of parsing
  Experimental feature on aggregate buckets for a callback-on-empty
  Fix the bucket allocator for when APR is using its pool debugging features
  Proxy support in the serf_get testing utility
  Fix to include the port number in the Host header
  serf_get propagates errors from the response, instead of aborting (Issue 52)
  Added serf_lib_version() for runtime version tests


Serf 0.3.1 [2010-02-14, r1320]
  Fix loss of error on request->setup() callback. (Issue 47)
  Support APR 2.x. (Issue 48)
  Fixed slowdown in aggregate bucket with millions of child buckets.
  Avoid hang in apr_pollset_poll() by unclosed connections after fork().


Serf 0.3.0 [2009-01-26, r1216]
  Support LTFLAGS override as a config-time env. variable (Issue 44)
  Fix CUTest test harness compilation on Solaris (Issue 43)
  Fix small race condition in OpenSSL initialization (Issue 39)
  Handle content streams larger than 4GB on 32-bit OSes (Issue 41)
  Fix test_ssl.c compilation with mingw+msys.
  Fix conn close segfault by explicitly closing conn when pool is destroyed.
  Expose the depth of the SSL certificate so the validator can use that info.
  Fix socket address family issue when opening a connection to a proxy.
  Provide new API to take snapshots of buckets.
  Implement snapshot API for simple and aggregate buckets.
  Build with bundled apr and apr-util VPATH builds.
  Build with bundled OpenSSL builds.


Serf 0.2.0 [2008-06-06, r1188]
  Enable use of external event loop: serf_create_context_ex.
  Enable adding new requests at the beginning of the request queue.
  Handle 'Connection:close' headers.
  Enable limiting the number of outstanding requests.
  Add readline function to simple buckets.
  Concatenate repeated headers using comma as separator, as per RFC 2616,
   section 4.2. (Issue 29)
  Add proxy server support.
  Add progress feedback support. (Issue 11)
  Provide new API to simplify use of proxy and progress feedback support.
  Add callback to validate SSL server certificates. (Issue 31)
  Add new test framework.
  Send current version string in the test programs (Issue 21)
  Bugfixes:
     Fix segfault with epoll when removing a NULL socket.
     Reset OpenSSL thread-safety callbacks when apr_terminate() called.
     Do not remove the socket from the pollset on pool cleanup.
     Do not issue double close on skt w/second one being close(-1) (Issue 33)


Serf 0.1.2 [2007-6-18, r1114]
  Enable thread-safety with OpenSSL (Issue 19)
  Teach serfmake to install headers into include/serf-0.
  Be more tolerant when servers close the connection without telling us.
  Do not open the connection until we have requests to deliver.
  Fix serfmake to produce the library that corresponds to the minor version.
  Fix a memory leak with the socket bucket (Issue 14)
  Fix uninitialized branch in serf_spider (Issue 15)


Serf 0.1.1 [2007-5-12, r1105]
  Add SSL client certificate support
  Implement optimized iovec reads for header buckets
  Fix up 'make clean' and 'make distclean' (Issues 9, 10)
  Add SERF_VERSION_AT_LEAST macro
  Remove abort() calls (Issue 13)


Serf 0.1.0 [2006-12-14, r1087]
  Initial Packaged Release
