Curl and libcurl 7.20.0

 Public curl releases:         114
 Command line options:         136
 curl_easy_setopt() options:   174
 Public functions in libcurl:  58
 Known libcurl bindings:       39
 Contributors:                 761

This release includes the following changes:

 o support SSL_FILETYPE_ENGINE for client certificate
 o curl-config can now show the arguments used when building curl
 o non-blocking TFTP
 o send Expect: 100-continue for POSTs with unknown sizes
 o added support for IMAP(S), POP3(S), SMTP(S) and RTSP
 o added new curl_easy_setopt() options for SMTP and RTSP
 o added --mail-from and --mail-rcpt for SMTP
 o VMS build system enhancements
 o added support for the PRET ftp command
 o curl supports --ssl and --ssl-reqd
 o added -J/--remote-header-name for using server-provided filename with -O
 o enhanced asynchronous DNS lookups
 o symbol CURL_FORMAT_OFF_T is obsoleted

This release includes the following bugfixes:

 o progress meter percentage and transfer time estimates fixes
 o portability enhancement for OS's without orthogonal directory tree structure
 o progress meter/callback during FTP connection
 o DNS cache timeout while transfer in progress
 o compilation when configured --with-gssapi having GNU GSS installed
 o SSL connection reused with mismatched protection level
 o configure --with-nss is set but not "yes"
 o don't store LDFLAGS in pkg-config file
 o never-pruned DNS cached entries
 o HTTP proxy tunnel re-used connection even if tunnel got disabled
 o SSL lib post-close write
 o curl failed to report write errors for tiny failed downloads
 o TFTP BLKSIZE
 o Expect: 100-continue handling when set by the application
 o multi interface with OpenSSL read already freed memory when closing down
 o --retry didn't do right for FTP transient errors
 o some *_proxy environment variables didn't function
 o libcurl-OpenSSL engine cleanup
 o header include fix for FreeBSD versions before v8
 o fragment part of URLs are no longer sent to the server
 o progress callback called repeatedly with c-ares for resolving
 o OpenSSL session id ref count leak
 o progress callback called repeatedly during slow connects
 o curl_multi_fdset() would return -1 too often during SCP/SFTP transfers
 o FTP file size checks with ASCII transfers
 o HTTP Cookie: headers sort cookies based on specified path lengths
 o CURLM_CALL_MULTI_PERFORM fix for multi socket timeout calls
 o libcurl data callback excessive length:
   http://curl.haxx.se/docs/adv_20100209.html

This release includes the following known bugs:

 o see docs/KNOWN_BUGS (http://curl.haxx.se/docs/knownbugs.html)

This release would not have looked like this without help, code, reports and
advice from friends like these:

 Yang Tse, Kamil Dudka, Christian Schmitz, Constantine Sapuntzakis,
 Marco Maggi, Camille Moncelier, Claes Jakobsson, Kevin Baughman,
 Marc Kleine-Budde, Jad Chamcham, Bjorn Augustsson, David Byron,
 Markus Koetter, Chad Monroe, Martin Storsjo, Siegfried Gyuricsko,
 Jon Nelson, Julien Chaffraix, Renato Botelho, Peter Pentchev, Ingmar Runge,
 Johan van Selst, Charles Kerr, Gil Weber, David McCreedy, Chris Conroy,
 Bjorn Stenberg, Mike Crowe, Joshua Kwan, Daniel Fandrich, Wesley Miaw

        Thanks! (and sorry if I forgot to mention someone)
