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
