Serf 0.4.0 [2010-05-13, r1353]
  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
