Moved all changes from 2007 from CHANGES to CHANGES.0
authorDaniel Stenberg <daniel@haxx.se>
Fri, 6 Jun 2008 22:11:24 +0000 (22:11 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 6 Jun 2008 22:11:24 +0000 (22:11 +0000)
CHANGES
CHANGES.0

diff --git a/CHANGES b/CHANGES
index 5efd5df..b6ec8ae 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -463,7 +463,7 @@ Yang Tse (10 Feb 2008)
   description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded
   name resolver builds. Fixed now.
 
-Daniel Fandrich (8 Feb 2007)
+Daniel Fandrich (8 Feb 2008)
 - Added key words to all SSL-using tests so they can be skipped if necessary.
   Removed a few unnecessary requires SSL statements.
 
@@ -484,7 +484,7 @@ Daniel S (8 Feb 2008)
   creates a suitable ca-bundle.crt file in PEM format for use with curl. The
   recommended way to run it is to use 'make ca-bundle' in the build tree root.
 
-Daniel Fandrich (7 Feb 2007)
+Daniel Fandrich (7 Feb 2008)
 - Added tests 1022 and 1023 to validate output of curl-config --version and
   --vernum
 
@@ -707,1606 +707,3 @@ Daniel S (1 Jan 2008)
   function but without a return statement. While fixing that, I also took care
   about adding some better comments for the generated code.
 
-Daniel S (27 Dec 2007)
-- Dmitry Kurochkin mentioned a flaw
-  (http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which
-  failed to set the bits.proxy variable properly when an environment variable
-  told libcurl to use a http proxy.
-
-Daniel S (26 Dec 2007)
-- In an attempt to repeat the problem in bug report #1850730
-  (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The
-  test is doing a 70K POST with a read callback and an ioctl callback over a
-  proxy requiring Digest auth. The test case code is more or less identical to
-  the test recipe code provided by Spacen Jasset (who submitted the bug
-  report).
-
-Daniel S (25 Dec 2007)
-- Gary Maxwell filed bug report #1856628
-  (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the
-  (small) memory leak in the SSL session ID caching code. It happened when a
-  previous entry in the cache was re-used.
-
-Daniel Fandrich (19 Dec 2007)
-- Ensure that nroff doesn't put anything but ASCII characters into the
-  --manual text.
-
-Yang Tse (18 Dec 2007)
-- MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP,
-  and makes wrong asumptions of build target when it isn't specified. So,
-  if no build target has been defined we will target WinXP when building
-  curl/libcurl with MSVC 9.0 (VS2008).
-
-- (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed
-  a file truncation problem on Windows build targets triggered when retrying
-  a download with curl.
-
-Daniel S (17 Dec 2007)
-- Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and
-  defines in winsock2.h somehow differently than previous versions and that
-  curl 7.17.1 would fail to compile out of the box.
-
-Daniel S (13 Dec 2007)
-- David Wright filed bug report #1849764
-  (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He
-  identified a problem for re-used connections that previously had sent
-  Expect: 100-continue and in some situations the subsequent POST (that didn't
-  use Expect:) still had the internal flag set for its use. David's fix (that
-  makes the setting of the flag in every single request unconditionally) is
-  fine and is now used!
-
-Daniel S (12 Dec 2007)
-- Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and
-  added the --no-keep-alive option that can disable that on demand.
-
-Daniel S (9 Dec 2007)
-- Andrew Moise filed bug report #1847501
-  (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy()
-  that should be memmove() in the convert_lineends() function.
-
-Daniel S (8 Dec 2007)
-- Renamed all internal static functions that had Curl_ prefixes to no longer
-  have them. The Curl_ prefix is exclusively used for library internal global
-  symbols. Static functions can be named anything, except for using Curl_ or
-  curl_ prefixes. This is for consistency and for easier maintainance and
-  overview.
-
-- Cleaned up and reformatted the TODO document to look like the FAQ and
-  CONTRIBUTE, which makes nicer web pages
-
-- Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE.
-
-- Added keywords on a bunch of test cases
-
-- Fixed an OOM problem in the curl code that would lead to fclose on a bad
-  handle and crash
-
-Daniel S (5 Dec 2007)
-- Spacen Jasset reported a problem with doing POST (with data read with a
-  callback) over a proxy when NTLM is used as auth with the proxy. The bug
-  also concerned Digest and was limited to using callback only. Spacen worked
-  with us to provide a useful patch. I added the test case 547 and 548 to
-  verify two variations of POST over proxy with NTLM.
-
-Daniel S (3 Dec 2007)
-- Ray Pekowski filed bug report #1842029
-  (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a
-  problem with SSL session caching that prevent it from working, and provided
-  the associated fix!
-
-- Now libcurl (built with OpenSSL) doesn't return error anymore if the remote
-  SSL-based server doesn't present a certificate when the request is told to
-  ignore certificate verification anyway.
-
-- Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
-  the appending of the "type=" thing on FTP URLs when they are passed to a
-  HTTP proxy. Some proxies just don't like that appending (which is done
-  unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
-  better with the appending done!
-
-Daniel S (29 Nov 2007)
-- A bug report on the curl-library list showed a HTTP Digest session going on
-  with a 700+ letter nonce. Previously libcurl only support 127 letter ones
-  and now I bumped it to 1023.
-
-- Fixed the resumed FTP upload loop to not require that the read callback
-  returns a full buffer on each invoke.
-
-Daniel S (25 Nov 2007)
-- Added test case 1015 that tests --data-urlencode in multiple ways
-
-- Fixed --data-urlencode for when no @ or = are used
-
-- Extended the user-agent buffer curl uses, since we can hit the 128 byte
-  border with plenty development libraries used. Like my current set: "curl
-  7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g
-  zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS"
-
-Daniel S (24 Nov 2007)
-- Internal rearrangements, so that the previous struct HandleData is no more.
-  It is now known as SingleRequest and the Curl_transfer_keeper struct within
-  that was remove entirely. This has the upside that there are less duplicate
-  struct members that made it hard to see and remember what struct that was
-  used to store what data. The transfer_keeper thing was once stored on a
-  per-connection basis and then it made sense to have the duplicate info but
-  since it was moved to the SessionHandle (in 7.16.0) it just added weirdness.
-  The SingleRequest struct is used by data that only is valid for this single
-  request.
-
-Yang Tse (22 Nov 2007)
-- Provide a socklen_t definition in curl.h for Win32 API build targets
-  which don't have one.
-
-Daniel S (22 Nov 2007)
-- Alessandro Vesely helped me improve the --data-urlencode's syntax, parser
-  and documentation.
-
-Daniel S (21 Nov 2007)
-- While inspecting the Negotiate code, I noticed how the proxy auth was using
-  the same state struct as the host auth, so both could never be used at the
-  same time! I fixed it (without being able to check) to use two separate
-  structs to allow authentication using Negotiate on host and proxy
-  simultaneously.
-
-Daniel S (20 Nov 2007)
-- Emil Romanus pointed out a bug that made an easy handle get the cookie
-  engine activated when set to use a share (even if the share doesn't share
-  cookies). I fixed it.
-
-- Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s",
-  since the second %s would then wrongly used the numerical precision argument
-  instead and crash.
-
-- Introduced --data-urlencode to the curl tool for easier url encoding of the
-  data sent in a post.
-
-Daniel S (18 Nov 2007)
-- Rob Crittenden fixed SSL connections with NSS done with the multi-interface
-
-Daniel S (17 Nov 2007)
-- Michal Marek made the test suite remember what test servers that fail to
-  start so that subsequent tries are simply skipped.
-
-- Andres Garcia made the examples build fine on Windows (mingw + msys) when
-  the lib was built staticly.
-
-Daniel S (16 Nov 2007)
-- Ates Goral identified a problem in http.c:add_buffer_send() when a debug
-  callback was used, as it could wrongly pass on a bad size for the outgoing
-  HTTP header. The bad size would be a very large value as it was a wrapped
-  size_t content. This happened when the whole HTTP request failed to get sent
-  in one single send.  http://curl.haxx.se/mail/lib-2007-11/0165.html
-
-Daniel S (15 Nov 2007)
-- Fixed yet another remaining problem with doing SFTP directory listings on a
-  re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing
-  list.
-
-- Michal Marek fixed the test suite to better deal with the case when the HTTP
-  ipv6 server can't run.
-
-Yang Tse (14 Nov 2007)
-- Fix a variable potential wrapping in add_buffer() when using absolutely
-  huge send buffer sizes.
-
-Daniel S (13 Nov 2007)
-- Fixed a remaining problem with doing SFTP directory listings on a re-used
-  persistent connection. Mentioned by Immanuel Gregoire on the mailing list.
-
-Daniel S (12 Nov 2007)
-- Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was
-  forwarded from the Gentoo bug tracker by Daniel Black and was originally
-  submitted by Robin Johnson, pointed out that libcurl would do bad memory
-  references when it failed and bailed out before the handler thing was
-  setup. My fix is not done like the provided patch does it, but instead I
-  make sure that there's never any chance for a NULL pointer in that struct
-  member.
-
-Yang Tse (10 Nov 2007)
-- Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out
-  that the pollfd struct was being multi defined when using VS2008. This is
-  now fixed in /curl/lib/select.h
-
-Daniel S (8 Nov 2007)
-- Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed
-  out that SFTP requests didn't use persistent connections. Neither did SCP
-  ones.  I gave the SSH code a good beating and now both SCP and SFTP should
-  use persistent connections fine. I also did a bunch of indent changes as
-  well as a bug fix for the "keyboard interactive" auth.
-
-Dan F (6 Nov 2007)
-- Improved telnet support by drastically reducing the number of write
-  callbacks needed to pass a buffer to the user.  Instead one per byte it
-  is now as little as one per segment.
-
-Yang Tse (6 Nov 2007)
-- Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed
-  out a problem in curl.h when building C++ apps with MSVC. To fix it, the
-  inclusion of header files in curl.h is moved outside of the C++ extern "C"
-  linkage block.
-
-Daniel S (1 Nov 2007)
-- Toby Peterson patched a memory problem in the command line tool that
-  happened when a user had a home dir as an empty string. curl would then do
-  free() on a wrong area.
-
-Dan F (1 Nov 2007)
-- Fixed curl-config --features to not display libz when it wasn't used
-  due to a missing header file.
-
-Dan F (31 October 2007)
-- Fixed the output of curl-config --protocols which showed SCP and SFTP
-  always, except when --without-libssh2 was given
-
-- Added test cases 1013 and 1014 to check that curl-config --protocols and
-  curl-config --features matches the output of curl --version
-
-Dan F (30 October 2007)
-- Fixed an OOM problem with file: URLs
-
-- Moved Curl_file_connect into the protocol handler struct
-
-Dan F (29 October 2007)
-- Added test case 546 to check that subsequent FTP transfers work after a
-  failed one using the multi interface
-
-Daniel S (29 October 2007)
-- Based on one of those bug reports that are intercepted by a distro's bug
-  tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made
-  curl-config --features and --protocols show the correct output when built
-  with NSS.
-
-Version 7.17.1 (29 October 2007)
-
-Dan F (25 October 2007)
-- Added the --static-libs option to curl-config
-
-Daniel S (25 October 2007)
-- Made libcurl built with NSS possible to ignore the peer verification.
-  Previously it would fail if the ca bundle wasn't present, even if the code
-  ignored the verification results.
-
-Patrick M (25 October 2007)
-- Fixed test server to allow null bytes in binary posts.
-_ Added tests 35, 544 & 545 to check binary data posts, both static (in place)
-  and dynamic (copied).
-
-Daniel S (25 October 2007)
-- Michal Marek fixed the test script to be able to use valgrind even when the
-  lib is built shared with libtool.
-
-- Fixed a few memory leaks when the same easy handle is re-used to request
-  URLs with different protocols. FTP and TFTP related leaks. Caught thanks to
-  Dan F's new test cases.
-
-Dan F (24 October 2007)
-- Fixed the test FTP and TFTP servers to support the >10000 test number
-  notation
-
-- Added test cases 2000 through 2003 which test multiple protocols using the
-  same easy handle
-
-- Fixed the filecheck: make target to work outside the source tree
-
-Daniel S (24 October 2007)
-- Vladimir Lazarenko pointed out that we should do some 'mt' magic when
-  building with VC8 to get the "manifest" embedded to make fine stand-alone
-  binaries. The maketgz and the src/Makefile.vc6 files were adjusted
-  accordingly.
-
-Daniel S (23 October 2007)
-- Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out
-  that libcurl tried to re-use connections a bit too much when using non-SSL
-  protocols tunneled over a HTTP proxy.
-
-Daniel S (22 October 2007)
-- Michal Marek forwarded the bug report
-  https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to
-  FTP that caused memory havoc. His work together with my efforts created two
-  fixes:
-
-  #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with
-       at connection cleanup, at which time the struct HandleData could be
-       used by another connection.
-       Also, the unused char *urlpath member is removed from struct FTP.
-  #2 - provide a Curl_reset_reqproto() function that frees
-       data->reqdata.proto.* on connection setup if needed (that is if the
-       SessionHandle was used by a different connection).
-
-  A long-term goal is of course to somehow get rid of how the reqdata struct
-  is used, as it is too error-prone.
-- Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out
-  that specifying a proxy with a trailing slash didn't work (unless it also
-  contained a port number).
-
-Patrick M (15 October 2007)
-- Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again
-  and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode.
-
-Patrick M (12 October 2007)
-- Added per-protocol callback static tables, replacing callback ptr storage
-  in the connectdata structure by a single handler table ptr.
-
-Dan F (11 October 2007)
-- Fixed the -l option of runtests.pl
-
-- Added support for skipping tests based on key words.
-
-Daniel S (9 October 2007)
-- Michal Marek removed the no longer existing return codes from the curl.1
-  man page.
-
-Daniel S (7 October 2007)
-- Known bug #47, which confused libcurl if doing NTLM auth over a proxy with
-  a response that was larger than 16KB is now improved slightly so that now
-  the restriction at 16KB is for the headers only and it should be a rare
-  situation where the response-headers exceed 16KB. Thus, I consider #47 fixed
-  and the header limitation is now known as known bug #48.
-
-Daniel S (5 October 2007)
-- Michael Wallner made the CULROPT_COOKIELIST option support a new magic
-  string: "FLUSH". Using that will cause libcurl to flush its cookies to the
-  CURLOPT_COOKIEJAR file.
-
-- The new file docs/libcurl/ABI describes how we view ABI breakages, soname
-  bumps and what the version number's significance to all that is.
-
-Daniel S (4 October 2007)
-- I enabled test 1009 and made the --local-port use a wide range to reduce the
-  risk of failures.
-
-- Kim Rinnewitz reported that --local-port didn't work with TFTP transfers.
-  This happened because the tftp code always uncondionally did a bind()
-  without caring if one already had been done and then it failed. I wrote a
-  test case (1009) to verify this, but it is a bit error-prone since it will
-  have to pick a fixed local port number and since the tests are run on so
-  many different hosts in different situations I'll add it in disabled state.
-
-Yang Tse (3 October 2007)
-- Fixed issue related with the use of ares_timeout() result.
-
-Daniel S (3 October 2007)
-- Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and
-  CURLOPT_OPENSOCKETDATA to set a callback that allows an application to
-  replace the socket() call used by libcurl. It basically allows the app to
-  change address, protocol or whatever of the socket.
-
-- I renamed the CURLE_SSL_PEER_CERTIFICATE error code to
-  CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made
-  this return code get used by the previous SSH MD5 fingerprint check in case
-  it fails.
-
-- Based on a patch brought by Johnny Luong, libcurl now offers
-  CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both
-  make the SCP or SFTP connection verify the remote host's md5 checksum of the
-  public key before doing a connect, to reduce the risk of a man-in-the-middle
-  attack.
-
-Daniel S (2 October 2007)
-- libcurl now handles chunked-encoded CONNECT responses
-
-Daniel S (1 October 2007)
-- Alex Fishman reported a curl_easy_escape() problem that was made the
-  function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a
-  signed / unsigned mistake in the code. I fixed it and added test case 543 to
-  verify.
-
-Daniel S (29 September 2007)
-- Immanuel Gregoire fixed a problem with persistent transfers over SFTP.
-
-Daniel S (28 September 2007)
-- Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
-  notifier callback(s).
-
-Dan F (26 September 2007)
-- Enabled a few more gcc warnings with --enable-debug.  Renamed a few
-  variables to avoid shadowing global declarations.
-
-Daniel S (26 September 2007)
-- Philip Langdale provided the new CURLOPT_POST301 option for
-  curl_easy_setopt() that alters how libcurl functions when following
-  redirects. It makes libcurl obey the RFC2616 when a 301 response is received
-  after a non-GET request is made. Default libcurl behaviour is to change
-  method to GET in the subsequent request (like it does for response code 302
-  - because that's what many/most browsers do), but with this CURLOPT_POST301
-  option enabled it will do what the spec says and do the next request using
-  the same method again. I.e keep POST after 301. 
-
-  The curl tool got this option as --post301
-
-  Test case 1011 and 1012 were added to verify.
-
-- Max Katsev reported that when doing a libcurl FTP request with
-  CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE
-  before it does SIZE which makes it less useful. I walked over the code and
-  made it do this properly, and added test case 542 to verify it.
-
-Daniel S (24 September 2007)
-- Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle
-  URLs ending with a slash properly (it should list the contents of that
-  directory). Test case 351 brought back and also test 1010 was added.
-
-Daniel S (21 September 2007)
-- Mark Davies fixed Negotiate authentication over proxy, and also introduced
-  the --proxy-negotiate command line option to allow a user to explicitly
-  select it.
-
-Daniel S (19 September 2007)
-- Rob Crittenden provided an NSS update with the following highlights:
-
-  o It looks for the NSS database first in the environment variable SSL_DIR,
-    then in /etc/pki/nssdb, then it initializes with no database if neither of
-    those exist.
-
-  o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be
-    loaded, including the ca-bundle. If it is not available then only
-    certificates already in the NSS database are used.
-
-  o Tries to detect whether a file or nickname is being passed in so the right
-    thing is done
-
-  o Added a bit of code to make the output more like the OpenSSL module,
-    including displaying the certificate information when connecting in
-    verbose mode
-
-  o Improved handling of certificate errors (expired, untrusted, etc)
-
-  The libnsspem.so PKCS#11 module is currently only available in Fedora
-  8/rawhide. Work will be done soon to upstream it. The NSS module will work
-  with or without it, all that changes is the source of the certificates and
-  keys.
-
-Daniel S (18 September 2007)
-- Immanuel Gregoire pointed out that public key SSH auth failed if no
-  public/private key was specified and there was no HOME environment variable,
-  and then it didn't continue to try the other auth methods. Now it will
-  instead try to get the files id_dsa.pub and id_dsa from the current
-  directory if none of the two conditions were met.
-
-Dan F (17 September 2007)
-- Added hooks to the test suite to make it possible to test a curl running
-  on a remote host.
-
-- Changed some FTP tests to validate the format of the PORT and EPRT commands
-  sent by curl, if not the addresses themselves.
-
-Daniel S (15 September 2007)
-- Michal Marek made libcurl automatically append ";type=<a|i>" when using HTTP
-  proxies for FTP urls.
-
-- Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3
-  support on Windows.
-
-Dan F (13 September 2007)
-- Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and
-  fixed some AC_SUBST configure entries.
-
-Version 7.17.0 (13 September 2007)
-
-Daniel S (12 September 2007)
-- Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed
-  out a problem with doing an empty upload over FTP on a re-used connection.
-  I added test case 541 to reproduce it and to verify the fix.
-
-- I noticed while writing test 541 that the FTP code wrongly did a CWD on the
-  second transfer as it didn't store and remember the "" path from the
-  previous transfer so it would instead CWD to the entry path as stored. This
-  worked, but did a superfluous command. Thus, test case 541 now also verifies
-  this fix.
-
-Dan F (5 September 2007)
-- Added test case 1007 to test permission problem when uploading with TFTP
-  (to validate bug #1790403).
-
-- TFTP now reports the "not defined" TFTP error code 0 as an error,
-  not success.
-
-Daniel S (5 September 2007)
-- Continued the work on a fix for #1779054
-  (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August
-  24 was not complete (either) but could accidentally "forget" parts of a
-  server response which led to faulty server response time-out errors.
-
-Dan F (5 September 2007)
-- Minix doesn't support getsockopt on UDP sockets or send/recv on TCP
-  sockets.
-
-Dan F (31 August 2007)
-- Made some of the error strings returned by the *strerror functions more
-  generic, and more consistent with each other.
-
-- Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants,
-  creating macros for backward compatibility:
-
-    CURLFTPSSL_NONE => CURLUSESSL_NONE
-    CURLFTPSSL_TRY => CURLUSESSL_TRY
-    CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL
-    CURLFTPSSL_ALL => CURLUSESSL_ALL
-    CURLFTPSSL_LAST => CURLUSESSL_LAST
-
-Dan F (30 August 2007)
-- Renamed several libcurl error codes and options to make them more general
-  and allow reuse by multiple protocols. Several unused error codes were
-  removed.  In all cases, macros were added to preserve source (and binary)
-  compatibility with the old names.  These macros are subject to removal at
-  a future date, but probably not before 2009.  An application can be
-  tested to see if it is using any obsolete code by compiling it with the
-  CURL_NO_OLDIES macro defined.
-
-  The following unused error codes were removed:
-
-    CURLE_BAD_CALLING_ORDER
-    CURLE_BAD_PASSWORD_ENTERED
-    CURLE_FTP_CANT_RECONNECT
-    CURLE_FTP_COULDNT_GET_SIZE
-    CURLE_FTP_COULDNT_SET_ASCII
-    CURLE_FTP_USER_PASSWORD_INCORRECT
-    CURLE_FTP_WEIRD_USER_REPLY
-    CURLE_FTP_WRITE_ERROR
-    CURLE_LIBRARY_NOT_FOUND
-    CURLE_MALFORMAT_USER
-    CURLE_OBSOLETE
-    CURLE_SHARE_IN_USE
-    CURLE_URL_MALFORMAT_USER
-
-  The following error codes were renamed:
-
-    CURLE_FTP_ACCESS_DENIED =>      CURLE_REMOTE_ACCESS_DENIED
-    CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE
-    CURLE_FTP_SSL_FAILED =>         CURLE_USE_SSL_FAILED
-    CURLE_FTP_QUOTE_ERROR =>        CURLE_QUOTE_ERROR
-    CURLE_TFTP_DISKFULL =>          CURLE_REMOTE_DISK_FULL
-    CURLE_TFTP_EXISTS =>            CURLE_REMOTE_FILE_EXISTS
-    CURLE_HTTP_RANGE_ERROR =>       CURLE_RANGE_ERROR 
-
-  The following options were renamed:
-
-    CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD 
-    CURLOPT_FTPAPPEND =>    CURLOPT_APPEND
-    CURLOPT_FTPLISTONLY =>  CURLOPT_DIRLISTONLY
-    CURLOPT_FTP_SSL =>      CURLOPT_USE_SSL
-
-  A few more changes will take place with the next SONAME bump of the
-  library.  These are documented in docs/TODO
-
-- Documented some newer error codes in libcurl-error(3)
-
-- Added more accurate error code returns from SFTP operations.  Added test
-  case 615 to test an SFTP upload failure.
-
-Dan F (28 August 2007)
-- Some minor internal type and const changes based on a splint scan.
-
-Daniel S (24 August 2007)
-- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
-  out that libcurl didn't deal with large responses from server commands, when
-  the single response was consisting of multiple lines but of a total size of
-  16KB or more. Dan Fandrich improved the ftp test script and provided test
-  case 1006 to repeat the problem, and I fixed the code to make sure this new
-  test case runs fine.
-
-Patrick M (23 August 2007)
-- OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*.
-  See packages/OS400/README.OS400.
-
-Daniel S (23 August 2007)
-- Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed
-  out that doing first a file:// upload and then an FTP upload crashed libcurl
-  or at best caused furious valgrind complaints. Fixed now!
-
-Daniel S (22 August 2007)
-- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
-  out that libcurl didn't deal with very long (>16K) FTP server response lines
-  properly. Starting now, libcurl will chop them off (thus the client app will
-  not get the full line) but survive and deal with them fine otherwise. Test
-  case 1003 was added to verify this.
-
-Daniel S (20 August 2007)
-- Based on a patch by Christian Vogt, the FTP code now sets the upcoming
-  download transfer size much earlier to be possible to get read with
-  CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a
-  similar spirit to the HTTP size change from August 11 2007.
-
-Daniel S (18 August 2007)
-- Robson Braga Araujo filed bug report #1776232
-  (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling
-  Curl_client_write(), passing on a const string that the caller may not
-  modify and yet it does (on some platforms).
-
-- Robson Braga Araujo filed bug report #1776235
-  (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY
-  on a directory would do a "SIZE (null)" request. This is now fixed and test
-  case 1000 was added to verify.
-
-Daniel S (17 August 2007)
-- Song Ma provided a patch that cures a problem libcurl has when doing resume
-  HTTP PUT using Digest authentication. Test case 5320 and 5322 were also
-  added to verify the functionality.
-
-Daniel S (14 August 2007)
-- Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag
-  NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't
-  UNICODE encode the strings it packs into the NTLM authenticate packet.
-
-Daniel S (11 August 2007)
-- Allen Pulsifer provided a patch that makes libcurl set the expected download
-  size earlier when doing HTTP downloads, so that applications and the
-  progress meter etc know get the info earlier in the flow than before.
-
-- Patrick Monnerat modified the LDAP code and approach in curl. Starting now,
-  the configure script checks for openldap and friends and we link with those
-  libs just like we link all other third party libraries, and we no longer
-  dlopen() those libraries. Our private header file lib/ldap.h was renamed to
-  lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix)
-  just before this commit, just in case.
-
-Dan F (8 August 2007)
-- Song Ma noted a zlib memory leak in the illegal compressed header
-  countermeasures code path.
-
-Daniel S (4 August 2007)
-- Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on
-  non-ASCII systems.
-
-Daniel S (3 August 2007)
-- I cut out support for libssh2 versions older than 0.16 to make our code a
-  lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define
-  that 1) didn't work properly since it was >32 bits and 2) is removed in
-  libssh2 0.16...
-
-Daniel S (2 August 2007)
-- Scott Cantor filed bug report #1766320
-  (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl
-  code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and
-  CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be
-  passed in as longs, and that makes a difference on 64 bit architectures.
-
-- Dmitriy Sergeyev reported a regression: resumed file:// transfers broke
-  after 7.16.2. This is much due to the different treatment file:// gets
-  internally, but now I added test 231 to make it less likely to happen again
-  without us noticing!
-
-Daniel S (1 August 2007)
-- Patrick Monnerat and I modified libcurl so that now it *copies* all strings
-  passed to it with curl_easy_setopt()! Previously it has always just refered
-  to the data, forcing the user to keep the data around until libcurl is done
-  with it. That is now history and libcurl will instead clone the given
-  strings and keep private copies. This is also part of Patrick Monnerat's
-  OS/400 port.
-
-  Due to this being a somewhat interesting change API wise, I've decided to
-  bump the version of the upcoming release to 7.17.0. Older applications will
-  of course not notice this change nor do they have to care, but new
-  applications can be written to take advantage of this.
-
-- Greg Morse reported a problem with POSTing using ANYAUTH to a server
-  requiring NTLM, and he provided test code and a test server and we worked
-  out a bug fix. We failed to count sent body data at times, which then caused
-  internal confusions when libcurl tried to send the rest of the data in order
-  to maintain the same connection alive.
-
-Daniel S (31 July 2007)
-- Peter O'Gorman pointed out (and fixed) that the non-blocking check in
-  configure made libcurl use blocking sockets on AIX 4 and 5, while that
-  wasn't the intention.
-
-Daniel S (29 July 2007)
-- Jayesh A Shah filed bug report #1759542
-  (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious
-  problem with FTPS: libcurl closed the data connection socket and then later
-  in the flow it would call the SSL layer to do SSL shutdown which then would
-  use a socket that had already been closed - so if the application had opened
-  a new one in the mean time, libcurl could send gibberish that way! I worked
-  with Greg Zavertnik to properly diagnose and fix this. The fix affects code
-  for all SSL libraries we support, but it has only been truly verified to
-  work fine for the OpenSSL version. The others have only been code reviewed.
-
-Daniel S (23 July 2007)
-- Implemented the parts of Patrick Monnerat's OS/400 patch that introduces
-  support for the OS/400 Secure Sockets Layer library.
-
-Dan F (23 July 2007)
-- Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed
-  some few internal identifiers to avoid conflicts, which could be useful on
-  other platforms.
-
-Daniel S (22 July 2007)
-- HTTP Digest bug fix by Chris Flerackers:
-
-  Scenario
-
-  - Perfoming a POST request with body
-  - With authentication (only Digest)
-  - Re-using a connection
-
-  libcurl would send a HTTP POST with an Authorization header but without
-  body. Our server would return 400 Bad Request in that case (because
-  authentication passed, but the body was empty).
-
-  Cause
-
-  1) http_digest.c -> Curl_output_digest
-  - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is
-  filled in (and no errors)
-  - authp->done = TRUE if d->nonce is filled in
-  2) http.c -> Curl_http
-  - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL
-  3) http.c -> Curl_http, Curl_http_output_auth
-
-  So what happens is that Curl_output_digest cannot yet update the
-  Authorization header (allocptr.userpwd) which results in authhost->done=0 ->
-  authhost->multi=1 -> conn->bits.authneg = TRUE.  The body is not
-  added. *However*, allocptr.userpwd is still used when building the request
-
-- Added test case 354 that makes a simple FTP retrieval without password, which
-  verifies the bug fix in #1757328.
-
-Daniel S (21 July 2007)
-- To allow more flexibility in FTP test cases, I've removed the enforced states
-  from the test server code as they served no real purpose. The test server
-  is here to serve for the test cases, not to attempt to function as a real
-  server! While at it, I modified test case 141 to better test and verify
-  curl -I on a single FTP file.
-
-Daniel S (20 July 2007)
-- James Housley fixed the SFTP PWD command to work.
-
-- Ralf S. Engelschall filed bug report #1757328
-  (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It
-  turns out we broke login to FTP servers that don't require (nor understand)
-  PASS after the USER command. The breakage was done as part of the krb5
-  commit so a krb-using person needs to verify that the current version now
-  works or if we need to fix it (in a different way of course).
-
-Dan F (17 July 2007)
-- Fixed test cases 613 and 614 by improving the log postprocessor to handle
-  a new directory listing format that newer libssh2's can provide.  This
-  is probably NOT sufficient to handle all directory listing formats that
-  server's can provide, and should be revisited.
-
-Daniel S (17 July 2007)
-- Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in
-  two places.
-
-- Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
-  a control connection that was deemed "dead" to yet be re-used in a following
-  request.
-
-Daniel S (13 July 2007)
-- Colin Hogben filed bug report #1750274
-  (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the
-  case where libcurl did a connect attempt to a non-listening port and didn't
-  provide a human readable error string back.
-
-- Daniel Cater fixes:
-  1 - made 'make vc8' work on windows.
-  2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't
-      define the symbols for backwards source compatibility)
-  3 - updated libcurl-errors.3
-  4 - added CURL_DISABLE_TFTP to docs/INSTALL
-
-Daniel S (12 July 2007)
-- Made the krb5 code build with Heimdal's GSSAPI lib.
-
-Dan F (12 July 2007)
-- Compile most of the example apps in docs/examples when doing a 'make check'.
-  Fixed some compile warnings and errors in those examples.
-
-- Removed the example program ftp3rdparty.c since libcurl doesn't support
-  3rd party FTP transfers any longer.
-
-Daniel S (12 July 2007)
-- Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation
-  could in fact get stuck in an endless loop.
-
-- Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation:
-  fail to connect if there is no Common Name field found in the remote cert.
-  We should deprecate the support for this set to 1 anyway soon, since the
-  feature is pointless and most likely never really used by anyone.
-
-Daniel S (11 July 2007)
-- Shmulik Regev fixed a bug with transfer-encoding skipping during the 407
-  error pages for proxy authentication.
-
-- Giancarlo Formicuccia reported and fixed a problem with a closed connection
-  to a proxy during CONNECT auth negotiation.
-
-Dan F (10 July 2007)
-- Fixed a curl memory leak reported by Song Ma with a modified version
-  of the patch he suggested.  Added his test case as test289 to verify.
-
-- Force the time zone to GMT in the cookie tests in case the user is
-  using one of the so-called 'right' time zones that take into account
-  leap seconds, which causes the tests to fail (as reported by
-  Daniel Black in bug report #1745964).
-
-Version 7.16.4 (10 July 2007)
-
-Daniel S (10 July 2007)
-- Kees Cook notified us about a security flaw
-  (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to
-  properly reject some outdated or not yet valid server certificates when
-  built with GnuTLS. Kees also provided the patch.
-
-James H (5 July 2007)
-- Gavrie Philipson provided a patch that will use a more specific error
-  message for an scp:// upload failure.  If libssh2 has his matching
-  patch, then the error message return by the server will be used instead
-  of a more generic error.
-
-Daniel S (1 July 2007)
-- Thomas J. Moore provided a patch that introduces Kerberos5 support in
-  libcurl. This also makes the options change name to --krb (from --krb4) and
-  CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still 
-
-- Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5
-  proxy.
-
-Daniel S (27 June 2007)
-- James Housley: Add two new options for the SFTP/SCP/FILE protocols:
-  CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the
-  premissions for files and directories created on the remote
-  server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and
-  CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755
-
-- I corrected the 10-at-a-time.c example and applied a patch for it by James
-  Bursa.
-
-Daniel S (26 June 2007)
-- Robert Iakobashvili re-arranged the internal hash code to work with a custom
-  hash function for different hashes, and also expanded the default size for
-  the socket hash table used in multi handles to greatly enhance speed when
-  very many connections are added and the socket API is used.
-
-- James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory
-  listings as well
-
-Daniel S (25 June 2007)
-- Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or
-  chunked encoding (that also lacks "Connection: close"). It now simply
-  assumes that the connection WILL be closed to signal the end, as that is how
-  RFC2616 section 4.4 point #5 says we should behave.
-  
-Version 7.16.3 (25 June 2007)
-
-Daniel S (23 June 2007)
-- As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
-  http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do
-  no-body requests on FTP files on re-used connections properly, or at least
-  it didn't provide the info back in the header callback properly in the
-  subsequent requests.
-
-Daniel S (21 June 2007)
-- Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
-  tool reports and it was indeed a legitimate one and it is one fixed. It was
-  a use of a share without doing the proper locking first.
-  
-Daniel S (20 June 2007)
-- Adam Piggott filed bug report #1740263
-  (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
-  getting a large amount of URLs with curl, they were fetched slower and
-  slower... which turned out to be because the --libcurl data collecting which
-  wrongly always was enabled, but no longer is...
-
-Daniel S (18 June 2007)
-- Robson Braga Araujo filed bug report #1739100
-  (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl
-  could not actually list the contents of the root directory of a given FTP
-  server if the login directory isn't root. I fixed the problem and added
-  three test cases (one is disabled for now since I identified KNOWN_BUGS #44,
-  we cannot use --ftp-method nocwd and list ftp directories).
-
-Daniel S (14 June 2007)
-- Shmulik Regev:
-
-  I've encountered (and hopefully fixed) a problem involving proxy CONNECT
-  requests and easy handles state management. The problem isn't simple to
-  reproduce since it depends on socket state. It only manifests itself when
-  working with non-blocking sockets.
-
-  Here is the scenario:
-
-  1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and
-  calls Curl_protocol_connect
-
-  2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function
-  returns and conn->bits.tunnel_connecting is TRUE
-
-  3. when the call to Curl_protocol_connect returns the protocol_connect flag
-  is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which
-  isn't correct if a proxy is used.  Rather CURLM_STATE_WAITPROXYCONNECT
-  should be used.
-
-  I discovered this while performing an HTTPS request through a proxy (squid)
-  on my local network. The problem caused openssl to fail as it read the proxy
-  response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL
-  handshake (the exact openssl error was 'wrong ssl version' but this isn't
-  very important)
-
-- Dave Vasilevsky filed bug report #1736875
-  (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan
-  Fandrich mentioned a related build problem on the libcurl mailing list:
-  http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same
-  reason: the definitions of the POLL* defines and the pollfd struct in the
-  libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H.
-
-Daniel S (13 June 2007)
-- Tom Regner provided a patch and worked together with James Housley, so now
-  CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP
-  ones.
-
-- Rich Rauenzahn filed bug report #1733119
-  (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the
-  fix.  The problem is that for 64bit HPUX builds, several socket-related
-  functions would still assume int (32 bit) arguments and not socklen_t (64
-  bit) ones.
-
-Daniel S (12 June 2007)
-- James Housley brought his revamped SSH code that is state-machine driven to
-  really take advantage of the now totally non-blocking libssh2 (in CVS).
-
-Dan F (8 June 2007)
-- Incorporated Daniel Black's test706 and test707 SOCKS test cases.
-
-- Fixed a few problems when starting the SOCKS server.
-
-- Reverted some recent changes to runtests.pl that weren't compatible with
-  perl 5.0.
-
-- Fixed the test harness so that it actually kills the ssh being used as
-  the SOCKS server.
-
-Daniel S (6 June 2007)
-- -s/--silent can now be used to toggle off the silence again if used a second
-  time.
-
-Daniel S (5 June 2007)
-- Added Daniel Black's work that adds the first few SOCKS test cases. I also
-  fixed two minor SOCKS problems to make the test cases run fine.
-
-Daniel S (31 May 2007)
-- Feng Tu made (lib)curl support "upload" resuming work for file:// URLs.
-
-Daniel S (30 May 2007)
-- I modified the 10-at-a-time.c example to transfer 500 downloads in parallel
-  with a c-ares enabled build only to find that it crashed miserably, and this
-  was due to some select()isms left in the code. This was due to API
-  restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no
-  longer the case so now libcurl runs much better with c-ares and the multi
-  interface with > 1024 file descriptors in use.
-
-  Extra note: starting now we require c-ares 1.4.0 for asynchronous name
-  resolves.
-
-- Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting
-  the maximum size of the connection cache maximum size of the multi handle.
-
-Daniel S (27 May 2007)
-- When working with a problem Stefan Becker had, I found an off-by-one buffer
-  overwrite in Curl_select(). While fixing it, I also improved its performance
-  somewhat by changing calloc to malloc and breaking out of a loop earlier
-  (when possible).
-
-Daniel S (25 May 2007)
-- Rob Crittenden fixed bug #1705802
-  (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel
-  Black identifying several FTP-SSL test cases fail when we build libcurl with
-  NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS.
-
-Daniel S (24 May 2007)
-- Song Ma filed bug report #1724016
-  (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading
-  glob-ranges for TFTP was broken in CVS. Fixed now.
-  
-- 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
-  pointed out that the warnf() function in the curl tool didn't properly deal
-  with the cases when excessively long words were used in the string to chop
-  up.
-
-Daniel S (22 May 2007)
-- Andre Guibert de Bruet fixed a memory leak in the function that verifies the
-  peer's name in the SSL certificate when built for OpenSSL. The leak happens
-  for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN
-  name from UTF8. He also fixed a leak when PKCS #12 parsing failed.
-
-Daniel S (18 May 2007)
-- Feng Tu reported that curl -w did wrong on TFTP transfers in bug report
-  #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
-  transfer-related info "variables" were indeed overwritten with zeroes
-  wrongly and have now been adjusted. The upload size still isn't accurate.
-
-Daniel S (17 May 2007)
-- Feng Tu pointed out a division by zero error in the TFTP connect timeout
-  code for timeouts less than five seconds, and also provided a fix for it.
-  Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392)
-
-Dan F (16 May 2007)
-- Added support for compiling under Minix 3.1.3 using ACK.
-
-Dan F (14 May 2007)
-- Added SFTP directory listing test case 613.
-
-- Added support for quote commands before a transfer using SFTP and test
-  case 614.
-
-- Changed the post-quote commands to occur after the transferred file is
-  closed.
-
-- Allow SFTP quote commands chmod, chown, chgrp to set a value of 0.
-
-Dan F (9 May 2007)
-- Kristian Gunstone fixed a problem where overwriting an uploaded file with
-  sftp didn't truncate it first, which would corrupt the file if the new
-  file was shorter than the old.
-
-Dan F (8 May 2007)
-- Added FTPS test cases 406 and 407
-
-Daniel S (8 May 2007)
-- CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is
-  because I just made SCP uploads return this value if the file size of
-  the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to
-  reflect this news, and a define for the old name was added to the public
-  header file.
-
-Daniel S (7 May 2007)
-- James Bursa fixed a bug in the multi handle code that made the connection
-  cache grow a bit too much, beyond the normal 4 * easy_handles.
-
-Daniel S (2 May 2007)
-- Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0
-  when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is
-  not very nice if the client wants to be able to use _either_ a HTTP 1.1
-  server or one within the aliases list... so starting now, libcurl will
-  simply consider 200-alias matches the to be HTTP 1.0 compliant.
-
-- Tobias Rundström reported a problem they experienced with xmms2 and recent
-  libcurls, which turned out to be the 25-nov-2006 change which treats HTTP
-  responses without Content-Length or chunked encoding as without bodies. We
-  now added the conditional that the above mentioned response is only without
-  body if the response is HTTP 1.1.
-
-- Jeff Pohlmeyer improved the hiperfifo.c example to use the
-  CURLMOPT_TIMERFUNCTION callback option.
-
-- Set the timeout for easy handles to expire really soon after addition or
-  when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform,
-  to make applications using only curl_multi_socket() to properly function
-  when adding easy handles "on the fly". Bug report and test app provided by
-  Michael Wallner.
-
-Dan F (30 April 2007)
-- Improved the test harness to allow running test servers on other than
-  the default port numbers, allowing more than one test suite to run
-  simultaneously on the same host.
-
-Daniel S (28 April 2007)
-- Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before,
-  since it then inits libgcrypt and libgcrypt is being evil and EXITS the
-  application if it fails to get a fine random seed. That's really not a nice
-  thing to do by a library.
-
-- Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had
-  been removed from a multi handle, and then fixed another flaw that prevented
-  curl_easy_duphandle() to work even after the first fix - the handle was
-  still marked as using the multi interface.
-
-Daniel S (26 April 2007)
-- Peter O'Gorman found a problem with SCP downloads when the downloaded file
-  was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
-  out" all data from libssh2. The effect being that libcurl would hang on the
-  socket waiting for data when libssh2 had in fact already read it all...
-
-Dan F (25 April 2007)
-- Added support in runtests.pl for "!n" test numbers to disable individual
-  tests.  Changed -t to only keep log files around when -k is specified,
-  to have the same behaviour as without -t.
-
-Daniel S (25 April 2007)
-- Sonia Subramanian brought our attention to a problem that happens if you set
-  the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection
-  in the connection cache is closed to make room for the new one when you call
-  curl_easy_perform(). It would then wrongly free range-related data in the
-  connection close funtion.
-
-Yang Tse (25 April 2007)
-- Steve Little fixed compilation on VMS 64-bit mode
-
-Daniel S (24 April 2007)
-- Robert Iakobashvili made the 'master_buffer' get allocated first once it is
-  can/will be used as it then makes the common cases save 16KB of data for each
-  easy handle that isn't used for pipelining.
-
-Dan F (23 April 2007)
-- Added <postcheck> support to the test harness.
-
-- Added tests 610-612 to test more SFTP post-quote commands.
-
-Daniel S (22 April 2007)
-- Song Ma's warning if -r/--range is given with a "bad" range, also noted in
-  the man page now.
-
-- Daniel Black filed bug #1705177
-  (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl
-  --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS
-  was found and used.
-
-Daniel S (21 April 2007)
-- Daniel Black filed bug #1704675
-  (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free
-  problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on
-  closedown after a failure and a bad #ifdef for NSS when closing down SSL.
-
-Yang Tse (20 April 2007)
-- Save one call to curlx_tvnow(), which calls gettimeofday(), in each of
-  Curl_socket_ready(), Curl_poll() and Curl_select() when these are called
-  with a zero timeout or a timeout value indicating a blocking call should
-  be performed.
-
-Daniel S (18 April 2007)
-- James Housley made SFTP uploads use libssh2's non-blocking API
-
-- Prevent the internal progress meter from updating more frequently than once
-  per second.
-
-Dan F (17 April 2007)
-- Added test cases 296, 297 and 298 to test --ftp-method handling
-
-Daniel S (16 April 2007)
-- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a
-  function that deprecates the curl_multi_socket() function. Using the new
-  function the application tell libcurl what action that was found in the
-  socket that it passes in. This gives a significant performance boost as it
-  allows libcurl to avoid a call to poll()/select() for every call to
-  curl_multi_socket*().
-
-  I added a define in the public curl/multi.h header file that will make your
-  existing application automatically use curl_multi_socket_action() instead of
-  curl_multi_socket() when you recompile. But of course you'll get better
-  performance if you adjust your code manually and actually pass in the
-  correct action bitmask to this function.
-
-Daniel S (14 April 2007)
-- Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test
-  suite to make stunnel run better in some (most?) environments.
-
-Dan F (13 April 2007)
-- Added test cases 294 and 295 to test --ftp-account handling
-
-- Improved handling of out of memory in ftp.
-
-Yang Tse (13 April 2007)
-- Fix test case 534 which started to fail 2007-04-13 due to the existance
-  of a new host on the net with the same silly domain the test was using
-  for a host which was supposed not to exist.
-
-Daniel S (12 April 2007)
-- Song Ma found a memory leak in the if2ip code if you pass in an interface
-  name longer than the name field of the ifreq struct (typically 6 bytes), as
-  then it wouldn't close the used dummy socket. Bug #1698974
-  (http://curl.haxx.se/bug/view.cgi?id=1698974)
-
-Version 7.16.2 (11 April 2007)
-
-Yang Tse (10 April 2007)
-- Ravi Pratap provided some fixes for HTTP pipelining
-
-- configure script will ignore --enable-sspi option for non-native Windows.
-
-Daniel S (9 April 2007)
-- Nick Zitzmann did ssh.c cleanups
-
-Daniel S (3 April 2007)
-- Rob Jones fixed better #ifdef'ing for a bunch of #include lines.
-
-Daniel S (2 April 2007)
-- Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The
-  accepted commands are as follows:
-
-  chgrp (gid) (path)
-    Changes the group ID of the file or directory at (path) to (gid). (gid)
-    must be a number.
-
-  chmod (perms) (path)
-    Changes the permissions of the file or directory at (path) to
-    (perms). (perms) must be a number in the format used by the chmod Unix
-    command.
-
-  chown (uid) (path)
-    Changes the user ID of the file or directory at (path) to (uid). (uid)
-    must be a number.
-
-  ln (source) (dest)
-    Creates a symbolic link at (dest) that points to the file located at
-    (source).
-
-  mkdir (path)
-    Creates a new directory at (path).
-
-  rename (source) (dest)
-    Moves the file or directory at (source) to (dest).
-
-  rm (path)
-    Deletes the file located at (path).
-
-  rmdir (path)
-    Deletes the directory located at (path). This command will raise an error
-    if the directory is not empty.
-
-  symlink (source) (dest)
-    Same as ln.
-
-Daniel S (1 April 2007)
-- Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many
-  easy handles are added to a multi handle, by avoiding the looping over all
-  the handles to find which one to remove.
-
-- Matt Kraai provided a patch that makes curl build on QNX 6 fine again.
-
-Daniel S (31 March 2007)
-- Fixed several minor issues detected by the coverity.com scanner.
-
-- "Pixel" fixed a problem that appeared when you used -f with user+password
-  embedded in the URL.
-
-Dan F (29 March 2007)
-- Don't tear down the ftp connection if the maximum filesize was exceeded
-  and added tests 290 and 291 to check.
-
-- Added ftps upload and SSL required tests 401 and 402.
-
-- Send an EOF message before closing an SCP channel, as recommended by
-  RFC4254. Enable libssh2 tracing when ssh debugging is turned on.
-
-Yang Tse (27 March 2007)
-- Internal function Curl_select() renamed to Curl_socket_ready()
-
-  New Internal wrapper function Curl_select() around select (2), it
-  uses poll() when a fine poll() is available, so now libcurl can be
-  built without select() support at all if a fine poll() is available.
-
-Daniel S (25 March 2007)
-- Daniel Johnson fixed multi code to traverse the easy handle list properly.
-  A left-over bug from the February 21 fix.
-
-Dan F (23 March 2007)
-- Added --pubkey option to curl and made --key also work for SCP/SFTP,
-  plus made --pass work on an SSH private key as well.
-
-- Changed the test harness to attempt to gracefully shut down servers
-  before resorting to the kill -9 hammer.
-
-- Added test harness infrastructure to support scp/sftp tests, using
-  OpenSSH as the server.
-
-- Fixed a memory leak when specifying a proxy with a file: URL.
-
-Yang Tse (20 March 2007)
-- Fixed: When a signal was caught awaiting for an event using Curl_select()
-  or Curl_poll() with a non-zero timeout both functions would restart the
-  specified timeout. This could even lead to the extreme case that if a
-  signal arrived with a frecuency lower to the specified timeout neither
-  function would ever exit.
-
-  Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in
-  Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR
-  defined both functions will return as soon as a signal is caught. Use it
-  at your own risk, all calls to these functions in the library should be
-  revisited and checked before fully supporting this feature.
-
-Yang Tse (19 March 2007)
-- Bryan Henderson fixed the progress function so that it can get called more
-  frequently allowing same calling frecuency for the client progress callback.
-  
-Dan F (15 March 2007)
-- Various memory leaks plugged and NULL pointer fixes made in the ssh code.
-
-Daniel (15 March 2007)
-- Nick made the curl tool accept globbing ranges that only is one number, i.e
-  you can now use [1-1] without curl complaining.
-
-Daniel (10 March 2007)
-- Eygene Ryabinkin:
-
-  The problem is the following: when we're calling Curl_done and it decides to
-  keep the connection opened ('left intact'), then the caller is not notified
-  that the connection was done via the NULLifying of the pointer, so some easy
-  handle is keeping the pointer to this connection.
-
-  Later ConnectionExists can select such connection for reuse even if we're
-  not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is
-  false and we can reuse this connection for another easy handle. But thus the
-  connection will be shared between two easy handles if the handle that wants
-  to take the ownership is not the same as was not notified of the connection
-  was done in Curl_done. And when some of these easy handles will get their
-  connection really freed the another one will still keep the pointer.
-
-  My fix was rather trivial: I just added the NULLification to the 'else'
-  branch in the Curl_done. My tests with Git and ElectricFence showed no
-  problems both for HTTP pulling and cloning. Repository size is about 250 Mb,
-  so it was a considerable amount of Curl's work.
-
-Dan F (9 March 2007)
-- Updated the test harness to add a new "crypto" feature check and updated the
-  appropriate test case to use it.  For now, this is treated the same as the
-  "SSL" feature because curl doesn't list it separately.
-
-Daniel (9 March 2007)
-- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
-
-- Robert A. Monat improved the maketgz and VC6/8 generating to set the correct
-  machine type too.
-
-- Justin Fletcher fixed a file descriptor leak in the curl tool when trying to
-  upload a file it couldn't open. Bug #1676581
-  (http://curl.haxx.se/bug/view.cgi?id=1676581)
-
-Dan F (9 March 2007)
-- Updated the test harness to check for protocol support before running each
-  test, fixing KNOWN_BUGS #11.
-
-Dan F (7 March 2007)
-- Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test
-  harness.  It is very limited as it supports only ftps:// URLs with
-  --ftp-ssl-control specified, which implicitly encrypts the control
-  channel but not the data channels.  That allows stunnel to be used with
-  an unmodified ftp server in exactly the same way that the test https
-  server is set up.
-
-Dan F (7 March 2007)
-- Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and
-  unencrypted data connections.
-
-Dan F (6 March 2007)
-- Fixed a couple of improper pointer uses detected by valgrind in test
-  cases 181 & 216.
-
-Daniel (2 March 2007)
-- Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8
-  makefiles that are included in the source release archives, generated from
-  the Makefile.vc6 files by the maketgz script. I also modified the root
-  Makefile to have a VC variable that defaults to vc6 but can be overridden to
-  allow it to be used for vc8 as well. Like this:
-
-    nmake VC=vc8 vc
-
-Daniel (27 February 2007)
-- Hang Kin Lau found and fixed: When I use libcurl to connect to an https
-  server through a proxy and have the remote https server port set using the
-  CURLOPT_PORT option, protocol gets reset to http from https after the first
-  request.
-  User defined URL was modified internally by libcurl and subsequent reuse of
-  the easy handle may lead to connection using a different protocol (if not
-  originally http).
-  I found that libcurl hardcoded the protocol to "http" when it tries to
-  regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as
-  follows and it's working fine so far
-
-Daniel (25 February 2007)
-- Adam D. Moss made the HTTP CONNECT procedure less blocking when used from
-  the multi interface. Note that it still does a part of the connection in a
-  blocking manner.
-
-Daniel (23 February 2007)
-- Added warning outputs if the command line uses more than one of the options
-  -v, --trace and --trace-ascii, since it could really confuse the user.
-  Clarified this fact in the man page.
-
-Daniel (21 February 2007)
-- Ravi Pratap provided work on libcurl making pipelining more robust and
-  fixing some bugs:
-  o Don't mix GET and POST requests in a pipeline
-  o Fix the order in which requests are dispatched from the pipeline
-  o Fixed several curl bugs with pipelining when the server is returning
-    chunked encoding:
-    * Added states to chunked parsing for final CRLF
-    * Rewind buffer after parsing chunk with data remaining
-    * Moved chunked header initializing to a spot just before receiving
-      headers
-
-Daniel (20 February 2007)
-- Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle
-  active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command
-  line option.
-
-Daniel (19 February 2007)
-- Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl.
-
-- Shmulik Regev found a memory leak in re-used HTTPS connections, at least
-  when the multi interface was used.
-
-- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and
-  5).
-
-Daniel (18 February 2007)
-- Jeff Pohlmeyer identified two problems: first a rather obscure problem with
-  the multi interface and connection re-use that could make a
-  curl_multi_remove_handle() ruin a pointer in another handle.
-
-  The second problem was less of an actual problem but more of minor quirk:
-  the re-using of connections wasn't properly checking if the connection was
-  marked for closure.
-
-Daniel (16 February 2007)
-- Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting
-  CURLOPT_RANGE back to no range on an easy handle when using FTP.
-
-Dan F (14 February 2007)
-- Fixed curl-config --libs so it doesn't list unnecessary libraries (and
-  therefore introduce unnecessary dependencies) when it's not needed.
-  Also, don't bother adding a library path of /usr/lib
-
-Daniel (13 February 2007)
-- The default password for anonymous FTP connections is now changed to be
-  "ftp@example.com".
-
-- Robert A. Monat made libcurl build fine with VC2005 - it doesn't have
-  gmtime_r() like the older VC versions. He also made use of some machine-
-  specific defines to differentiate the "OS" define.
-
-Daniel (12 February 2007)
-- Rob Crittenden added support for NSS (Network Security Service) for the
-  SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/
-
-  This is the fourth supported library for TLS/SSL that libcurl supports!
-
-- Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent
-  to the debug callback.
-
-- Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and
-  CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's
-  internal decoding of content or transfer encoded content. This may be
-  preferable in cases where you use libcurl for proxy purposes or similar. The
-  command line tool got a --raw option to disable both at once.
-
-- release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP
-  define set to hold the exact date and time of when the tarball was built, as
-  a human readable string using the UTC time zone.
-  
-- Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle
-  that has an easy handle present in the "closure" list pending closure.
-
-Daniel (6 February 2007)
-- Regular file downloads wiht SFTP and SCP are now done using the non-blocking
-  API of libssh2, if the libssh2 headers seem to support them. This will make
-  SCP and SFTP much more responsive and better libcurl citizens when used with
-  the multi interface etc.
-
-Daniel (5 February 2007)
-- Michael Wallner added support for CURLOPT_TIMEOUT_MS and
-  CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with
-  millisecond resolution. The only restriction to that is the alarm()
-  (sometimes) used to abort name resolves as that uses full seconds. I fixed
-  the FTP response timeout part of the patch.
-
-  Internally we now count and keep the timeouts in milliseconds but it also
-  means we multiply set timeouts with 1000. The effect of this is that no
-  timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
-  equals 24.86 days.  We probably couldn't before either since the code did
-  *1000 on the timeout values on several places already.
-
-Daniel (3 February 2007)
-- Yang Tse fixed the cookie expiry date in several test cases that started to
-  fail since they used "1 feb 2007"...
-
-- Manfred Schwarb reported that socks5 support was broken and help us pinpoint
-  the problem. The code now tries harder to use httproxy and proxy where
-  apppropriate, as not all proxies are HTTP...
-
-Version 7.16.1 (29 January 2007)
-
-Daniel (29 January 2007)
-- Michael Wallner reported that when doing a CONNECT with a custom User-Agent
-  header, you got _two_ User-Agent headers in the CONNECT request...! Added
-  test case 287 to verify the fix.
-
-Daniel (28 January 2007)
-- curl_easy_reset() now resets the CA bundle path correctly.
-
-- David McCreedy fixed the Curl command line tool for HTTP on non-ASCII
-  platforms.
-
-Daniel (25 January 2007)
-- Added the --libcurl [file] option to curl. Append this option to any
-  ordinary curl command line, and you will get a libcurl-using source code
-  written to the file that does the equivalent operation of what your command
-  line operation does!
-
-Dan F (24 January 2007)
-- Fixed a dangling pointer problem that prevented the http_proxy environment
-  variable from being properly used in many cases (and caused test case 63
-  to fail).
-
-Daniel (23 January 2007)
-- David McCreedy did NTLM changes mainly for non-ASCII platforms:
-
-  #1
-  There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT
-  defined.  I noticed this while testing various configurations.  Line 867 of
-  the current http_ntlm.c is a closing bracket for an if/else pair that only
-  gets compiled in if USE_NTLM2SESSION is defined.  But this closing bracket
-  wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was
-  defined.  Lines 198 and 140 of my patch wraps that closing bracket in an
-  #ifdef USE_NTLM2SESSION.
-
-  #2
-  I noticed several picky compiler warnings when DEBUG_ME is defined.  I've
-  fixed them with casting.  By the way, DEBUG_ME was a huge help in
-  understanding this code.
-
-  #3
-  Hopefully the last non-ASCII conversion patch for libcurl in a while.  I
-  changed the "NTLMSSP" literal to hex since this signature must always be in
-  ASCII.
-
-  Conversion code was strategically added where necessary.  And the
-  Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c
-  creates are NOT translated on non-ASCII platforms.
-
-Dan F (22 January 2007)
-- Converted (most of) the test data files into genuine XML.  A handful still
-  are not, due mainly to the lack of support for XML character entities
-  (e.g. & => &amp; ).  This will make it easier to validate test files using
-  tools like xmllint, as well as to edit and view them using XML tools.
-
-Daniel (16 January 2007)
-- Armel Asselin improved libcurl to behave a lot better when an easy handle
-  doing an FTP transfer is removed from a multi handle before completion. The
-  fix also fixed the "alive counter" to be correct on "premature removal" for
-  all protocols.
-
-Dan F (16 January 2007)
-- Fixed a small memory leak in tftp uploads discovered by curl's memory leak
-  detector.  Also changed tftp downloads to URL-unescape the downloaded
-  file name.
-
-Daniel (14 January 2007)
-- David McCreedy provided libcurl changes for doing HTTP communication on
-  non-ASCII platforms. It does add some complexity, most notably with more
-  #ifdefs, but I want to see this supported added and I can't see how we can
-  add it without the extra stuff added.
-
-- Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present,
-  libcurl would crash when trying to read a NULL pointer.
-
-Daniel (12 January 2007)
-- Toby Peterson found a nasty bug that prevented (lib)curl from properly
-  downloading (most) things that were larger than 4GB on 32 bit systems.  Matt
-  Witherspoon helped as narrow down the problem.
-
-Daniel (5 January 2007)
-- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to
-  curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it
-  will make libcurl shutdown SSL/TLS after the authentication is done on a
-  FTP-SSL operation.
-
-Daniel (4 January 2007)
-- David McCreedy made changes to allow base64 encoding/decoding to work on
-  non-ASCII platforms.
-
-Daniel (3 January 2007)
-- Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store
-  downloaded data in two buffers, just to be able to deal with a special HTTP
-  pipelining case. That is now only activated for pipelined transfers. In
-  Matt's case, it showed as a considerable performance difference,
-
-Daniel (2 January 2007)
-- Victor Snezhko helped us fix bug report #1603712
-  (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate
-  (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken
-  on Windows (since 7.16.0, but that's when they were introduced as previous
-  to that the limiting logic was made in the application only and not in the
-  library). It was actually also broken on select()-based systems (as apposed
-  to poll()) but we haven't had any such reports. We now use select(), Sleep()
-  or delay() properly to sleep a while without waiting for anything input or
-  output when the rate limiting is activated with the easy interface.
-
-- Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs
-  to get built static. It has been mentioned before and was again brought to
-  our attention by Nathanael Nerode who filed debian bug report #405226
-  (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226).
-
index b73d239..e2b7697 100644 (file)
--- a/CHANGES.0
+++ b/CHANGES.0
 Changes done to curl and libcurl from 1997 to 2006. The most recent changes are
 always kept in the CHANGES file.
 
+Daniel S (27 Dec 2007)
+- Dmitry Kurochkin mentioned a flaw
+  (http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which
+  failed to set the bits.proxy variable properly when an environment variable
+  told libcurl to use a http proxy.
+
+Daniel S (26 Dec 2007)
+- In an attempt to repeat the problem in bug report #1850730
+  (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The
+  test is doing a 70K POST with a read callback and an ioctl callback over a
+  proxy requiring Digest auth. The test case code is more or less identical to
+  the test recipe code provided by Spacen Jasset (who submitted the bug
+  report).
+
+Daniel S (25 Dec 2007)
+- Gary Maxwell filed bug report #1856628
+  (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the
+  (small) memory leak in the SSL session ID caching code. It happened when a
+  previous entry in the cache was re-used.
+
+Daniel Fandrich (19 Dec 2007)
+- Ensure that nroff doesn't put anything but ASCII characters into the
+  --manual text.
+
+Yang Tse (18 Dec 2007)
+- MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP,
+  and makes wrong asumptions of build target when it isn't specified. So,
+  if no build target has been defined we will target WinXP when building
+  curl/libcurl with MSVC 9.0 (VS2008).
+
+- (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed
+  a file truncation problem on Windows build targets triggered when retrying
+  a download with curl.
+
+Daniel S (17 Dec 2007)
+- Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and
+  defines in winsock2.h somehow differently than previous versions and that
+  curl 7.17.1 would fail to compile out of the box.
+
+Daniel S (13 Dec 2007)
+- David Wright filed bug report #1849764
+  (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He
+  identified a problem for re-used connections that previously had sent
+  Expect: 100-continue and in some situations the subsequent POST (that didn't
+  use Expect:) still had the internal flag set for its use. David's fix (that
+  makes the setting of the flag in every single request unconditionally) is
+  fine and is now used!
+
+Daniel S (12 Dec 2007)
+- Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and
+  added the --no-keep-alive option that can disable that on demand.
+
+Daniel S (9 Dec 2007)
+- Andrew Moise filed bug report #1847501
+  (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy()
+  that should be memmove() in the convert_lineends() function.
+
+Daniel S (8 Dec 2007)
+- Renamed all internal static functions that had Curl_ prefixes to no longer
+  have them. The Curl_ prefix is exclusively used for library internal global
+  symbols. Static functions can be named anything, except for using Curl_ or
+  curl_ prefixes. This is for consistency and for easier maintainance and
+  overview.
+
+- Cleaned up and reformatted the TODO document to look like the FAQ and
+  CONTRIBUTE, which makes nicer web pages
+
+- Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE.
+
+- Added keywords on a bunch of test cases
+
+- Fixed an OOM problem in the curl code that would lead to fclose on a bad
+  handle and crash
+
+Daniel S (5 Dec 2007)
+- Spacen Jasset reported a problem with doing POST (with data read with a
+  callback) over a proxy when NTLM is used as auth with the proxy. The bug
+  also concerned Digest and was limited to using callback only. Spacen worked
+  with us to provide a useful patch. I added the test case 547 and 548 to
+  verify two variations of POST over proxy with NTLM.
+
+Daniel S (3 Dec 2007)
+- Ray Pekowski filed bug report #1842029
+  (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a
+  problem with SSL session caching that prevent it from working, and provided
+  the associated fix!
+
+- Now libcurl (built with OpenSSL) doesn't return error anymore if the remote
+  SSL-based server doesn't present a certificate when the request is told to
+  ignore certificate verification anyway.
+
+- Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
+  the appending of the "type=" thing on FTP URLs when they are passed to a
+  HTTP proxy. Some proxies just don't like that appending (which is done
+  unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
+  better with the appending done!
+
+Daniel S (29 Nov 2007)
+- A bug report on the curl-library list showed a HTTP Digest session going on
+  with a 700+ letter nonce. Previously libcurl only support 127 letter ones
+  and now I bumped it to 1023.
+
+- Fixed the resumed FTP upload loop to not require that the read callback
+  returns a full buffer on each invoke.
+
+Daniel S (25 Nov 2007)
+- Added test case 1015 that tests --data-urlencode in multiple ways
+
+- Fixed --data-urlencode for when no @ or = are used
+
+- Extended the user-agent buffer curl uses, since we can hit the 128 byte
+  border with plenty development libraries used. Like my current set: "curl
+  7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g
+  zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS"
+
+Daniel S (24 Nov 2007)
+- Internal rearrangements, so that the previous struct HandleData is no more.
+  It is now known as SingleRequest and the Curl_transfer_keeper struct within
+  that was remove entirely. This has the upside that there are less duplicate
+  struct members that made it hard to see and remember what struct that was
+  used to store what data. The transfer_keeper thing was once stored on a
+  per-connection basis and then it made sense to have the duplicate info but
+  since it was moved to the SessionHandle (in 7.16.0) it just added weirdness.
+  The SingleRequest struct is used by data that only is valid for this single
+  request.
+
+Yang Tse (22 Nov 2007)
+- Provide a socklen_t definition in curl.h for Win32 API build targets
+  which don't have one.
+
+Daniel S (22 Nov 2007)
+- Alessandro Vesely helped me improve the --data-urlencode's syntax, parser
+  and documentation.
+
+Daniel S (21 Nov 2007)
+- While inspecting the Negotiate code, I noticed how the proxy auth was using
+  the same state struct as the host auth, so both could never be used at the
+  same time! I fixed it (without being able to check) to use two separate
+  structs to allow authentication using Negotiate on host and proxy
+  simultaneously.
+
+Daniel S (20 Nov 2007)
+- Emil Romanus pointed out a bug that made an easy handle get the cookie
+  engine activated when set to use a share (even if the share doesn't share
+  cookies). I fixed it.
+
+- Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s",
+  since the second %s would then wrongly used the numerical precision argument
+  instead and crash.
+
+- Introduced --data-urlencode to the curl tool for easier url encoding of the
+  data sent in a post.
+
+Daniel S (18 Nov 2007)
+- Rob Crittenden fixed SSL connections with NSS done with the multi-interface
+
+Daniel S (17 Nov 2007)
+- Michal Marek made the test suite remember what test servers that fail to
+  start so that subsequent tries are simply skipped.
+
+- Andres Garcia made the examples build fine on Windows (mingw + msys) when
+  the lib was built staticly.
+
+Daniel S (16 Nov 2007)
+- Ates Goral identified a problem in http.c:add_buffer_send() when a debug
+  callback was used, as it could wrongly pass on a bad size for the outgoing
+  HTTP header. The bad size would be a very large value as it was a wrapped
+  size_t content. This happened when the whole HTTP request failed to get sent
+  in one single send.  http://curl.haxx.se/mail/lib-2007-11/0165.html
+
+Daniel S (15 Nov 2007)
+- Fixed yet another remaining problem with doing SFTP directory listings on a
+  re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing
+  list.
+
+- Michal Marek fixed the test suite to better deal with the case when the HTTP
+  ipv6 server can't run.
+
+Yang Tse (14 Nov 2007)
+- Fix a variable potential wrapping in add_buffer() when using absolutely
+  huge send buffer sizes.
+
+Daniel S (13 Nov 2007)
+- Fixed a remaining problem with doing SFTP directory listings on a re-used
+  persistent connection. Mentioned by Immanuel Gregoire on the mailing list.
+
+Daniel S (12 Nov 2007)
+- Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was
+  forwarded from the Gentoo bug tracker by Daniel Black and was originally
+  submitted by Robin Johnson, pointed out that libcurl would do bad memory
+  references when it failed and bailed out before the handler thing was
+  setup. My fix is not done like the provided patch does it, but instead I
+  make sure that there's never any chance for a NULL pointer in that struct
+  member.
+
+Yang Tse (10 Nov 2007)
+- Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out
+  that the pollfd struct was being multi defined when using VS2008. This is
+  now fixed in /curl/lib/select.h
+
+Daniel S (8 Nov 2007)
+- Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed
+  out that SFTP requests didn't use persistent connections. Neither did SCP
+  ones.  I gave the SSH code a good beating and now both SCP and SFTP should
+  use persistent connections fine. I also did a bunch of indent changes as
+  well as a bug fix for the "keyboard interactive" auth.
+
+Dan F (6 Nov 2007)
+- Improved telnet support by drastically reducing the number of write
+  callbacks needed to pass a buffer to the user.  Instead one per byte it
+  is now as little as one per segment.
+
+Yang Tse (6 Nov 2007)
+- Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed
+  out a problem in curl.h when building C++ apps with MSVC. To fix it, the
+  inclusion of header files in curl.h is moved outside of the C++ extern "C"
+  linkage block.
+
+Daniel S (1 Nov 2007)
+- Toby Peterson patched a memory problem in the command line tool that
+  happened when a user had a home dir as an empty string. curl would then do
+  free() on a wrong area.
+
+Dan F (1 Nov 2007)
+- Fixed curl-config --features to not display libz when it wasn't used
+  due to a missing header file.
+
+Dan F (31 October 2007)
+- Fixed the output of curl-config --protocols which showed SCP and SFTP
+  always, except when --without-libssh2 was given
+
+- Added test cases 1013 and 1014 to check that curl-config --protocols and
+  curl-config --features matches the output of curl --version
+
+Dan F (30 October 2007)
+- Fixed an OOM problem with file: URLs
+
+- Moved Curl_file_connect into the protocol handler struct
+
+Dan F (29 October 2007)
+- Added test case 546 to check that subsequent FTP transfers work after a
+  failed one using the multi interface
+
+Daniel S (29 October 2007)
+- Based on one of those bug reports that are intercepted by a distro's bug
+  tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made
+  curl-config --features and --protocols show the correct output when built
+  with NSS.
+
+Version 7.17.1 (29 October 2007)
+
+Dan F (25 October 2007)
+- Added the --static-libs option to curl-config
+
+Daniel S (25 October 2007)
+- Made libcurl built with NSS possible to ignore the peer verification.
+  Previously it would fail if the ca bundle wasn't present, even if the code
+  ignored the verification results.
+
+Patrick M (25 October 2007)
+- Fixed test server to allow null bytes in binary posts.
+_ Added tests 35, 544 & 545 to check binary data posts, both static (in place)
+  and dynamic (copied).
+
+Daniel S (25 October 2007)
+- Michal Marek fixed the test script to be able to use valgrind even when the
+  lib is built shared with libtool.
+
+- Fixed a few memory leaks when the same easy handle is re-used to request
+  URLs with different protocols. FTP and TFTP related leaks. Caught thanks to
+  Dan F's new test cases.
+
+Dan F (24 October 2007)
+- Fixed the test FTP and TFTP servers to support the >10000 test number
+  notation
+
+- Added test cases 2000 through 2003 which test multiple protocols using the
+  same easy handle
+
+- Fixed the filecheck: make target to work outside the source tree
+
+Daniel S (24 October 2007)
+- Vladimir Lazarenko pointed out that we should do some 'mt' magic when
+  building with VC8 to get the "manifest" embedded to make fine stand-alone
+  binaries. The maketgz and the src/Makefile.vc6 files were adjusted
+  accordingly.
+
+Daniel S (23 October 2007)
+- Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out
+  that libcurl tried to re-use connections a bit too much when using non-SSL
+  protocols tunneled over a HTTP proxy.
+
+Daniel S (22 October 2007)
+- Michal Marek forwarded the bug report
+  https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to
+  FTP that caused memory havoc. His work together with my efforts created two
+  fixes:
+
+  #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with
+       at connection cleanup, at which time the struct HandleData could be
+       used by another connection.
+       Also, the unused char *urlpath member is removed from struct FTP.
+  #2 - provide a Curl_reset_reqproto() function that frees
+       data->reqdata.proto.* on connection setup if needed (that is if the
+       SessionHandle was used by a different connection).
+
+  A long-term goal is of course to somehow get rid of how the reqdata struct
+  is used, as it is too error-prone.
+- Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out
+  that specifying a proxy with a trailing slash didn't work (unless it also
+  contained a port number).
+
+Patrick M (15 October 2007)
+- Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again
+  and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode.
+
+Patrick M (12 October 2007)
+- Added per-protocol callback static tables, replacing callback ptr storage
+  in the connectdata structure by a single handler table ptr.
+
+Dan F (11 October 2007)
+- Fixed the -l option of runtests.pl
+
+- Added support for skipping tests based on key words.
+
+Daniel S (9 October 2007)
+- Michal Marek removed the no longer existing return codes from the curl.1
+  man page.
+
+Daniel S (7 October 2007)
+- Known bug #47, which confused libcurl if doing NTLM auth over a proxy with
+  a response that was larger than 16KB is now improved slightly so that now
+  the restriction at 16KB is for the headers only and it should be a rare
+  situation where the response-headers exceed 16KB. Thus, I consider #47 fixed
+  and the header limitation is now known as known bug #48.
+
+Daniel S (5 October 2007)
+- Michael Wallner made the CULROPT_COOKIELIST option support a new magic
+  string: "FLUSH". Using that will cause libcurl to flush its cookies to the
+  CURLOPT_COOKIEJAR file.
+
+- The new file docs/libcurl/ABI describes how we view ABI breakages, soname
+  bumps and what the version number's significance to all that is.
+
+Daniel S (4 October 2007)
+- I enabled test 1009 and made the --local-port use a wide range to reduce the
+  risk of failures.
+
+- Kim Rinnewitz reported that --local-port didn't work with TFTP transfers.
+  This happened because the tftp code always uncondionally did a bind()
+  without caring if one already had been done and then it failed. I wrote a
+  test case (1009) to verify this, but it is a bit error-prone since it will
+  have to pick a fixed local port number and since the tests are run on so
+  many different hosts in different situations I'll add it in disabled state.
+
+Yang Tse (3 October 2007)
+- Fixed issue related with the use of ares_timeout() result.
+
+Daniel S (3 October 2007)
+- Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and
+  CURLOPT_OPENSOCKETDATA to set a callback that allows an application to
+  replace the socket() call used by libcurl. It basically allows the app to
+  change address, protocol or whatever of the socket.
+
+- I renamed the CURLE_SSL_PEER_CERTIFICATE error code to
+  CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made
+  this return code get used by the previous SSH MD5 fingerprint check in case
+  it fails.
+
+- Based on a patch brought by Johnny Luong, libcurl now offers
+  CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both
+  make the SCP or SFTP connection verify the remote host's md5 checksum of the
+  public key before doing a connect, to reduce the risk of a man-in-the-middle
+  attack.
+
+Daniel S (2 October 2007)
+- libcurl now handles chunked-encoded CONNECT responses
+
+Daniel S (1 October 2007)
+- Alex Fishman reported a curl_easy_escape() problem that was made the
+  function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a
+  signed / unsigned mistake in the code. I fixed it and added test case 543 to
+  verify.
+
+Daniel S (29 September 2007)
+- Immanuel Gregoire fixed a problem with persistent transfers over SFTP.
+
+Daniel S (28 September 2007)
+- Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
+  notifier callback(s).
+
+Dan F (26 September 2007)
+- Enabled a few more gcc warnings with --enable-debug.  Renamed a few
+  variables to avoid shadowing global declarations.
+
+Daniel S (26 September 2007)
+- Philip Langdale provided the new CURLOPT_POST301 option for
+  curl_easy_setopt() that alters how libcurl functions when following
+  redirects. It makes libcurl obey the RFC2616 when a 301 response is received
+  after a non-GET request is made. Default libcurl behaviour is to change
+  method to GET in the subsequent request (like it does for response code 302
+  - because that's what many/most browsers do), but with this CURLOPT_POST301
+  option enabled it will do what the spec says and do the next request using
+  the same method again. I.e keep POST after 301. 
+
+  The curl tool got this option as --post301
+
+  Test case 1011 and 1012 were added to verify.
+
+- Max Katsev reported that when doing a libcurl FTP request with
+  CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE
+  before it does SIZE which makes it less useful. I walked over the code and
+  made it do this properly, and added test case 542 to verify it.
+
+Daniel S (24 September 2007)
+- Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle
+  URLs ending with a slash properly (it should list the contents of that
+  directory). Test case 351 brought back and also test 1010 was added.
+
+Daniel S (21 September 2007)
+- Mark Davies fixed Negotiate authentication over proxy, and also introduced
+  the --proxy-negotiate command line option to allow a user to explicitly
+  select it.
+
+Daniel S (19 September 2007)
+- Rob Crittenden provided an NSS update with the following highlights:
+
+  o It looks for the NSS database first in the environment variable SSL_DIR,
+    then in /etc/pki/nssdb, then it initializes with no database if neither of
+    those exist.
+
+  o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be
+    loaded, including the ca-bundle. If it is not available then only
+    certificates already in the NSS database are used.
+
+  o Tries to detect whether a file or nickname is being passed in so the right
+    thing is done
+
+  o Added a bit of code to make the output more like the OpenSSL module,
+    including displaying the certificate information when connecting in
+    verbose mode
+
+  o Improved handling of certificate errors (expired, untrusted, etc)
+
+  The libnsspem.so PKCS#11 module is currently only available in Fedora
+  8/rawhide. Work will be done soon to upstream it. The NSS module will work
+  with or without it, all that changes is the source of the certificates and
+  keys.
+
+Daniel S (18 September 2007)
+- Immanuel Gregoire pointed out that public key SSH auth failed if no
+  public/private key was specified and there was no HOME environment variable,
+  and then it didn't continue to try the other auth methods. Now it will
+  instead try to get the files id_dsa.pub and id_dsa from the current
+  directory if none of the two conditions were met.
+
+Dan F (17 September 2007)
+- Added hooks to the test suite to make it possible to test a curl running
+  on a remote host.
+
+- Changed some FTP tests to validate the format of the PORT and EPRT commands
+  sent by curl, if not the addresses themselves.
+
+Daniel S (15 September 2007)
+- Michal Marek made libcurl automatically append ";type=<a|i>" when using HTTP
+  proxies for FTP urls.
+
+- Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3
+  support on Windows.
+
+Dan F (13 September 2007)
+- Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and
+  fixed some AC_SUBST configure entries.
+
+Version 7.17.0 (13 September 2007)
+
+Daniel S (12 September 2007)
+- Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed
+  out a problem with doing an empty upload over FTP on a re-used connection.
+  I added test case 541 to reproduce it and to verify the fix.
+
+- I noticed while writing test 541 that the FTP code wrongly did a CWD on the
+  second transfer as it didn't store and remember the "" path from the
+  previous transfer so it would instead CWD to the entry path as stored. This
+  worked, but did a superfluous command. Thus, test case 541 now also verifies
+  this fix.
+
+Dan F (5 September 2007)
+- Added test case 1007 to test permission problem when uploading with TFTP
+  (to validate bug #1790403).
+
+- TFTP now reports the "not defined" TFTP error code 0 as an error,
+  not success.
+
+Daniel S (5 September 2007)
+- Continued the work on a fix for #1779054
+  (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August
+  24 was not complete (either) but could accidentally "forget" parts of a
+  server response which led to faulty server response time-out errors.
+
+Dan F (5 September 2007)
+- Minix doesn't support getsockopt on UDP sockets or send/recv on TCP
+  sockets.
+
+Dan F (31 August 2007)
+- Made some of the error strings returned by the *strerror functions more
+  generic, and more consistent with each other.
+
+- Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants,
+  creating macros for backward compatibility:
+
+    CURLFTPSSL_NONE => CURLUSESSL_NONE
+    CURLFTPSSL_TRY => CURLUSESSL_TRY
+    CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL
+    CURLFTPSSL_ALL => CURLUSESSL_ALL
+    CURLFTPSSL_LAST => CURLUSESSL_LAST
+
+Dan F (30 August 2007)
+- Renamed several libcurl error codes and options to make them more general
+  and allow reuse by multiple protocols. Several unused error codes were
+  removed.  In all cases, macros were added to preserve source (and binary)
+  compatibility with the old names.  These macros are subject to removal at
+  a future date, but probably not before 2009.  An application can be
+  tested to see if it is using any obsolete code by compiling it with the
+  CURL_NO_OLDIES macro defined.
+
+  The following unused error codes were removed:
+
+    CURLE_BAD_CALLING_ORDER
+    CURLE_BAD_PASSWORD_ENTERED
+    CURLE_FTP_CANT_RECONNECT
+    CURLE_FTP_COULDNT_GET_SIZE
+    CURLE_FTP_COULDNT_SET_ASCII
+    CURLE_FTP_USER_PASSWORD_INCORRECT
+    CURLE_FTP_WEIRD_USER_REPLY
+    CURLE_FTP_WRITE_ERROR
+    CURLE_LIBRARY_NOT_FOUND
+    CURLE_MALFORMAT_USER
+    CURLE_OBSOLETE
+    CURLE_SHARE_IN_USE
+    CURLE_URL_MALFORMAT_USER
+
+  The following error codes were renamed:
+
+    CURLE_FTP_ACCESS_DENIED =>      CURLE_REMOTE_ACCESS_DENIED
+    CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE
+    CURLE_FTP_SSL_FAILED =>         CURLE_USE_SSL_FAILED
+    CURLE_FTP_QUOTE_ERROR =>        CURLE_QUOTE_ERROR
+    CURLE_TFTP_DISKFULL =>          CURLE_REMOTE_DISK_FULL
+    CURLE_TFTP_EXISTS =>            CURLE_REMOTE_FILE_EXISTS
+    CURLE_HTTP_RANGE_ERROR =>       CURLE_RANGE_ERROR 
+
+  The following options were renamed:
+
+    CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD 
+    CURLOPT_FTPAPPEND =>    CURLOPT_APPEND
+    CURLOPT_FTPLISTONLY =>  CURLOPT_DIRLISTONLY
+    CURLOPT_FTP_SSL =>      CURLOPT_USE_SSL
+
+  A few more changes will take place with the next SONAME bump of the
+  library.  These are documented in docs/TODO
+
+- Documented some newer error codes in libcurl-error(3)
+
+- Added more accurate error code returns from SFTP operations.  Added test
+  case 615 to test an SFTP upload failure.
+
+Dan F (28 August 2007)
+- Some minor internal type and const changes based on a splint scan.
+
+Daniel S (24 August 2007)
+- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
+  out that libcurl didn't deal with large responses from server commands, when
+  the single response was consisting of multiple lines but of a total size of
+  16KB or more. Dan Fandrich improved the ftp test script and provided test
+  case 1006 to repeat the problem, and I fixed the code to make sure this new
+  test case runs fine.
+
+Patrick M (23 August 2007)
+- OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*.
+  See packages/OS400/README.OS400.
+
+Daniel S (23 August 2007)
+- Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed
+  out that doing first a file:// upload and then an FTP upload crashed libcurl
+  or at best caused furious valgrind complaints. Fixed now!
+
+Daniel S (22 August 2007)
+- Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
+  out that libcurl didn't deal with very long (>16K) FTP server response lines
+  properly. Starting now, libcurl will chop them off (thus the client app will
+  not get the full line) but survive and deal with them fine otherwise. Test
+  case 1003 was added to verify this.
+
+Daniel S (20 August 2007)
+- Based on a patch by Christian Vogt, the FTP code now sets the upcoming
+  download transfer size much earlier to be possible to get read with
+  CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a
+  similar spirit to the HTTP size change from August 11 2007.
+
+Daniel S (18 August 2007)
+- Robson Braga Araujo filed bug report #1776232
+  (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling
+  Curl_client_write(), passing on a const string that the caller may not
+  modify and yet it does (on some platforms).
+
+- Robson Braga Araujo filed bug report #1776235
+  (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY
+  on a directory would do a "SIZE (null)" request. This is now fixed and test
+  case 1000 was added to verify.
+
+Daniel S (17 August 2007)
+- Song Ma provided a patch that cures a problem libcurl has when doing resume
+  HTTP PUT using Digest authentication. Test case 5320 and 5322 were also
+  added to verify the functionality.
+
+Daniel S (14 August 2007)
+- Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag
+  NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't
+  UNICODE encode the strings it packs into the NTLM authenticate packet.
+
+Daniel S (11 August 2007)
+- Allen Pulsifer provided a patch that makes libcurl set the expected download
+  size earlier when doing HTTP downloads, so that applications and the
+  progress meter etc know get the info earlier in the flow than before.
+
+- Patrick Monnerat modified the LDAP code and approach in curl. Starting now,
+  the configure script checks for openldap and friends and we link with those
+  libs just like we link all other third party libraries, and we no longer
+  dlopen() those libraries. Our private header file lib/ldap.h was renamed to
+  lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix)
+  just before this commit, just in case.
+
+Dan F (8 August 2007)
+- Song Ma noted a zlib memory leak in the illegal compressed header
+  countermeasures code path.
+
+Daniel S (4 August 2007)
+- Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on
+  non-ASCII systems.
+
+Daniel S (3 August 2007)
+- I cut out support for libssh2 versions older than 0.16 to make our code a
+  lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define
+  that 1) didn't work properly since it was >32 bits and 2) is removed in
+  libssh2 0.16...
+
+Daniel S (2 August 2007)
+- Scott Cantor filed bug report #1766320
+  (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl
+  code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and
+  CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be
+  passed in as longs, and that makes a difference on 64 bit architectures.
+
+- Dmitriy Sergeyev reported a regression: resumed file:// transfers broke
+  after 7.16.2. This is much due to the different treatment file:// gets
+  internally, but now I added test 231 to make it less likely to happen again
+  without us noticing!
+
+Daniel S (1 August 2007)
+- Patrick Monnerat and I modified libcurl so that now it *copies* all strings
+  passed to it with curl_easy_setopt()! Previously it has always just refered
+  to the data, forcing the user to keep the data around until libcurl is done
+  with it. That is now history and libcurl will instead clone the given
+  strings and keep private copies. This is also part of Patrick Monnerat's
+  OS/400 port.
+
+  Due to this being a somewhat interesting change API wise, I've decided to
+  bump the version of the upcoming release to 7.17.0. Older applications will
+  of course not notice this change nor do they have to care, but new
+  applications can be written to take advantage of this.
+
+- Greg Morse reported a problem with POSTing using ANYAUTH to a server
+  requiring NTLM, and he provided test code and a test server and we worked
+  out a bug fix. We failed to count sent body data at times, which then caused
+  internal confusions when libcurl tried to send the rest of the data in order
+  to maintain the same connection alive.
+
+Daniel S (31 July 2007)
+- Peter O'Gorman pointed out (and fixed) that the non-blocking check in
+  configure made libcurl use blocking sockets on AIX 4 and 5, while that
+  wasn't the intention.
+
+Daniel S (29 July 2007)
+- Jayesh A Shah filed bug report #1759542
+  (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious
+  problem with FTPS: libcurl closed the data connection socket and then later
+  in the flow it would call the SSL layer to do SSL shutdown which then would
+  use a socket that had already been closed - so if the application had opened
+  a new one in the mean time, libcurl could send gibberish that way! I worked
+  with Greg Zavertnik to properly diagnose and fix this. The fix affects code
+  for all SSL libraries we support, but it has only been truly verified to
+  work fine for the OpenSSL version. The others have only been code reviewed.
+
+Daniel S (23 July 2007)
+- Implemented the parts of Patrick Monnerat's OS/400 patch that introduces
+  support for the OS/400 Secure Sockets Layer library.
+
+Dan F (23 July 2007)
+- Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed
+  some few internal identifiers to avoid conflicts, which could be useful on
+  other platforms.
+
+Daniel S (22 July 2007)
+- HTTP Digest bug fix by Chris Flerackers:
+
+  Scenario
+
+  - Perfoming a POST request with body
+  - With authentication (only Digest)
+  - Re-using a connection
+
+  libcurl would send a HTTP POST with an Authorization header but without
+  body. Our server would return 400 Bad Request in that case (because
+  authentication passed, but the body was empty).
+
+  Cause
+
+  1) http_digest.c -> Curl_output_digest
+  - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is
+  filled in (and no errors)
+  - authp->done = TRUE if d->nonce is filled in
+  2) http.c -> Curl_http
+  - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL
+  3) http.c -> Curl_http, Curl_http_output_auth
+
+  So what happens is that Curl_output_digest cannot yet update the
+  Authorization header (allocptr.userpwd) which results in authhost->done=0 ->
+  authhost->multi=1 -> conn->bits.authneg = TRUE.  The body is not
+  added. *However*, allocptr.userpwd is still used when building the request
+
+- Added test case 354 that makes a simple FTP retrieval without password, which
+  verifies the bug fix in #1757328.
+
+Daniel S (21 July 2007)
+- To allow more flexibility in FTP test cases, I've removed the enforced states
+  from the test server code as they served no real purpose. The test server
+  is here to serve for the test cases, not to attempt to function as a real
+  server! While at it, I modified test case 141 to better test and verify
+  curl -I on a single FTP file.
+
+Daniel S (20 July 2007)
+- James Housley fixed the SFTP PWD command to work.
+
+- Ralf S. Engelschall filed bug report #1757328
+  (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It
+  turns out we broke login to FTP servers that don't require (nor understand)
+  PASS after the USER command. The breakage was done as part of the krb5
+  commit so a krb-using person needs to verify that the current version now
+  works or if we need to fix it (in a different way of course).
+
+Dan F (17 July 2007)
+- Fixed test cases 613 and 614 by improving the log postprocessor to handle
+  a new directory listing format that newer libssh2's can provide.  This
+  is probably NOT sufficient to handle all directory listing formats that
+  server's can provide, and should be revisited.
+
+Daniel S (17 July 2007)
+- Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in
+  two places.
+
+- Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
+  a control connection that was deemed "dead" to yet be re-used in a following
+  request.
+
+Daniel S (13 July 2007)
+- Colin Hogben filed bug report #1750274
+  (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the
+  case where libcurl did a connect attempt to a non-listening port and didn't
+  provide a human readable error string back.
+
+- Daniel Cater fixes:
+  1 - made 'make vc8' work on windows.
+  2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't
+      define the symbols for backwards source compatibility)
+  3 - updated libcurl-errors.3
+  4 - added CURL_DISABLE_TFTP to docs/INSTALL
+
+Daniel S (12 July 2007)
+- Made the krb5 code build with Heimdal's GSSAPI lib.
+
+Dan F (12 July 2007)
+- Compile most of the example apps in docs/examples when doing a 'make check'.
+  Fixed some compile warnings and errors in those examples.
+
+- Removed the example program ftp3rdparty.c since libcurl doesn't support
+  3rd party FTP transfers any longer.
+
+Daniel S (12 July 2007)
+- Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation
+  could in fact get stuck in an endless loop.
+
+- Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation:
+  fail to connect if there is no Common Name field found in the remote cert.
+  We should deprecate the support for this set to 1 anyway soon, since the
+  feature is pointless and most likely never really used by anyone.
+
+Daniel S (11 July 2007)
+- Shmulik Regev fixed a bug with transfer-encoding skipping during the 407
+  error pages for proxy authentication.
+
+- Giancarlo Formicuccia reported and fixed a problem with a closed connection
+  to a proxy during CONNECT auth negotiation.
+
+Dan F (10 July 2007)
+- Fixed a curl memory leak reported by Song Ma with a modified version
+  of the patch he suggested.  Added his test case as test289 to verify.
+
+- Force the time zone to GMT in the cookie tests in case the user is
+  using one of the so-called 'right' time zones that take into account
+  leap seconds, which causes the tests to fail (as reported by
+  Daniel Black in bug report #1745964).
+
+Version 7.16.4 (10 July 2007)
+
+Daniel S (10 July 2007)
+- Kees Cook notified us about a security flaw
+  (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to
+  properly reject some outdated or not yet valid server certificates when
+  built with GnuTLS. Kees also provided the patch.
+
+James H (5 July 2007)
+- Gavrie Philipson provided a patch that will use a more specific error
+  message for an scp:// upload failure.  If libssh2 has his matching
+  patch, then the error message return by the server will be used instead
+  of a more generic error.
+
+Daniel S (1 July 2007)
+- Thomas J. Moore provided a patch that introduces Kerberos5 support in
+  libcurl. This also makes the options change name to --krb (from --krb4) and
+  CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still 
+
+- Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5
+  proxy.
+
+Daniel S (27 June 2007)
+- James Housley: Add two new options for the SFTP/SCP/FILE protocols:
+  CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the
+  premissions for files and directories created on the remote
+  server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and
+  CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755
+
+- I corrected the 10-at-a-time.c example and applied a patch for it by James
+  Bursa.
+
+Daniel S (26 June 2007)
+- Robert Iakobashvili re-arranged the internal hash code to work with a custom
+  hash function for different hashes, and also expanded the default size for
+  the socket hash table used in multi handles to greatly enhance speed when
+  very many connections are added and the socket API is used.
+
+- James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory
+  listings as well
+
+Daniel S (25 June 2007)
+- Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or
+  chunked encoding (that also lacks "Connection: close"). It now simply
+  assumes that the connection WILL be closed to signal the end, as that is how
+  RFC2616 section 4.4 point #5 says we should behave.
+  
+Version 7.16.3 (25 June 2007)
+
+Daniel S (23 June 2007)
+- As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
+  http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do
+  no-body requests on FTP files on re-used connections properly, or at least
+  it didn't provide the info back in the header callback properly in the
+  subsequent requests.
+
+Daniel S (21 June 2007)
+- Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
+  tool reports and it was indeed a legitimate one and it is one fixed. It was
+  a use of a share without doing the proper locking first.
+  
+Daniel S (20 June 2007)
+- Adam Piggott filed bug report #1740263
+  (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
+  getting a large amount of URLs with curl, they were fetched slower and
+  slower... which turned out to be because the --libcurl data collecting which
+  wrongly always was enabled, but no longer is...
+
+Daniel S (18 June 2007)
+- Robson Braga Araujo filed bug report #1739100
+  (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl
+  could not actually list the contents of the root directory of a given FTP
+  server if the login directory isn't root. I fixed the problem and added
+  three test cases (one is disabled for now since I identified KNOWN_BUGS #44,
+  we cannot use --ftp-method nocwd and list ftp directories).
+
+Daniel S (14 June 2007)
+- Shmulik Regev:
+
+  I've encountered (and hopefully fixed) a problem involving proxy CONNECT
+  requests and easy handles state management. The problem isn't simple to
+  reproduce since it depends on socket state. It only manifests itself when
+  working with non-blocking sockets.
+
+  Here is the scenario:
+
+  1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and
+  calls Curl_protocol_connect
+
+  2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function
+  returns and conn->bits.tunnel_connecting is TRUE
+
+  3. when the call to Curl_protocol_connect returns the protocol_connect flag
+  is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which
+  isn't correct if a proxy is used.  Rather CURLM_STATE_WAITPROXYCONNECT
+  should be used.
+
+  I discovered this while performing an HTTPS request through a proxy (squid)
+  on my local network. The problem caused openssl to fail as it read the proxy
+  response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL
+  handshake (the exact openssl error was 'wrong ssl version' but this isn't
+  very important)
+
+- Dave Vasilevsky filed bug report #1736875
+  (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan
+  Fandrich mentioned a related build problem on the libcurl mailing list:
+  http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same
+  reason: the definitions of the POLL* defines and the pollfd struct in the
+  libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H.
+
+Daniel S (13 June 2007)
+- Tom Regner provided a patch and worked together with James Housley, so now
+  CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP
+  ones.
+
+- Rich Rauenzahn filed bug report #1733119
+  (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the
+  fix.  The problem is that for 64bit HPUX builds, several socket-related
+  functions would still assume int (32 bit) arguments and not socklen_t (64
+  bit) ones.
+
+Daniel S (12 June 2007)
+- James Housley brought his revamped SSH code that is state-machine driven to
+  really take advantage of the now totally non-blocking libssh2 (in CVS).
+
+Dan F (8 June 2007)
+- Incorporated Daniel Black's test706 and test707 SOCKS test cases.
+
+- Fixed a few problems when starting the SOCKS server.
+
+- Reverted some recent changes to runtests.pl that weren't compatible with
+  perl 5.0.
+
+- Fixed the test harness so that it actually kills the ssh being used as
+  the SOCKS server.
+
+Daniel S (6 June 2007)
+- -s/--silent can now be used to toggle off the silence again if used a second
+  time.
+
+Daniel S (5 June 2007)
+- Added Daniel Black's work that adds the first few SOCKS test cases. I also
+  fixed two minor SOCKS problems to make the test cases run fine.
+
+Daniel S (31 May 2007)
+- Feng Tu made (lib)curl support "upload" resuming work for file:// URLs.
+
+Daniel S (30 May 2007)
+- I modified the 10-at-a-time.c example to transfer 500 downloads in parallel
+  with a c-ares enabled build only to find that it crashed miserably, and this
+  was due to some select()isms left in the code. This was due to API
+  restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no
+  longer the case so now libcurl runs much better with c-ares and the multi
+  interface with > 1024 file descriptors in use.
+
+  Extra note: starting now we require c-ares 1.4.0 for asynchronous name
+  resolves.
+
+- Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting
+  the maximum size of the connection cache maximum size of the multi handle.
+
+Daniel S (27 May 2007)
+- When working with a problem Stefan Becker had, I found an off-by-one buffer
+  overwrite in Curl_select(). While fixing it, I also improved its performance
+  somewhat by changing calloc to malloc and breaking out of a loop earlier
+  (when possible).
+
+Daniel S (25 May 2007)
+- Rob Crittenden fixed bug #1705802
+  (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel
+  Black identifying several FTP-SSL test cases fail when we build libcurl with
+  NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS.
+
+Daniel S (24 May 2007)
+- Song Ma filed bug report #1724016
+  (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading
+  glob-ranges for TFTP was broken in CVS. Fixed now.
+  
+- 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
+  pointed out that the warnf() function in the curl tool didn't properly deal
+  with the cases when excessively long words were used in the string to chop
+  up.
+
+Daniel S (22 May 2007)
+- Andre Guibert de Bruet fixed a memory leak in the function that verifies the
+  peer's name in the SSL certificate when built for OpenSSL. The leak happens
+  for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN
+  name from UTF8. He also fixed a leak when PKCS #12 parsing failed.
+
+Daniel S (18 May 2007)
+- Feng Tu reported that curl -w did wrong on TFTP transfers in bug report
+  #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
+  transfer-related info "variables" were indeed overwritten with zeroes
+  wrongly and have now been adjusted. The upload size still isn't accurate.
+
+Daniel S (17 May 2007)
+- Feng Tu pointed out a division by zero error in the TFTP connect timeout
+  code for timeouts less than five seconds, and also provided a fix for it.
+  Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392)
+
+Dan F (16 May 2007)
+- Added support for compiling under Minix 3.1.3 using ACK.
+
+Dan F (14 May 2007)
+- Added SFTP directory listing test case 613.
+
+- Added support for quote commands before a transfer using SFTP and test
+  case 614.
+
+- Changed the post-quote commands to occur after the transferred file is
+  closed.
+
+- Allow SFTP quote commands chmod, chown, chgrp to set a value of 0.
+
+Dan F (9 May 2007)
+- Kristian Gunstone fixed a problem where overwriting an uploaded file with
+  sftp didn't truncate it first, which would corrupt the file if the new
+  file was shorter than the old.
+
+Dan F (8 May 2007)
+- Added FTPS test cases 406 and 407
+
+Daniel S (8 May 2007)
+- CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is
+  because I just made SCP uploads return this value if the file size of
+  the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to
+  reflect this news, and a define for the old name was added to the public
+  header file.
+
+Daniel S (7 May 2007)
+- James Bursa fixed a bug in the multi handle code that made the connection
+  cache grow a bit too much, beyond the normal 4 * easy_handles.
+
+Daniel S (2 May 2007)
+- Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0
+  when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is
+  not very nice if the client wants to be able to use _either_ a HTTP 1.1
+  server or one within the aliases list... so starting now, libcurl will
+  simply consider 200-alias matches the to be HTTP 1.0 compliant.
+
+- Tobias Rundström reported a problem they experienced with xmms2 and recent
+  libcurls, which turned out to be the 25-nov-2006 change which treats HTTP
+  responses without Content-Length or chunked encoding as without bodies. We
+  now added the conditional that the above mentioned response is only without
+  body if the response is HTTP 1.1.
+
+- Jeff Pohlmeyer improved the hiperfifo.c example to use the
+  CURLMOPT_TIMERFUNCTION callback option.
+
+- Set the timeout for easy handles to expire really soon after addition or
+  when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform,
+  to make applications using only curl_multi_socket() to properly function
+  when adding easy handles "on the fly". Bug report and test app provided by
+  Michael Wallner.
+
+Dan F (30 April 2007)
+- Improved the test harness to allow running test servers on other than
+  the default port numbers, allowing more than one test suite to run
+  simultaneously on the same host.
+
+Daniel S (28 April 2007)
+- Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before,
+  since it then inits libgcrypt and libgcrypt is being evil and EXITS the
+  application if it fails to get a fine random seed. That's really not a nice
+  thing to do by a library.
+
+- Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had
+  been removed from a multi handle, and then fixed another flaw that prevented
+  curl_easy_duphandle() to work even after the first fix - the handle was
+  still marked as using the multi interface.
+
+Daniel S (26 April 2007)
+- Peter O'Gorman found a problem with SCP downloads when the downloaded file
+  was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
+  out" all data from libssh2. The effect being that libcurl would hang on the
+  socket waiting for data when libssh2 had in fact already read it all...
+
+Dan F (25 April 2007)
+- Added support in runtests.pl for "!n" test numbers to disable individual
+  tests.  Changed -t to only keep log files around when -k is specified,
+  to have the same behaviour as without -t.
+
+Daniel S (25 April 2007)
+- Sonia Subramanian brought our attention to a problem that happens if you set
+  the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection
+  in the connection cache is closed to make room for the new one when you call
+  curl_easy_perform(). It would then wrongly free range-related data in the
+  connection close funtion.
+
+Yang Tse (25 April 2007)
+- Steve Little fixed compilation on VMS 64-bit mode
+
+Daniel S (24 April 2007)
+- Robert Iakobashvili made the 'master_buffer' get allocated first once it is
+  can/will be used as it then makes the common cases save 16KB of data for each
+  easy handle that isn't used for pipelining.
+
+Dan F (23 April 2007)
+- Added <postcheck> support to the test harness.
+
+- Added tests 610-612 to test more SFTP post-quote commands.
+
+Daniel S (22 April 2007)
+- Song Ma's warning if -r/--range is given with a "bad" range, also noted in
+  the man page now.
+
+- Daniel Black filed bug #1705177
+  (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl
+  --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS
+  was found and used.
+
+Daniel S (21 April 2007)
+- Daniel Black filed bug #1704675
+  (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free
+  problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on
+  closedown after a failure and a bad #ifdef for NSS when closing down SSL.
+
+Yang Tse (20 April 2007)
+- Save one call to curlx_tvnow(), which calls gettimeofday(), in each of
+  Curl_socket_ready(), Curl_poll() and Curl_select() when these are called
+  with a zero timeout or a timeout value indicating a blocking call should
+  be performed.
+
+Daniel S (18 April 2007)
+- James Housley made SFTP uploads use libssh2's non-blocking API
+
+- Prevent the internal progress meter from updating more frequently than once
+  per second.
+
+Dan F (17 April 2007)
+- Added test cases 296, 297 and 298 to test --ftp-method handling
+
+Daniel S (16 April 2007)
+- Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a
+  function that deprecates the curl_multi_socket() function. Using the new
+  function the application tell libcurl what action that was found in the
+  socket that it passes in. This gives a significant performance boost as it
+  allows libcurl to avoid a call to poll()/select() for every call to
+  curl_multi_socket*().
+
+  I added a define in the public curl/multi.h header file that will make your
+  existing application automatically use curl_multi_socket_action() instead of
+  curl_multi_socket() when you recompile. But of course you'll get better
+  performance if you adjust your code manually and actually pass in the
+  correct action bitmask to this function.
+
+Daniel S (14 April 2007)
+- Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test
+  suite to make stunnel run better in some (most?) environments.
+
+Dan F (13 April 2007)
+- Added test cases 294 and 295 to test --ftp-account handling
+
+- Improved handling of out of memory in ftp.
+
+Yang Tse (13 April 2007)
+- Fix test case 534 which started to fail 2007-04-13 due to the existance
+  of a new host on the net with the same silly domain the test was using
+  for a host which was supposed not to exist.
+
+Daniel S (12 April 2007)
+- Song Ma found a memory leak in the if2ip code if you pass in an interface
+  name longer than the name field of the ifreq struct (typically 6 bytes), as
+  then it wouldn't close the used dummy socket. Bug #1698974
+  (http://curl.haxx.se/bug/view.cgi?id=1698974)
+
+Version 7.16.2 (11 April 2007)
+
+Yang Tse (10 April 2007)
+- Ravi Pratap provided some fixes for HTTP pipelining
+
+- configure script will ignore --enable-sspi option for non-native Windows.
+
+Daniel S (9 April 2007)
+- Nick Zitzmann did ssh.c cleanups
+
+Daniel S (3 April 2007)
+- Rob Jones fixed better #ifdef'ing for a bunch of #include lines.
+
+Daniel S (2 April 2007)
+- Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The
+  accepted commands are as follows:
+
+  chgrp (gid) (path)
+    Changes the group ID of the file or directory at (path) to (gid). (gid)
+    must be a number.
+
+  chmod (perms) (path)
+    Changes the permissions of the file or directory at (path) to
+    (perms). (perms) must be a number in the format used by the chmod Unix
+    command.
+
+  chown (uid) (path)
+    Changes the user ID of the file or directory at (path) to (uid). (uid)
+    must be a number.
+
+  ln (source) (dest)
+    Creates a symbolic link at (dest) that points to the file located at
+    (source).
+
+  mkdir (path)
+    Creates a new directory at (path).
+
+  rename (source) (dest)
+    Moves the file or directory at (source) to (dest).
+
+  rm (path)
+    Deletes the file located at (path).
+
+  rmdir (path)
+    Deletes the directory located at (path). This command will raise an error
+    if the directory is not empty.
+
+  symlink (source) (dest)
+    Same as ln.
+
+Daniel S (1 April 2007)
+- Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many
+  easy handles are added to a multi handle, by avoiding the looping over all
+  the handles to find which one to remove.
+
+- Matt Kraai provided a patch that makes curl build on QNX 6 fine again.
+
+Daniel S (31 March 2007)
+- Fixed several minor issues detected by the coverity.com scanner.
+
+- "Pixel" fixed a problem that appeared when you used -f with user+password
+  embedded in the URL.
+
+Dan F (29 March 2007)
+- Don't tear down the ftp connection if the maximum filesize was exceeded
+  and added tests 290 and 291 to check.
+
+- Added ftps upload and SSL required tests 401 and 402.
+
+- Send an EOF message before closing an SCP channel, as recommended by
+  RFC4254. Enable libssh2 tracing when ssh debugging is turned on.
+
+Yang Tse (27 March 2007)
+- Internal function Curl_select() renamed to Curl_socket_ready()
+
+  New Internal wrapper function Curl_select() around select (2), it
+  uses poll() when a fine poll() is available, so now libcurl can be
+  built without select() support at all if a fine poll() is available.
+
+Daniel S (25 March 2007)
+- Daniel Johnson fixed multi code to traverse the easy handle list properly.
+  A left-over bug from the February 21 fix.
+
+Dan F (23 March 2007)
+- Added --pubkey option to curl and made --key also work for SCP/SFTP,
+  plus made --pass work on an SSH private key as well.
+
+- Changed the test harness to attempt to gracefully shut down servers
+  before resorting to the kill -9 hammer.
+
+- Added test harness infrastructure to support scp/sftp tests, using
+  OpenSSH as the server.
+
+- Fixed a memory leak when specifying a proxy with a file: URL.
+
+Yang Tse (20 March 2007)
+- Fixed: When a signal was caught awaiting for an event using Curl_select()
+  or Curl_poll() with a non-zero timeout both functions would restart the
+  specified timeout. This could even lead to the extreme case that if a
+  signal arrived with a frecuency lower to the specified timeout neither
+  function would ever exit.
+
+  Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in
+  Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR
+  defined both functions will return as soon as a signal is caught. Use it
+  at your own risk, all calls to these functions in the library should be
+  revisited and checked before fully supporting this feature.
+
+Yang Tse (19 March 2007)
+- Bryan Henderson fixed the progress function so that it can get called more
+  frequently allowing same calling frecuency for the client progress callback.
+  
+Dan F (15 March 2007)
+- Various memory leaks plugged and NULL pointer fixes made in the ssh code.
+
+Daniel (15 March 2007)
+- Nick made the curl tool accept globbing ranges that only is one number, i.e
+  you can now use [1-1] without curl complaining.
+
+Daniel (10 March 2007)
+- Eygene Ryabinkin:
+
+  The problem is the following: when we're calling Curl_done and it decides to
+  keep the connection opened ('left intact'), then the caller is not notified
+  that the connection was done via the NULLifying of the pointer, so some easy
+  handle is keeping the pointer to this connection.
+
+  Later ConnectionExists can select such connection for reuse even if we're
+  not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is
+  false and we can reuse this connection for another easy handle. But thus the
+  connection will be shared between two easy handles if the handle that wants
+  to take the ownership is not the same as was not notified of the connection
+  was done in Curl_done. And when some of these easy handles will get their
+  connection really freed the another one will still keep the pointer.
+
+  My fix was rather trivial: I just added the NULLification to the 'else'
+  branch in the Curl_done. My tests with Git and ElectricFence showed no
+  problems both for HTTP pulling and cloning. Repository size is about 250 Mb,
+  so it was a considerable amount of Curl's work.
+
+Dan F (9 March 2007)
+- Updated the test harness to add a new "crypto" feature check and updated the
+  appropriate test case to use it.  For now, this is treated the same as the
+  "SSL" feature because curl doesn't list it separately.
+
+Daniel (9 March 2007)
+- Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
+
+- Robert A. Monat improved the maketgz and VC6/8 generating to set the correct
+  machine type too.
+
+- Justin Fletcher fixed a file descriptor leak in the curl tool when trying to
+  upload a file it couldn't open. Bug #1676581
+  (http://curl.haxx.se/bug/view.cgi?id=1676581)
+
+Dan F (9 March 2007)
+- Updated the test harness to check for protocol support before running each
+  test, fixing KNOWN_BUGS #11.
+
+Dan F (7 March 2007)
+- Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test
+  harness.  It is very limited as it supports only ftps:// URLs with
+  --ftp-ssl-control specified, which implicitly encrypts the control
+  channel but not the data channels.  That allows stunnel to be used with
+  an unmodified ftp server in exactly the same way that the test https
+  server is set up.
+
+Dan F (7 March 2007)
+- Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and
+  unencrypted data connections.
+
+Dan F (6 March 2007)
+- Fixed a couple of improper pointer uses detected by valgrind in test
+  cases 181 & 216.
+
+Daniel (2 March 2007)
+- Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8
+  makefiles that are included in the source release archives, generated from
+  the Makefile.vc6 files by the maketgz script. I also modified the root
+  Makefile to have a VC variable that defaults to vc6 but can be overridden to
+  allow it to be used for vc8 as well. Like this:
+
+    nmake VC=vc8 vc
+
+Daniel (27 February 2007)
+- Hang Kin Lau found and fixed: When I use libcurl to connect to an https
+  server through a proxy and have the remote https server port set using the
+  CURLOPT_PORT option, protocol gets reset to http from https after the first
+  request.
+  User defined URL was modified internally by libcurl and subsequent reuse of
+  the easy handle may lead to connection using a different protocol (if not
+  originally http).
+  I found that libcurl hardcoded the protocol to "http" when it tries to
+  regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as
+  follows and it's working fine so far
+
+Daniel (25 February 2007)
+- Adam D. Moss made the HTTP CONNECT procedure less blocking when used from
+  the multi interface. Note that it still does a part of the connection in a
+  blocking manner.
+
+Daniel (23 February 2007)
+- Added warning outputs if the command line uses more than one of the options
+  -v, --trace and --trace-ascii, since it could really confuse the user.
+  Clarified this fact in the man page.
+
+Daniel (21 February 2007)
+- Ravi Pratap provided work on libcurl making pipelining more robust and
+  fixing some bugs:
+  o Don't mix GET and POST requests in a pipeline
+  o Fix the order in which requests are dispatched from the pipeline
+  o Fixed several curl bugs with pipelining when the server is returning
+    chunked encoding:
+    * Added states to chunked parsing for final CRLF
+    * Rewind buffer after parsing chunk with data remaining
+    * Moved chunked header initializing to a spot just before receiving
+      headers
+
+Daniel (20 February 2007)
+- Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle
+  active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command
+  line option.
+
+Daniel (19 February 2007)
+- Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl.
+
+- Shmulik Regev found a memory leak in re-used HTTPS connections, at least
+  when the multi interface was used.
+
+- Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and
+  5).
+
+Daniel (18 February 2007)
+- Jeff Pohlmeyer identified two problems: first a rather obscure problem with
+  the multi interface and connection re-use that could make a
+  curl_multi_remove_handle() ruin a pointer in another handle.
+
+  The second problem was less of an actual problem but more of minor quirk:
+  the re-using of connections wasn't properly checking if the connection was
+  marked for closure.
+
+Daniel (16 February 2007)
+- Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting
+  CURLOPT_RANGE back to no range on an easy handle when using FTP.
+
+Dan F (14 February 2007)
+- Fixed curl-config --libs so it doesn't list unnecessary libraries (and
+  therefore introduce unnecessary dependencies) when it's not needed.
+  Also, don't bother adding a library path of /usr/lib
+
+Daniel (13 February 2007)
+- The default password for anonymous FTP connections is now changed to be
+  "ftp@example.com".
+
+- Robert A. Monat made libcurl build fine with VC2005 - it doesn't have
+  gmtime_r() like the older VC versions. He also made use of some machine-
+  specific defines to differentiate the "OS" define.
+
+Daniel (12 February 2007)
+- Rob Crittenden added support for NSS (Network Security Service) for the
+  SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/
+
+  This is the fourth supported library for TLS/SSL that libcurl supports!
+
+- Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent
+  to the debug callback.
+
+- Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and
+  CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's
+  internal decoding of content or transfer encoded content. This may be
+  preferable in cases where you use libcurl for proxy purposes or similar. The
+  command line tool got a --raw option to disable both at once.
+
+- release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP
+  define set to hold the exact date and time of when the tarball was built, as
+  a human readable string using the UTC time zone.
+  
+- Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle
+  that has an easy handle present in the "closure" list pending closure.
+
+Daniel (6 February 2007)
+- Regular file downloads wiht SFTP and SCP are now done using the non-blocking
+  API of libssh2, if the libssh2 headers seem to support them. This will make
+  SCP and SFTP much more responsive and better libcurl citizens when used with
+  the multi interface etc.
+
+Daniel (5 February 2007)
+- Michael Wallner added support for CURLOPT_TIMEOUT_MS and
+  CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with
+  millisecond resolution. The only restriction to that is the alarm()
+  (sometimes) used to abort name resolves as that uses full seconds. I fixed
+  the FTP response timeout part of the patch.
+
+  Internally we now count and keep the timeouts in milliseconds but it also
+  means we multiply set timeouts with 1000. The effect of this is that no
+  timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
+  equals 24.86 days.  We probably couldn't before either since the code did
+  *1000 on the timeout values on several places already.
+
+Daniel (3 February 2007)
+- Yang Tse fixed the cookie expiry date in several test cases that started to
+  fail since they used "1 feb 2007"...
+
+- Manfred Schwarb reported that socks5 support was broken and help us pinpoint
+  the problem. The code now tries harder to use httproxy and proxy where
+  apppropriate, as not all proxies are HTTP...
+
+Version 7.16.1 (29 January 2007)
+
+Daniel (29 January 2007)
+- Michael Wallner reported that when doing a CONNECT with a custom User-Agent
+  header, you got _two_ User-Agent headers in the CONNECT request...! Added
+  test case 287 to verify the fix.
+
+Daniel (28 January 2007)
+- curl_easy_reset() now resets the CA bundle path correctly.
+
+- David McCreedy fixed the Curl command line tool for HTTP on non-ASCII
+  platforms.
+
+Daniel (25 January 2007)
+- Added the --libcurl [file] option to curl. Append this option to any
+  ordinary curl command line, and you will get a libcurl-using source code
+  written to the file that does the equivalent operation of what your command
+  line operation does!
+
+Dan F (24 January 2007)
+- Fixed a dangling pointer problem that prevented the http_proxy environment
+  variable from being properly used in many cases (and caused test case 63
+  to fail).
+
+Daniel (23 January 2007)
+- David McCreedy did NTLM changes mainly for non-ASCII platforms:
+
+  #1
+  There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT
+  defined.  I noticed this while testing various configurations.  Line 867 of
+  the current http_ntlm.c is a closing bracket for an if/else pair that only
+  gets compiled in if USE_NTLM2SESSION is defined.  But this closing bracket
+  wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was
+  defined.  Lines 198 and 140 of my patch wraps that closing bracket in an
+  #ifdef USE_NTLM2SESSION.
+
+  #2
+  I noticed several picky compiler warnings when DEBUG_ME is defined.  I've
+  fixed them with casting.  By the way, DEBUG_ME was a huge help in
+  understanding this code.
+
+  #3
+  Hopefully the last non-ASCII conversion patch for libcurl in a while.  I
+  changed the "NTLMSSP" literal to hex since this signature must always be in
+  ASCII.
+
+  Conversion code was strategically added where necessary.  And the
+  Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c
+  creates are NOT translated on non-ASCII platforms.
+
+Dan F (22 January 2007)
+- Converted (most of) the test data files into genuine XML.  A handful still
+  are not, due mainly to the lack of support for XML character entities
+  (e.g. & => &amp; ).  This will make it easier to validate test files using
+  tools like xmllint, as well as to edit and view them using XML tools.
+
+Daniel (16 January 2007)
+- Armel Asselin improved libcurl to behave a lot better when an easy handle
+  doing an FTP transfer is removed from a multi handle before completion. The
+  fix also fixed the "alive counter" to be correct on "premature removal" for
+  all protocols.
+
+Dan F (16 January 2007)
+- Fixed a small memory leak in tftp uploads discovered by curl's memory leak
+  detector.  Also changed tftp downloads to URL-unescape the downloaded
+  file name.
+
+Daniel (14 January 2007)
+- David McCreedy provided libcurl changes for doing HTTP communication on
+  non-ASCII platforms. It does add some complexity, most notably with more
+  #ifdefs, but I want to see this supported added and I can't see how we can
+  add it without the extra stuff added.
+
+- Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present,
+  libcurl would crash when trying to read a NULL pointer.
+
+Daniel (12 January 2007)
+- Toby Peterson found a nasty bug that prevented (lib)curl from properly
+  downloading (most) things that were larger than 4GB on 32 bit systems.  Matt
+  Witherspoon helped as narrow down the problem.
+
+Daniel (5 January 2007)
+- Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to
+  curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it
+  will make libcurl shutdown SSL/TLS after the authentication is done on a
+  FTP-SSL operation.
+
+Daniel (4 January 2007)
+- David McCreedy made changes to allow base64 encoding/decoding to work on
+  non-ASCII platforms.
+
+Daniel (3 January 2007)
+- Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store
+  downloaded data in two buffers, just to be able to deal with a special HTTP
+  pipelining case. That is now only activated for pipelined transfers. In
+  Matt's case, it showed as a considerable performance difference,
+
+Daniel (2 January 2007)
+- Victor Snezhko helped us fix bug report #1603712
+  (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate
+  (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken
+  on Windows (since 7.16.0, but that's when they were introduced as previous
+  to that the limiting logic was made in the application only and not in the
+  library). It was actually also broken on select()-based systems (as apposed
+  to poll()) but we haven't had any such reports. We now use select(), Sleep()
+  or delay() properly to sleep a while without waiting for anything input or
+  output when the rate limiting is activated with the easy interface.
+
+- Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs
+  to get built static. It has been mentioned before and was again brought to
+  our attention by Nathanael Nerode who filed debian bug report #405226
+  (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226).
+
 Daniel (29 December 2006)
 - Make curl_easy_duphandle() set the magic number in the new handle.