aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-07-23 11:59:20 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-07-23 11:59:20 +0000
commitcc4ff62681c593e47e74b7a431f5f6427346b9b5 (patch)
tree7052df6446b0cf8b95b0b1baa8c56cb0e4b00752
parent0423fd9b55b1865824104d5c3825c8f0e01a319c (diff)
Split out the changes from the year 2002 into a separate file, named
CHANGES.2002.
-rw-r--r--CHANGES1522
-rw-r--r--CHANGES.20021504
2 files changed, 1521 insertions, 1505 deletions
diff --git a/CHANGES b/CHANGES
index ec7bb0ec2..3f07fca52 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,23 @@
Changelog
+Daniel (23 July)
+- Daniel Kouril corrected the GSS-Negotiate code.
+
+- Juan F. Codagnone provided fixes to allow curl to build fine on Windows
+ again.
+
+Daniel (22 July)
+- Edited the curl/curl.h include file to build on Windows properly.
+
+Daniel (21 July)
+- Moved the proxy credentials from the SessionHandle struct to the connectdata
+ struct, to make multiple proxy connections with differerent user names work.
+
+- Adjusted the NTLM code to support proxy functionality.
+
+- Made the krb4 stuff compile with the user+password fields moved.
+
Version 7.10.6-pre4 (21 July 2003)
Daniel (20 July)
@@ -798,1508 +815,3 @@ Daniel (6 Jan 2003)
- Matthew Blain's fixed the VC6 libcurl makefile to include better debug data
on debug builds.
-
-Daniel (27 Dec 2002)
-- Philippe Raoult reported a bug with HTTPS connections which I evidently
- added in my 19 dec fix. I corrected it.
-
-Daniel (20 Dec)
-- Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
- script to make the default makefile less confusing "to the casual
- installer".
-
-Version 7.10.3-pre3 (20 Dec)
-
-Daniel (19 Dec)
-- Matthew Blain patched the Curl_base64_decode() function.
-
-- Evan Jordan reported in bug report #653022 that the SSL_read() usage was
- wrong, and it certainly was. It could lead to curl using too much CPU due to
- a stupid loop.
-
-Daniel (18 Dec)
-- As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
- CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
- CURLOPT_FAILONERROR is set.
-
-Daniel (17 Dec)
-- Bug reported #651464, reported by Christopher Palmer, provided an example
- source code using the multi interface that hang when trying to connect to a
- proxy on a localhost port where no proxy was listening. This bug was not
- repeatable on libcurls that were IPv6-enabled.
-
-Daniel (16 Dec)
-- Christopher Palmer also noticed what Vojtech Janota already was
- experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
- to crash when used on some older glibc versions. The problem is of course
- the silliness of the 2.2.93. I committed a fix that hopefully should make
- the binary run fine on either one of the versions, even though the solution
- is not as nice as I'd like it to be.
-
-Daniel (13 Dec)
-- Bug report #651460 by Christopher R. Palmer showed that when using libcurl
- to for example go over a proxy on localhost, it would attempt to connect
- through the proxy TWICE.
-
- I added test case 503 with which I managed to repeat this problem and I
- fixed the code to not re-attempt any connects (which also made it a nicer
- fix for the #650941 bug mentioned below).
-
- The sws server was extended to deal with CONNECT in order to make test
- case 503 do good.
-
-- Evan Jordan posted bug report #650989 about a memory leak in the public key
- retrieving code. He provided a suggested fix and I merely applied it!
-
-- Bug report #650941, posted by Christopher R. Palmer identified a problem
- with the multi interface and getting file:// URLs. This was now fixed and
- test case 502 was added to verify this.
-
-Daniel (12 Dec)
-- Test case 500 and 501 are the first ever libcurl test cases that run.
-
-- Made "configure --enable-debug" cut off all -O* options to the compiler
-
-- Finally fixed the test suite's ftp server so that test case 402 doesn't
- cause the following test case to fail anymore!
-
-Daniel (11 Dec)
-- CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
- version perform uploads much faster!!! RBramante did lots of research on
- this topic.
-
-- Fixed the #include in curl/curl.h to include the other files outside the
- extern "C" scope.
-
-Daniel (10 Dec)
-- Moved around and added more logic:
-
- First, POST data is never sent as part of the request headers in the http.c
- code. It is always sent the "normal" read callback then send() way. This now
- enables a plain HTTP POST to be sent chunked if we want to. This also
- reduces the risk of having very big POSTs causing problems.
-
- Further, sending off the initial HTTP request is not done using a loop
- anymore. If it wasn't all sent off in the first send(), the rest of the
- request is sent off in the normal transfer select() loop. This makes several
- things possible, but mainly it makes libcurl block less when used from the
- multi interface and it also reduces the risk of problems with issuing very
- large requests.
-
-Daniel (9 Dec)
-- Moved the read callback pointer and data within the structs to a more
- suitable place. This in preparation for a better HTTP-request sending code
- without (a silly) loop.
-
-- The Dodds fix seems not to work.
-
-- Vojtech Janota tests proved that the resolve fix from oct 21st is not good
- enough since obviously older glibcs might return EAGAIN without this meaning
- that the buffer was too small.
-
-- [the other day] Made libcurl loop on recv() and send() now until done, and
- then get back to select(). Previously it went back to select() more often
- which really was a slight overhead. This was due to the reported performance
- problems on HTTP PUT on Windows. I couldn't see any notable difference on
- Linux...
-
-Version 7.10.3-pre2 (4 Dec 2002)
-
-Daniel (4 Dec 2002)
-- Lots of work with Malcolm Dodds made me add a temporary code fix that now
- shortens the timeout waiting for the 226 or 250 line after a completed
- FTP transfer.
-
- If no data is received within 60 seconds, this is taken as a sign of a dead
- control connection and we bail out.
-
-Daniel (3 Dec 2002)
-- Ralph's bug report #644841 identified a problem in which curl returned a
- timeout error code when in fact the problem was not a timeout. The proper
- error should now be propagated better when they're detected in the FTP
- response reading function.
-
-- Updated the Borland Makefiles.
-
-Daniel (2 Dec 2002)
-- Nicolas Berloquin provided a patch that introduced --create-dirs to the
- command line tool. When used in combination with -o, it lets curl create
- [non-existing] directories used in -o, suitably used with #-combinations
- such as:
-
- curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
- -o "dir_#1/pic#2.jpg" --create-dirs
-
-Version 7.10.3-pre1
-
-Daniel (28 Nov 2002)
-- I visited Lars Nordgren and had a go with his problem, which lead me to
- implement this fix. If libcurl detects the added custom header
- "Transfer-Encoding: chunked", it will now enable a chunked transfer.
-
- Also, chunked transfer didn't quite work before but seems to do so now.
-
-- Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
- didn't work on any platform...
-
-Daniel (26 Nov 2002)
-- Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
-
-- Dan Becker found and fixed a minor memory leak on persistent connnections
- using CURLOPT_USERPWD.
-
-Daniel (22 Nov 2002)
-- Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
- web server (sws) which now lets test case 306 run fine even in combination
- with the other test cases.
-
-- Juan Ignacio Hervás found a crash in the verbose connect message that is
- used on persistent connections. This bug was added in 7.10.2 due to the
- rearranged name resolve code.
-
-Daniel (20 Nov 2002)
-- Kjetil Jacobsen provided a patch that introduces:
-
- CURLOPT_PRIVATE stores a private pointer in the curl handle.
-
- CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
-
-- Karol Pietrzak pointed out how curl-config --cflags didn't output a good
- include dir so I've removed that for now.
-
-Version 7.10.2 (18 Nov 2002)
-
-Daniel (11 Nov 2002)
-- Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
- properly build with MSVC on Windows.
-
-Daniel (8 Nov 2002)
-- Doing HTTP PUT without a specified file size now makes libcurl use
- Transfer-Encoding: chunked.
-
-Daniel (7 Nov 2002)
-- Bug report #634625 identified how curl returned timeout immediately when
- CURLOPT_CONNECTTIMEOUT was used and provided a fix.
-
-Version 7.10.2-pre4 (6 Nov 2002)
-
-Daniel (5 Nov 2002)
-- Lehel Bernadt found out and fixed. libcurl sent error message to the debug
- output when it stored the error message.
-
-- Avery Fay found some problems with the DNS cache (when the cache time was
- set to 0 we got a memory leak, but when the leak was fixed he got a crash
- when he used the CURLOPT_INTERFACE with that) that had me do some real
- restructuring so that we now have a reference counter in the dns cache
- entries to prevent an entry to get flushed while still actually in use.
-
- I also detected that we previously didn't update the time stamp when we
- extracted an entry from the cache so that must've been a reason for some
- very weird dns cache bugs.
-
-Version 7.10.2-pre3
-
-Daniel (31 Oct 2002)
-- Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
- turned out this didn't help though.)
-
-- Disable the DNS cache (by setting the timeout to 0) made libcurl leak
- memory. Avery Fay brought the example code that proved this.
-
-Version 7.10.2-pre2
-
-Daniel (28 Oct 2002)
-- Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
-
-- Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
- variable (if --cacert isn't used) and if not set, the Windows version will
- check for a file named "curl-ca-bundle.crt" in the current directory or the
- directory where curl is located. That file is then used as CA root cert
- bundle.
-
-- Avery Fay pointed out that curl's configure scrip didn't get right if you
- used autoconf newer than 2.52. This was due to some badly quoted code.
-
-Version 7.10.2-pre1
-
-Daniel (23 Oct 2002)
-- Emiliano Ida confirmed that we now build properly with the Borland C++
- compiler too. We needed yet another fix for the ISO cpp check in the curl.h
- header file.
-
-- Yet another fix was needed to get the HTTP download without headers to work.
- This time it was needed if the first "believed header" was read all in the
- first read. Test 306 has not run properly since the 11th october fix.
-
-Daniel (21 Oct 2002)
-- Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
- machines (running IPv6 disabled). Mats Lidell let me use an account on his
- machine and I could verify that gethostbyname_r() has been changed to return
- EAGAIN instead of ERANGE when the given buffer size is too small. This is
- glibc 2.2.93.
-
-- Albert Chin helped me get the -no-undefined option corrected in
- lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
- want it present. Kevin Roth helped me try it out on cygwin.
-
-- Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
- the ../ support got in (7.10.1).
-
-Daniel (18 Oct 2002)
-- Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
- the multi interface.
-
-Daniel (17 Oct 2002)
-- Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
- work quite as supposed. You needed to set it *before* you use
- CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
-
-Daniel (15 Oct 2002)
-- Andrés García provided corrections for erratas in four libcurl man pages.
-
-Daniel (13 Oct 2002)
-- Starting now, we generate and include PDF versions of all the docs in the
- release archives.
-
-Daniel (12 Oct 2002)
-- Trying to connect to a host on a bad port number caused the multi interface
- to never return failure and it appeared to keep on trying forever (it just
- didn't do anything).
-
-Daniel (11 Oct 2002)
-- Downloading HTTP without headers didn't work 100%, some of the initial data
- got written twice. Kevin Roth reported.
-
-- Kevin Roth found out the "config file" parser in the client code could
- segfault, like if DOS newlines were used.
-
-Version 7.10.1 (11 Oct 2002)
-
-Daniel (10 Oct 2002)
-- Jeff Lawson fixed a few problems with connection re-use that remained when
- you set CURLOPT_PROXY to "".
-
-Daniel (9 Oct 2002)
-- Craig Davison found a terrible flaw and Cris Bailiff helped out in the
- search. Getting HTTP data from servers when the headers are split up in
- multiple reads, could cause junk data to get inserted among the saved
- headers. This only concerns HTTP(S) headers.
-
-Daniel (8 Oct 2002)
-- Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
- is set internally, the error text is sent to the debug function as well.
-
-- I fixed the telnet code to timeout properly as the option tells it to. On
- non-windows platforms.
-
-Daniel (7 Oct 2002)
-- John Crow pointed out that libcurl-the-guide wasn't included in the release
- tarball!
-
-- Kevin Roth pointed out that make install didn't do right if build outside
- the source tree (ca-bundle wise).
-
-- FOLLOWLOCATION bugfix for the multi interface
-
-Daniel (4 Oct 2002)
-- Kevin Roth got problems with his cygwin build with -no-undefined was not
- present in lib/Makefile.am so I put it back in there again. The poor one who
- needs to remove it again must write a configure script to detect that need.
-
-- Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
- or ../ stuff in the string passed back in a Location: header when following
- locations.
-
-- Albert Chin helped me to work out a better configure.in check for zlib, and
- both --without-zlib and -with-zlib seem to work rather well right now.
-
-- Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
- become more accurate.
-
-Daniel (1 Oct 2002)
-- Detlef Schmier pointed out the lack of a --without-libz option to configure,
- so I added one.
-
-Version 7.10 (1 Oct 2002)
-
-Daniel (30 Sep 2002)
-- Modified the curl_version_info() proto and returned struct once again, and
- updated the man page accordingly.
-
-- Cris Bailiff found out that the pre-releases crashed on name lookups on
- names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
- to some weird return codes from gethostbyname_r(). I'll blame the complete
- lack of docs in that department. Cris provided a fix, which I modified only
- slightly.
-
-Daniel (27 Sep 2002)
-- After a suggestion from Christian Kurz to Debian curl package maintainer
- Domenico Andreoli, I made it possible to override the proxy environment
- variables better. Now, by setting -x "" you can explicitly tell libcurl to
- not use a proxy, no matter whan the environment variables say.
-
-Version 7.10-pre4
-
-Daniel (26 Sep 2002)
-- Extended curl_version_info() more and wrote a man page for it.
-
-Daniel (25 Sep 2002)
-- libcurl could leak memory when downloading multiple files using http ranges,
- reported and fixed by Jean-Luc Guevel.
-
-- Walter J. Mack provided code and docs for the new curl_free() function that
- shall be used to free memory that is allocated by libcurl and returned back
- to the application, as curl_escape() and curl_unescape() do.
-
-- Yarram Sunil pointed out a flaw in the multi interface where a failed
- connection didn't close down properly and thus a second transfer using the
- same handle failed.
-
-- Andrés García fixed a flaw that made (among other things) dict-fetches
- return a random value.
-
-Daniel (24 Sep 2002)
-- Wez Furlong brought his initial patch that introduced curl_version_info().
- We might need to tweak it somewhat before release.
-
-Daniel (20 Sep 2002)
-- Craig Markwardt fixed another Tru64 IP resolve problem.
-
-Daniel (19 Sep 2002)
-- Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
- in the same style other code does.
-
-- Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
- and -C - was used. The first file's resume position was then accidentally
- reused on all the other files too.
-
-Daniel (18 Sep 2002)
-- The curl_easy_setopt.3 man page was greatly modified and the options have
- now been grouped in logical groups so that it should be somewhat easier to
- read it and find things you search for.
-
-Daniel (13 Sep 2002)
-- Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
- send any headers back, only raw content. Right, that is a violation of the
- standard but still happens at times and we need to deal with it. Test case
- 306 was added to verify that we do right now.
-
-Version 7.10-pre3
-
-Daniel (11 Sep 2002)
-- Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
- when you specified the URL with an IPv6 IP-address.
-
-Daniel (4 Sep 2002)
-- Sven Neuhaus made --silent being acknowledged even when multiple URLs
- were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
- even when told to shut up.
-
-Daniel (3 Sep 2002)
-- Updated all source code headers to use MIT-license references only, and
- point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
- URL. I've cut out all references to MPL that I could find.
-
-- Corected the makefiles to not always use -lz when linking
-
-Version 7.10-pre2
-
-Daniel (2 Sep 2002)
-- James Gallagher added Content-Encoding support to libcurl so now curl and
- libcurl-using apps can request compressed contents using the 'deflate'
- method. See the special file lib/README.encoding for details.
-
- curl --compressed is now used to request compressed contents.
-
- curl-config --feature will include 'libz' if this feature was around when
- the library was built.
-
-Daniel (30 Aug 2002)
-- Applied an anonymous SOCKS5-proxy patch. Not properly working in all
- situations though, as all getaddrinfo()-using libcurls will fail on this.
- This is because of the somewhat naive way the current code tries to extract
- the IP address of the proxy.
-
-- Fixed up the SSL cert fixes from the other day even more after more inputs
- from Cris. Added three new SSL error codes to make the
- CURLE_SSL_CONNECT_ERROR slightly less overloaded.
-
-Daniel (27 Aug 2002)
-- After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
- decided to talk the bold path and I now made libcurl do CA certificate
- verification by default. Thus library users need to explicitly turn this off
- if you want to connect to sites without proper checking. We also install a
- CA cert bundle on 'make install' now.
-
- The curl tool now requires the -k/--insecure option in order to allow
- connections and operations on SSL sites that aren't properly verified with
- -cafile or --capath.
-
- curl-config --ca displays the built-in path to the CA cert bundle.
-
-Daniel (26 Aug 2002)
-- Andrew Francis cleaned up some code that now compiles fine without the need
- for ugly MSVC pragmas.
-
-- Keith MacDonald found a minor bug in src/main.c that made it close stdin
- instead of the actual file handle. It shouldn't have resulted in much
- trouble as most operating systems close all file handles on process exit
- anyway.
-
-Daniel (22 Aug 2002)
-- Markus Oberhumer provided some documentation for his previously provided
- CURLOPT_NOSIGNAL fix.
-
-- Patched the lib/Makefile.am to hopefully no longer complain on undefined
- symbols that seemed to occur on builds with shared OpenSSL libraries on
- Solaris lately...
-
-Daniel (20 Aug 2002)
-- Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
- remove the pragmas from lib/config-win32.h and adjust the sources where
- the warnings occur. Hiding them with pragmas like this is not the correct
- way of dealing with compiler warnings.
-
-Daniel (13 Aug 2002)
-- Ulrich Zadow made the global include files in curl/* include themselves
- using "curl.h" instead of <curl/curl.h> which thus allows people to more
- freely decide how to include curl and how to setup their include paths.
-
-- Sterling Hughes added the curl_share* interface, somewhat as discussed
- previously.
-
-- Jörn Hartroth pointed out that poll() was used in the pre1 source code and
- it isn't very portable, so now I check for it in the configure script and
- work around it.
-
-Version 7.9.9-pre1
-
-Daniel (12 Aug 2002)
-- Applied my initial take on making the multi stuff more asynchronous. Connects
- should now return back without "hanging" until it has connected for real.
- This should also be the case for FTP-PASV connects.
-
-Daniel (9 Aug 2002)
-- Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
- which effectively prevents libcurl from doing anything that may cause
- signals to get sent. This is basicly for multi-threaded applications that
- now can use timeouts properly, without risking any signals to burst in and
- ruin the party.
-
-Daniel (5 Aug 2002)
-- Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
- work. When did that code vanish? Anyway, it's back again now and seems to
- work!
-
-- Jonatan Lander found out that POSTing an empty string didn't work with the
- command line tool.
-
-Daniel (3 Aug 2002)
-- Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
- the multi interface enabled.
-
-Daniel (1 Aug 2002)
-- The ftp PORT command now uses a better default IP address, as it will
- extract and use the local IP address used by the control connection.
-
-- Modified the #include lines in curl/multi.h to work better on more
- platforms.
-
-Daniel (31 Jul 2002)
-- Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
- problems.
-
-Daniel (30 Jul 2002)
-- Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
- and don't get __STDC__ defined, which required us to extend the preprocessor
- check for the ## operator usage.
-
-- Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
- internal default function will be put back.
-
-- danfuzz at milk.com found out that libcurl badly assumed a space after
- 'Set-Cookie:' so if it wasn't present, it caused the first letter of the
- cookie name to fall off!
-
-Daniel (29 Jul 2002)
-- The password prompt asking for user password used stdout and now uses
- stderr instead to better allow redirecting. It also leaked a fopen() file
- handle that is now fixed.
-
-Daniel (28 Jul 2002)
-- HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
- by M T.
-
-Daniel (26 Jun 2002)
-- Glen Nakamura solved a crash in the name resolving function for IP-only
- addresses on Alpha Linux (at least).
-
-- T. Bharath corrected the high resolution timer introduced in 7.9.8.
-
-Daniel (22 Jun 2002)
-- Andrés García pointed out man page errors in curl_formadd.3. I fixed.
-
-Daniel (19 Jun 2002)
-- Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
- tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
- are translated by curl_unescape().
-
-Daniel (15 Jun 2002)
-- Added --limit-rate to the curl tool. Allows the user to set a maxmimum
- upper limit to how much bandwidth to use for transfers.
-
-- CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
- receive buffer in libcurl. The main point of this would be that the write
- callback gets called more often and with smaller chunks.
-
-Daniel (14 Jun 2002)
-- Yarram Sunil found out that the SocketIsDead() function performed a lot
- faster on Windows when removing the 1 microsecond timeout.
-
-- Hanno L. Kranzhoff fixed the VC++ project files.
-
-- Tom Mattison found out that ftp transfers closed the connection a little
- too often.
-
-- Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
- to disable specific protocols when building for Windows.
-
-Version 7.9.8
-
-Daniel (13 Jun 2002)
-- Time to let this baby go.
-
-Daniel (12 Jun 2002)
-- Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
- CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a
- multipart that appears as a regular file upload, but the data is provided
- with a pointer and length.
-
-- Nico Baggus made the VMS version use sigsetjmp() too.
-
-- Jörn Hartroth fixed the mingw32 build using the mm lib.
-
-- Applied patches by Kris Kennaway that correct format string problems in
- lib/ftp.c and lib/ldap.c.
-
-Version 7.9.8-pre3
-
-Daniel (11 Jun 2002)
-- James Cone brought the idea of using sigsetjmp() in the signal handler to
- make the time-out of name lookups to work, even when the underlying name
- resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
- this may be a bit drastic, and also not likely to exist on all platforms. I
- added careful checking for this in the configure script, even checks for it
- being a macro (which seems to be the case in for example Linux).
-
- sigsetjmp() seems to be mentioned in the Single Unix specification.
-
-- Miklos Nemeth brought a patch that allows libcurl to get built with specific
- protocols disabled. This is done by running ./configure
- --disable-[protocol].
-
-- FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
- make precautions to not return this for range downloads.
-
- Added test case 135 that makes an ftp range download. Had to tweak the
- runtests.pl script a bit too.
-
-- Bug report #566835 identified a strlen() on a NULL pointer. Added additional
- check to prevent this.
-
-Daniel (10 Jun 2002)
-- Found and corrected a connect failure problem that didn't create a human
- error text.
-
-- Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
- and comments from Götz Babin-Ebell.
-
-- Gautam Mani found a socket descriptor leak that happened when FTP transfers
- failed and you reinvoked curl_easy_perform().
-
-Daniel (5 Jun 2002)
-- Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
- matter when you decide to remove the CURL handle.
-
-- HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
- makes windows builds stop complaining about "weak seeding" when it in fact
- isn't.
-
-- Another 64bit architecture crash that was introduced in 7.9.7 was now
- removed, as bug report #564585 clarified. This happened due to our attempts
- to only allocate only as much memory as is actually needed for name
- resolving (using realloc) which called for a function that could 'move' a
- hostent struct in memory.
-
-Version 7.9.8-pre2
-
-Daniel (3 Jun 2002)
-- T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
- made the CURLINFO_REQUEST_SIZE return the correct total request size. He
- also made the win32 timers use higher resolution than before.
-
-Daniel (29 May 2002)
-- Renaud Chaillat made me aware of the fact that libcurl returned an error if
- you tried to get an empty FTP file. This seemed like a wrong thing to do, so
- now it no longer does that! I just hope that no one built anything fancy
- upon this unexpected behavior...
-
-Daniel (28 May 2002)
-- Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
- specifies a path to a directory with certificates rather than a single file
- with them all concatenated. --capath was added to the command line tool
- for the same function.
-
- Windows users need to pay attention that the directory should be setup with
- the c_rehash tool of the OpenSSL package, and that creates symlinks by
- default that need to be replaced with actual copies to work on Windows.
-
-- Gustaf Hui provided new code that changes how curl_multi_info_read()
- messages are stored, so that they don't have to be kept around for the multi
- handle's entire life time. He also made it return failure codes properly
- which it didn't do before.
-
-Daniel (27 May 2002)
-- Gustaf Hui pointed out that running curl_multi_perform() without doing
- curl_multi_fdset() first was not really a working combo. I added an internal
- check for this and have some extra select() code without timeout to make the
- library internals work identically nevertheless. We might need to somehow
- either document that once you've used the *_fdset() you should remain using
- them in select() or you should blank them somehow so that libcurl won't go
- crazy.
-
-Version 7.9.8-pre1
-
-Daniel (22 May 2002)
-- James Cone brought an excellent patch, including several tests and docs!
- CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
- --netrc-optional was introduced as an addition to --netrc to allow the
- command line client to take use of all that new netrc stuff.
-
-- Bug report #558888 showed a case where libcurl re-used the previous host
- name when a connection over a proxy was re-used but to a different target
- host.
-
-Daniel (21 May 2002)
-- Edin Kadribasic helped me sort out a problem to made libcurl crash when
- trying to HTTP POST an empty string.
-
-- Clarified that Juergen Wilke donated the original tests/server/sws.c code.
-
-- Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
- CURLFORMcode instead of the previous 'int', and the various return codes are
- now globally exported. It allows applications to better figure out what goes
- wrong when curl_formadd() returns errors.
-
-Daniel (20 May 2002)
-- Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
- is prefered to SSL_CTX_use_certificate_file().
-
-Daniel (17 May 2002)
-- Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
- after my AIX fixes the other week.
-
-- Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
- the DNS struct realloc stuff. Actually, this crash could happen on all
- systems that made the pack_hostent() function get invoked.
-
-- I removed several compiler warnings in the test suite's HTTP server.
-
-Version 7.9.7
-
-Daniel (10 May 2002)
-- Kevin Roth adjusted the --trace-ascii output slightly.
-
-- Paul Harrington found out that src/writeout.c needed an additional header
- file included for AIX builds
-
-Version 7.9.7-pre2
-
-Daniel (7 May 2002)
-- Updated the man page with --trace-ascii and -j/--junk-session-cookies.
-
-- Made --trace-ascii do pretty much the same as --trace but without the hex
- part in the output.
-
-- Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
- cookies read from a file. This option is enforced by the curl command line
- tool using the new -j/--junk-session-cookies option. After discussions with
- Kevin Roth. This makes it easier to use curl to fully emulate a browser's
- behavior, even when it comes to "session cookies". Session cookies are
- cookies that a normal browser discards when the browser is shut
- down. They're identified by not having any expire date/time.
-
-- When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
- this was discovered when --trace was made to crash.
-
-- Using -v and --trace at the same time confused matters. -v is now pretty
- much ignored when --trace or --trace-ascii is used.
-
-- Made --trace (and --trace-ascii) support - as file name to pass output to
- stdout instead. It makes it consistent with how other options work.
-
-Version 7.9.7-pre1
-
-Daniel (6 May 2002)
-- Added multi-post.c to the examples directory. I got the basic source for
- this from Gustaf Hui.
-
-Daniel (3 May 2002)
-- CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
- can be used to figure out the maximum buffer size your write callback can
- get.
-
-- CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
- an alias for CURLOPT_FILE. These two were added for conformity. Most other
- callback function's userdata are provided with options using a similar name-
- scheme.
-
-- Added "--trace [file]" to the command line tool. It makes a very detailed
- trace dump get stored, with a full protocol dump that includes all received
- and transmitted data. This could be a very effective tool for debugging what
- goes wrong. This dump includes every byte the way it is sent to/received
- from the server. The dump is the plain-text version, so SSL transfers will
- still be readable.
-
-- I found out that the DEBUGFUNCTION was not called properly everywhere as we
- wanted it to. I fixed it.
-
-- -D now stores all headers to the same file if multiple URLs are given on the
- command line! Kevin Roth made me aware of that it didn't already do this!
-
-- Gustaf Hui wrote an excellent formpost example that used the multi
- interface. Unfortunately, it didn't work due to several bugs in how
- transfers were made when the multi interface was used.
-
-Daniel (2 May 2002)
-- Hanno Kranzhoff found out that when doing multiple transfers on the same
- easy handle, the progress meter would show a bad "currently downloaded
- value" when the transfer starts.
-
-Daniel (1 May 2002)
-- Applied another patch by Jacky Lam to make the name resolve info realloc()
- stuff work properly.
-
-Daniel (28 April 2002)
-- curl_multi_info_read() is now implemented!
-
-Daniel (27 April 2002)
-- Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
-
-- I think I fixed the DNS cache prune crach Jacky Lam found and reported.
-
-- I cleaned up the name prefix stuff in the hash and llist modules.
-
-- FTP responses should now be better on timing out properly. The timeout value
- is maximum timeout for the entire request operation, but before this, the
- timeout was used as a maximum allowed time between two reads...
-
-Daniel (26 April 2002)
-- Fixed the test suite http server to not use snprintf() anymore due to better
- portability.
-
-Daniel (25 April 2002)
-- With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
- cause problems since the pruning is only checking the entry time, and it
- sure could cause problems. Therefor, I've now added and changed code so that
- this should not be a problem. Nowhere in the code will be store name
- resolved information around so that a sunsequent DNS cache prune should
- cause a problem. This of course called for some mild internal changes.
-
-Daniel (23 April 2002)
-- Improved the 'no_proxy' check, as using port numbers in the URL confused it
- previously. Reported by Erwan Legrand in bug report #547484.
-
-- The --interface option now works even on IPv6 enabled builds. Reported by
- 'thor'.
-
-Daniel (22 April 2002)
-- The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
- names are still #defined too.) Pointed out by Robert Olson.
-
-- Jacky Lam brought code that lets the name resolve function only use as much
- memory as it actually needs. This only works on certain operating systems,
- but is totally transparant to all users.
-
-Daniel (19 April 2002)
-- Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
-
-Daniel (18 April 2002)
-- Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
- experienced very big caches.
-
-Daniel (17 April 2002)
-- Dirk Manske patched the 301 response to work against the RFC but more like
- common browsers do. If a POST get a 301 back, it'll switch to GET in the
- next request (if location-following is enabled).
-
-Daniel (16 April 2002)
-- Dirk Manske posted a patch originally written by Ingo Wilken that introduced
- two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
- CURLINFO_REDIRECT_COUNT.
-
-Daniel (15 April 2002)
-- Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
- reflect reality better, like when the first request isn't POST and when
- the second isn't GET... :-)
-
-- Craig Davison pointed out that when curl_formadd()ing a file that doesn't
- exist, libcurl doesn't return error. Now, curl_easy_perform() will return
- CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
-
-Version 7.9.6
-
-Daniel (14 April 2002)
-- Dirk Manske brought a fix that makes libcurl strip off white spaces from the
- beginning of cookie contents.
-
-- Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
- Moonesamy pointed out the problem, Bjorn Reese the solution.
-
-Version 7.9.6-pre5
-
-Daniel (12 April 2002)
-- Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
- FTP transfers got the "connect done" time set after the initial FTP commands
- and not directly after the TCP/IP connect as it should.
-
- I also made the time stamp get set even if the connect itself fails, which
- it didn't do previously.
-
-- Jean-Philippe Barrette-LaPierre provided his patch that introduces
- CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
- callback to receive debug/information data. That includes headers and data
- that is received and sent. CURLOPT_VERBOSE still controls it.
-
- By default, there is an internal debugfunction that will make things look
- and work as before if not changed.
-
-Daniel (10 April 2002)
-- Sebastien Willemijns found out that -x didn't use the default port number as
- is documented. It does now.
-
-- libcurl-errors.3 is a new man page attempting to document all libcurl error
- codes
-
-- Added two new error codes and changed the behaviour of two old ones
- slightly:
-
- CURLE_WRITE_ERROR
- This error was returned *both* for errors that occured when writing
- received data to a local file, as well as when we get problems writing data
- to a remote server. CURLE_SEND_ERROR has now been added for the latter
- error.
-
- CURLE_READ_ERROR
- This error was similarly returned *both* for errors when reading a local
- file, as well as when getting problems when reading network data.
- CURLE_RECV_ERROR has now been added for the latter error.
-
- (Two test cases were adjusted accordingly.)
-
-Daniel (9 April 2002)
-- runtests.pl now sets the HOME variable before running curl, to prevent any
- actual ~/.curlrc file to fool the tests!
-
-Version 7.9.6-pre4
-
-Daniel (8 April 2002)
-- Michael Curtis provided new functionality for curl on some platforms. Using
- the --environment option, curl will *set* a bunch of environment variables
- to values. The names are the same ones as for the -w/--writeout option.
-
- For now, this only works on the RISC OS version, as this feature relies on
- both OS support and that it matches OS paradigms.
-
-- Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
- and 304, I edited it slightly.
-
-Daniel (5 April 2002)
-- As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
- when used in windows), is now loaded from the current directory if the HOME
- environment variable isn't set (or if it is too long). I also enlarged the
- array used to store the full file path in, to 512 bytes.
-
-- Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
- was stupid and the change was reverted. Added test case 48 to verify the
- functionality.
-
-Version 7.9.6-pre3
-
-Daniel (4 April 2002)
-- Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
- pre-ISO compilers, like when using gcc -traditional.
-
-Daniel (3 April 2002)
-- Jacky Lam identified a glitch when getting headers-only, where libcurl would
- "hang" 1 second in vain in the select() loop before returning back.
-
-- Tor Arntsen brought a patch for multipart formposts. It turned out that the
- "CGI_Lite Perl package" makes some bad assumptions on what letters that may
- be used in boundary strings and thus curl could confuse it by including '+'
- and '/'. While this is standards-compliant, we change the behavior to work
- smoothly with existing software based on that package.
-
-Daniel (2 April 2002)
-- Gerhard Herre filed bug report #536238 where he pointed out a crash in
- verbose FTP passive transfers for AIX.
-
-- Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
- take care of all errors that SSL_read() could return.
-
-- Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
-
-Daniel (27 March 2002)
-- T. Bharath pointed out a flaw in the connection re-use function that didn't
- check proxy connections properly for "deadness" before they were re-used.
-
-- Pedro Neves found out that HTTP POSTing with --data-binary did not properly
- work under Windows as the file specified wasn't read fully binary!
-
-Daniel (25 March 2002)
-- Jacky Lam brought a fix that improves treatment of cookies using identical
- domains but with leading dots properly.
-
-Daniel (22 March 2002)
-- Miklos Nemeth updated the windows section of the docs/INSTALL file and the
- windows makefiles.
-
-- Jon Dillon provided us with several good-looking curl images for
- promotion. View them here http://curl.haxx.se/icons.html
-
-Daniel (20 March 2002)
-- Peter Verhas found out that CRLF replacement in uploads was not working. I
- fixed it, and added test case 128 that verifies the functionality.
-
-- The list formerly known as curl-main is now named curl-users and is hosted
- by sourceforge. Susbcribe to the new list, get off the old one.
-
-Version 7.9.6-pre2
-
-Daniel (19 March 2002)
-- Made -G and -I on the same command line cause an error.
-
-- Moved the multi.h file to the "public" include directory and made it get
- included by curl.h so that no extra include files will be necessary to use
- it.
-
- Added docs and man pages for the multi interface to the release archive.
- Added the three example source codes too.
-
- Necessary steps in my campaign to sneak in the multi interface... ;-)
-
-- Updated the year in all copyright notices in all C and H files.
-
-Daniel (18 March 2002)
-- Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
- in 7.9.5... Added test case 32 for this.
-
-Version 7.9.6-pre1
-
-Daniel (16 March 2002)
-- Peter Verhas pointed out that the curl_escape and curl_unscape man pages
- contained factual errors.
-
-- Albert Choy found and corrected a problem with the verbose output when doing
- PASV ftp transfers. It could make libcurl crash.
-
- Details in bug report #530562:
- http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
-
-Daniel (15 March 2002)
-- Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
- the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
- capability! That patch is now reverted.
-
- The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
- hosts are instead made by first checking if the stack is IPv6-enabled and if
- not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
-
-- T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
- as described in the man page, libcurl did not return the documented error
- code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
- now corrected.
-
-Daniel (14 March 2002)
-- Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
- data from the callback.
-
-- The GOPHER support seems to be broken. I don't think I'll even start fixing
- it until someone else finds out... :-)
-
-Daniel (13 March 2002)
-- Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
- string. If such a file would be present, curl returned the size of it! Now
- we prevent this.
-
-- Curl_sendf() was fixed to deal with situation where Curl_write() would've
- blocked and thus return -1.
-
-- Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
-
-- All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
- CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
- CURLFORM_* list proprely and unrestricted until this was the case. It was
- also a bit peculiar to users why some options could be used in an array
- while others couldn't.
-
-- Removed some silly CRLF lines that had accidentally slipped into src/main.c
- Nico Baggus pointed them out to me.
-
-Daniel (11 March 2002)
-- CURLFORM_FILENAME was added. This can be set when creating a file upload
- part, to set the 'filename' field to a custom value. If this isn't used,
- the actually used filename will be included instead (as libcurl always has
- done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
- too, and allows constructs such as:
-
- -F 'name=@filename;filename=/dev/null'
-
- and this can be combined with type= too, in a manner similar to:
-
- -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
-
- Test case 39 was added to verify this functionality.
-
-- The struct formerly known as HttpPost is now named curl_httppost to properly
- use the curl name space. I added a #define for the old name to make existing
- programs compile even when this new include file is used.
-
-Daniel (8 March 2002)
-- Clifford also discovered that if the client code failed early, as when doing
- "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
- on some systems.
-
-- Clifford Wolf provided a patch that made --progress-bar work again.
-
-- I closed bug report #527032 by making sure that we add a newline after a
- transfer when --progress-bar has been used. Before, without the newline, it
- made the subsequent text come out wrong.
-
-Version 7.9.5
-
-Daniel (7 March 2002)
-- Added docs/KNOWN_BUGS to the release archive.
-
-Daniel (6 March 2002)
-- Kevin Roth corrected a flaw in the curl client globbing code that made it
- mess up backslashes. This was most notable on windows (cygwin) machines when
- using file://.
-
-- Brad provided another fix for building outside the source-tree.
-
-- Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
-
-Daniel (5 March 2002)
-- I noticed that the typedef in curl.h for the progress callback prototype was
- wrong and thus applications that used it would not get the proper input
- data. It used size_t where the implementation actually uses doubles!
-
- I wish I could blame someone else, but this was my fault. Again.
-
-Version 7.9.5-pre6
-
-Daniel (4 March 2002)
-- Cut off the changes done during 2001 from this changelog file and put them
- in a separate file (CHANGES.2001), available from CVS of course.
-
-- I removed the multi directory. The example sources were moved to the
- docs/examples directory where they belong.
-
-- Wrote 7 new man pages for the current functions in the new multi interface.
- They're all still pretty basic, but we can use them as a start and add more
- contents to them when we figure out what to write. The large amount of man
- pages for libcurl now present made me decide to put them in a new separate
- subdirectory in the docs directory. Named libcurl.
-
-- Giuseppe Corbelli provided a template file for the EPM package manager, it
- gets generated nicely by the configure script now.
-
-Version 7.9.5-pre5
-
-Daniel (1 March 2002)
-- Moved the memanalyze.pl script into the tests/ dir and added it to the
- release archives. It was previously only present in the CVS tree.
-
-- Modified the February 17th Host: fix, as bug report #523718 pointed out that
- it caused crashes!
-
-- Nico Baggus added more error codes to the VMS stuff.
-
-- Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
- option. It is just another FTP quote option that allows the user to specify
- a list of FTP commands to issue *just before* the transfer command (RETR or
- STOR etc). It has turned up a few systems that really need this.
-
- The curl command line tool can also take advantage of this by prefixing the
- quote commands with a plus (+) in similar style that post transfer quote
- commands are specified.
-
- This is not yet documented. There is no test case for this yet.
-
-Daniel (28 February 2002)
-- Ralph Mitchell made some serious efforts and put a lot of sweat in setting
- up scripts and things for me to be able to repeat his problems, and I
- finally could. I found a problem with the header byte counter that wasn't
- increased properly and thus we could return CURLE_GOT_NOTHING when we in
- fact had received data.
-
-Daniel (27 February 2002)
-- I had to revert the non-space parsing cookie fix I posted to the mailing
- list. Expire dates do have spaces and still need to get parsed properly!
- Instead we just ignore trailing white space and it seems to work...
-
-Daniel (26 February 2002)
-- Made the cookie property 'Max-Age' work, just since we already tried to
- support it, it is better to do it right. No one uses this anyway.
-
-- The cookie parser could crash if a really weird (illegal) cookie line was
- received. I also made it better discard really oddly formatted lines better.
-
- Made the cookie jar store the second field from the left using the syntax
- that Netscape and Mozilla probably like. Curl itself ignores it.
-
- Added test case 31 for these cases.
-
- Clay Loveless' email regarding some cookie issues started my cleanup.
-
-- Kevin Roth pointed out that my automake fiddles broke the ability to build
- outside the source-tree and I posted a patch to the mailing list that brings
- this ability back.
-
-Version 7.9.5-pre4
-
-Daniel (25 February 2002)
-- Fiddled with the automake files to make all source files in the lib
- directory not have ../src in the include path, and the src sources shouldn't
- have ../lib!
-
-- All 79 test cases ran OK under Linux and Solaris using the new HTTP server
- in the test suite. The new HTTP server was first donated by Georg Horn and
- subsequently modified to work with the test suite. It is currently still not
- portable enough to run on "all over" but this is a start and I can run all
- curl tests on my machines. This is an important requirement for the upcoming
- public release.
-
-- Using -d and -I on the same command line now reports an error, as it implies
- two different HTTP requests that can't be mixed.
-
-- Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
- support %{content_type} to get the content type of the recent download.
-
-- Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
- and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
- out if we could include winsock.h which turns out not to be a wise choice to
- do on cygwin since it has the file but can't include it!
-
-Daniel (22 February 2002)
-- Added src/config-vms.h to the release archive.
-
-- Fixed the connection timeout value again, the change from February 18 wasn't
- complete.
-
-Version 7.9.5-pre3
-
-Daniel (21 February 2002)
-- Kevin Roth and Andrés García both found out that lib/config.h.in was missing
- in the pre-release archive and thus the configure script failed.
-
-Version 7.9.5-pre2
-
-Daniel (20 February 2002)
-- Andrés García provided a solution to bug report #515228. the total time
- counter was not set correctly when -I was used during some conditions (all
- headers were read in one single read).
-
-- Nico Baggus provided a huge patch with minor tweaks all over to make curl
- compile nicely on VMS.
-
-Daniel (19 February 2002)
-- Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
- getaddrinfo() calls, he could speed up some name resolving calls with an
- order of magnitudes on his Redhat Linux 7.2.
-
-- Philip Gladstone found a second INADDR_NONE problem where we used long
- intead of in_addr_t which caused 64bit problemos. We really shouldn't define
- that on two different places.
-
-Daniel (18 February 2002)
-- Philip Gladstone found a problem in how HTTP requests were sent if the
- request couldn't be sent all at once.
-
-- Emil found and corrected a bad connection timeout comparison that made curl
- use the longest of connect-timeout and timout as a timeout value, instead of
- the shortest as it was supposed to!
-
-- Aron Roberts provided updated information about LDAP URL syntax to go into
- the manual as a replacement for the old references.
-
-Daniel (17 February 2002)
-- Philip Gladstone pointed out two missing include files that made curl core
- dump on 64bit architectures. We need to pay more attention on these details.
- It is *lethal* to for example forget the malloc() prototype, as 'int' is
- 32bit and malloc() must return a 64bit pointer on these platforms.
-
-- Giaslas Georgios fixed a problem with Host: headers on repeated requests on
- the same handle using a proxy.
-
-Daniel (8 February 2002)
-- Hanno L. Kranzhoff accurately found out that disabling the Expect: header
- when doing multipart formposts didn't work very well. It disabled other
- parts of the request header too, resulting in a broken header. When I fixed
- this, I also noticed that the Content-Type wasn't possible to disable. It is
- now, even though it probably is really stupid to try to do this (because of
- the boundary string that is included in the internally generated header,
- used as form part separator.)
-
-Daniel (7 February 2002)
-- I moved the config*.h files from the root directory to the lib/ directory.
-
-- I've added the new test suite HTTP server to the CVS repository, It seems to
- work pretty good now, but we must make it get used by the test scripts
- properly and then we need to make sure that it compiles, builds and runs on
- most operating systems.
-
-Version 7.9.5-pre1
-
-Daniel (6 February 2002)
-- Miklos Nemeth provided updated windows makefiles and INSTALL docs.
-
-- Mr Larry Fahnoe found a problem with formposts and I managed to track down
- and patch this bug. This was actually two bugs, as the posted size was also
- said to be two bytes too large.
-
-- Brent Beardsley found out and brought a correction for the
- CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
- accidentaly broke Giaslas Georgios' patch.
-
-Daniel (5 February 2002)
-- Kevin Roth found yet another SSL download problem.
-
-Version 7.9.4
-
-- no changes since pre-release
-
-Version 7.9.4-pre2
-
-Daniel (3 February 2002)
-- Eric Melville provided a few spelling corrections in the curl man page.
-
-Daniel (1 February 2002)
-- Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
- uses gmtime_r() on all hosts that have it.
-
-Daniel (31 January 2002)
-- An anonymous bug report identified a problem in the DNS caching which made it
- sometimes allocate one byte too little to store the cache entry in. This
- happened when the port number started with 1!
-
-- Albert Chin provided a patch that improves the gethostbyname_r() configure
- check on HP-UX 11.00.
-
-Version 7.9.4-pre1
-
-Daniel (30 January 2002)
-- Georg Horn found another way the SSL reading failed due to the non-blocking
- state of the sockets! I fixed.
-
-Daniel (29 January 2002)
-- Multipart formposts now send the full request properly, including the CRLF.
- They were previously treated as part of the post data.
-
-- The upload byte counter bugged.
-
-- T. Bharath pointed out that we seed SSL on every connect, which is a time-
- consuming operation that should only be needed to do once. We patched
- libcurl to now only seed on the first connect when unseeded. The seeded
- status is global so it'll now only happen once during a program's life time.
-
- If the random_file or egdsocket is set, the seed will be re-made though.
-
-- Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
- curl_easy_getinfo() read the content-type from the previous request.
-
-Daniel (28 January 2002)
-- Kjetil Jacobsen found a way to crash curl and after much debugging, it
- turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
- name resolving.
-
-- Andreas Damm posted a huge patch that made the curl_getdate() function fully
- reentrant!
-
-- Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
- CURLOPT_POSTFIELDS. You can now!
-
-Daniel (25 January 2002)
-- Krishnendu Majumdar pointed out that the header length counter was not reset
- between multiple requests on the same handle.
-
-- Pedro Neves rightfully questioned why curl always append \r\n to the data
- that is sent in HTTP POST requests. Unfortunately, this broke the test suite
- as the test HTTP server is lame enough not to deal with this... :-O
-
-- Following Location: headers when the connection didn't close didn't work as
- libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
- the restructured internals. 'Frank' posted a bug report about this.
-
-Daniel (24 January 2002)
-- Kevin Roth very quickly spotted that we wrongly installed the example
- programs that were built in the multi directory, when 'make install' was
- used. :-/
-
-Version 7.9.3
-
-Daniel (23 January 2002)
-- Andrés García found a persistancy problem when doing HTTP HEAD, that made
- curl "hang" until the connection was closed by the server. This problem has
- been introduced in 7.9.3 due to internal rewrites, this was not present in
- 7.9.2.
-
-Version 7.9.3-pre4
-
-Daniel (19 January 2002)
-- Antonio filed bug report #505514 and provided a fix! When doing multipart
- formposts, libcurl would include an error text in the actual post if a
- specified file wasn't found. This is not libcurl's job. Instead we add an
- empty part.
-
-Daniel (18 January 2002)
-- Played around with stricter compiler warnings for gcc (when ./configure
- --enable-debug is used) and changed some minor things to stop the warnings.
-
-- Commented out the 'long long' and 'long double' checks in configure.in, as
- we don't currently use them anyway and the code in lib/mprintf.c that use
- them causes warnings.
-
-- Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
- to correct them. Two compiler warnings were removed as well.
-
-- Andrés García fixed two minor mingw32 building problems.
-
-Version 7.9.3-pre3
-
-Daniel (17 January 2002)
-- docs/libcurl-the-guide is a new tutorial for our libcurl programming
- friends.
-
-- Richard Archer brought back the ability to compile and build with OpenSSL
- versions before 0.9.5.
- [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
-
-- The DNS cache code didn't take the port number into account, which made it
- work rather bad on IPv6-enabled hosts (especially when doing passive
- FTP). Sterling fixed it.
-
-Daniel (16 January 2002)
-- Georg Horn could make a transfer time-out without error text. I found it and
- corrected it.
-
-- SSL writes didn't work, they return an uninitialized value that caused
- havoc all over. Georg Horn experienced this.
-
-- Kevin Roth patched the curl_version() function to use the proper OpenSSL
- function for version information. This way, curl will report the version of
- the SSL library actually running right now, not the one that had its headers
- installed when libcurl was built. Mainly intersting when running with shared
- OpenSSL libraries.
-
-Version 7.9.3-pre2
-
-Daniel (16 January 2002)
-- Mofied the main transfer loop and related stuff to deal with non-blocking
- sockets in the upload section. While doing this, I've now separated the
- connection oriented buffers to have one for downloads and one for uploads
- (as two can happen simultaneously). I also shrunk the buffers to 20K
- each. As we have a scratch buffer twice the size of the upload buffer, we
- arrived at 80K for buffers compared with the previous 150K.
-
-- Added the --cc option to curl-config command as it enables so very cool
- one-liners. Have a go a this one, building the simple.c example:
-
- $ `curl-config --cc --cflags --libs` -o example simple.c
-
-Daniel (14 January 2002)
-- I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
- only need to address all writes (send) too and then I'm ready for another
- pre-release...
-
-- Stoned Elipot patched the in_addr_t configure test to make it work better on
- more platforms.
-
-Daniel (9 January 2002)
-- Cris Bailiff found out that filling up curl's SSL session cache caused a
- crash!
-
-- Posted the curl questionnaire on the web site. If you haven't posted your
- opinions there yet, go there and do it now while it is still there:
-
- http://curl.haxx.se/q/
-
-- Georg Horn quickly found out that the SSL reading no longer worked as
- supposed since the switch to non-blocking sockets. I've made a quick patch
- (for reading only) but we should improve it even further.
-
-Version 7.9.3-pre1
-
-Daniel (7 January 2002)
-- I made the 'bool' typedef use an "unsigned char". It makes it the same on
- all platforms, no matter what the platform thinks the default format for
- char is. This was noticed since we made a silly comparison involving such a
- bool variable, and only one compiler/platform combination (on Debian Linux)
- complained about it (that happened to have its char unsigned by default).
-
-- Bug report #495290 identified a cookie parsing problem that was corrected.
- When a Set-Cookie: line is received without a trailing semicolon, libcurl
- didn't read the last "name=value" pair of the line, leading to confusions...
-
-- Sterling committed his updated DNS cache code.
-
-- I worked with Georg Horn and comments from Götz Babin-Ebell and switched
- curl's socket operations completely over to non-blocking for the entire
- operation (previously we used non-blocking only for the connection phase).
- We had to do this to make the SSL connection phase timeout properly without
- the use of signals. A little extra code to deal with this was added.
-
-- T. Bharath pointed out a slightly obscure cookie engine flaw.
-
-- Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
- 204-replies never provides a response-body. This resulted in bad persistant
- behavior when 204 was received.
-
-Daniel (5 January 2002)
-- SM updated the VC++ library Makefiles for the new source files.
-
-Daniel (4 January 2002)
-- I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
- two places in the source code). One happened with VERBOSE set on connects,
- and the other when VERBOSE was on and krb4 over nat was used... I honestly
- don't think anyone has suffered from these mistakes.
-
-- I replaced a lot of silly occurances of printf() to instead use the more
- appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
- affected.
-
-- Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
- sparc on solaris 8).
-
-- After discussions on the libcurl list with Raoul Cridlig, I just made FTP
- response lines get passed to the header callback if such a one is
- registered. It'll make it possible for any application to get all the
- responses an FTP server sends to libcurl.
-
-Daniel (3 January 2002)
-- Sterling Hughes brought a few buckets of code. Now, libcurl will
- automatically cache DNS lookups and re-use the previous results first if any
- such is available. It greatly improves speed when doing many repeated
- operations to the same host.
-
-- As the test case uses --include and then --head, I had to modify src/main.c
- to deal with this situation slightly better than previously. When done, we
- have 100% good tests again in the main branch.
-
-Daniel (2 January 2002)
-- Made test case 25 run again in the multi-dev branch. But it seems that the
- changes done on dec-20 made test case 104 cease to work (in both branches).
-
-- Philip Gladstone pointed out a few portability problems in the source code
- that didn't compile on 64-bit sparcs using Sun's native compiler.
diff --git a/CHANGES.2002 b/CHANGES.2002
new file mode 100644
index 000000000..d5dba9357
--- /dev/null
+++ b/CHANGES.2002
@@ -0,0 +1,1504 @@
+Daniel (27 Dec 2002)
+- Philippe Raoult reported a bug with HTTPS connections which I evidently
+ added in my 19 dec fix. I corrected it.
+
+Daniel (20 Dec)
+- Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
+ script to make the default makefile less confusing "to the casual
+ installer".
+
+Version 7.10.3-pre3 (20 Dec)
+
+Daniel (19 Dec)
+- Matthew Blain patched the Curl_base64_decode() function.
+
+- Evan Jordan reported in bug report #653022 that the SSL_read() usage was
+ wrong, and it certainly was. It could lead to curl using too much CPU due to
+ a stupid loop.
+
+Daniel (18 Dec)
+- As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
+ CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
+ CURLOPT_FAILONERROR is set.
+
+Daniel (17 Dec)
+- Bug reported #651464, reported by Christopher Palmer, provided an example
+ source code using the multi interface that hang when trying to connect to a
+ proxy on a localhost port where no proxy was listening. This bug was not
+ repeatable on libcurls that were IPv6-enabled.
+
+Daniel (16 Dec)
+- Christopher Palmer also noticed what Vojtech Janota already was
+ experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
+ to crash when used on some older glibc versions. The problem is of course
+ the silliness of the 2.2.93. I committed a fix that hopefully should make
+ the binary run fine on either one of the versions, even though the solution
+ is not as nice as I'd like it to be.
+
+Daniel (13 Dec)
+- Bug report #651460 by Christopher R. Palmer showed that when using libcurl
+ to for example go over a proxy on localhost, it would attempt to connect
+ through the proxy TWICE.
+
+ I added test case 503 with which I managed to repeat this problem and I
+ fixed the code to not re-attempt any connects (which also made it a nicer
+ fix for the #650941 bug mentioned below).
+
+ The sws server was extended to deal with CONNECT in order to make test
+ case 503 do good.
+
+- Evan Jordan posted bug report #650989 about a memory leak in the public key
+ retrieving code. He provided a suggested fix and I merely applied it!
+
+- Bug report #650941, posted by Christopher R. Palmer identified a problem
+ with the multi interface and getting file:// URLs. This was now fixed and
+ test case 502 was added to verify this.
+
+Daniel (12 Dec)
+- Test case 500 and 501 are the first ever libcurl test cases that run.
+
+- Made "configure --enable-debug" cut off all -O* options to the compiler
+
+- Finally fixed the test suite's ftp server so that test case 402 doesn't
+ cause the following test case to fail anymore!
+
+Daniel (11 Dec)
+- CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
+ version perform uploads much faster!!! RBramante did lots of research on
+ this topic.
+
+- Fixed the #include in curl/curl.h to include the other files outside the
+ extern "C" scope.
+
+Daniel (10 Dec)
+- Moved around and added more logic:
+
+ First, POST data is never sent as part of the request headers in the http.c
+ code. It is always sent the "normal" read callback then send() way. This now
+ enables a plain HTTP POST to be sent chunked if we want to. This also
+ reduces the risk of having very big POSTs causing problems.
+
+ Further, sending off the initial HTTP request is not done using a loop
+ anymore. If it wasn't all sent off in the first send(), the rest of the
+ request is sent off in the normal transfer select() loop. This makes several
+ things possible, but mainly it makes libcurl block less when used from the
+ multi interface and it also reduces the risk of problems with issuing very
+ large requests.
+
+Daniel (9 Dec)
+- Moved the read callback pointer and data within the structs to a more
+ suitable place. This in preparation for a better HTTP-request sending code
+ without (a silly) loop.
+
+- The Dodds fix seems not to work.
+
+- Vojtech Janota tests proved that the resolve fix from oct 21st is not good
+ enough since obviously older glibcs might return EAGAIN without this meaning
+ that the buffer was too small.
+
+- [the other day] Made libcurl loop on recv() and send() now until done, and
+ then get back to select(). Previously it went back to select() more often
+ which really was a slight overhead. This was due to the reported performance
+ problems on HTTP PUT on Windows. I couldn't see any notable difference on
+ Linux...
+
+Version 7.10.3-pre2 (4 Dec 2002)
+
+Daniel (4 Dec 2002)
+- Lots of work with Malcolm Dodds made me add a temporary code fix that now
+ shortens the timeout waiting for the 226 or 250 line after a completed
+ FTP transfer.
+
+ If no data is received within 60 seconds, this is taken as a sign of a dead
+ control connection and we bail out.
+
+Daniel (3 Dec 2002)
+- Ralph's bug report #644841 identified a problem in which curl returned a
+ timeout error code when in fact the problem was not a timeout. The proper
+ error should now be propagated better when they're detected in the FTP
+ response reading function.
+
+- Updated the Borland Makefiles.
+
+Daniel (2 Dec 2002)
+- Nicolas Berloquin provided a patch that introduced --create-dirs to the
+ command line tool. When used in combination with -o, it lets curl create
+ [non-existing] directories used in -o, suitably used with #-combinations
+ such as:
+
+ curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
+ -o "dir_#1/pic#2.jpg" --create-dirs
+
+Version 7.10.3-pre1
+
+Daniel (28 Nov 2002)
+- I visited Lars Nordgren and had a go with his problem, which lead me to
+ implement this fix. If libcurl detects the added custom header
+ "Transfer-Encoding: chunked", it will now enable a chunked transfer.
+
+ Also, chunked transfer didn't quite work before but seems to do so now.
+
+- Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
+ didn't work on any platform...
+
+Daniel (26 Nov 2002)
+- Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
+
+- Dan Becker found and fixed a minor memory leak on persistent connnections
+ using CURLOPT_USERPWD.
+
+Daniel (22 Nov 2002)
+- Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
+ web server (sws) which now lets test case 306 run fine even in combination
+ with the other test cases.
+
+- Juan Ignacio Hervás found a crash in the verbose connect message that is
+ used on persistent connections. This bug was added in 7.10.2 due to the
+ rearranged name resolve code.
+
+Daniel (20 Nov 2002)
+- Kjetil Jacobsen provided a patch that introduces:
+
+ CURLOPT_PRIVATE stores a private pointer in the curl handle.
+
+ CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
+
+- Karol Pietrzak pointed out how curl-config --cflags didn't output a good
+ include dir so I've removed that for now.
+
+Version 7.10.2 (18 Nov 2002)
+
+Daniel (11 Nov 2002)
+- Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
+ properly build with MSVC on Windows.
+
+Daniel (8 Nov 2002)
+- Doing HTTP PUT without a specified file size now makes libcurl use
+ Transfer-Encoding: chunked.
+
+Daniel (7 Nov 2002)
+- Bug report #634625 identified how curl returned timeout immediately when
+ CURLOPT_CONNECTTIMEOUT was used and provided a fix.
+
+Version 7.10.2-pre4 (6 Nov 2002)
+
+Daniel (5 Nov 2002)
+- Lehel Bernadt found out and fixed. libcurl sent error message to the debug
+ output when it stored the error message.
+
+- Avery Fay found some problems with the DNS cache (when the cache time was
+ set to 0 we got a memory leak, but when the leak was fixed he got a crash
+ when he used the CURLOPT_INTERFACE with that) that had me do some real
+ restructuring so that we now have a reference counter in the dns cache
+ entries to prevent an entry to get flushed while still actually in use.
+
+ I also detected that we previously didn't update the time stamp when we
+ extracted an entry from the cache so that must've been a reason for some
+ very weird dns cache bugs.
+
+Version 7.10.2-pre3
+
+Daniel (31 Oct 2002)
+- Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
+ turned out this didn't help though.)
+
+- Disable the DNS cache (by setting the timeout to 0) made libcurl leak
+ memory. Avery Fay brought the example code that proved this.
+
+Version 7.10.2-pre2
+
+Daniel (28 Oct 2002)
+- Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
+
+- Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
+ variable (if --cacert isn't used) and if not set, the Windows version will
+ check for a file named "curl-ca-bundle.crt" in the current directory or the
+ directory where curl is located. That file is then used as CA root cert
+ bundle.
+
+- Avery Fay pointed out that curl's configure scrip didn't get right if you
+ used autoconf newer than 2.52. This was due to some badly quoted code.
+
+Version 7.10.2-pre1
+
+Daniel (23 Oct 2002)
+- Emiliano Ida confirmed that we now build properly with the Borland C++
+ compiler too. We needed yet another fix for the ISO cpp check in the curl.h
+ header file.
+
+- Yet another fix was needed to get the HTTP download without headers to work.
+ This time it was needed if the first "believed header" was read all in the
+ first read. Test 306 has not run properly since the 11th october fix.
+
+Daniel (21 Oct 2002)
+- Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
+ machines (running IPv6 disabled). Mats Lidell let me use an account on his
+ machine and I could verify that gethostbyname_r() has been changed to return
+ EAGAIN instead of ERANGE when the given buffer size is too small. This is
+ glibc 2.2.93.
+
+- Albert Chin helped me get the -no-undefined option corrected in
+ lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
+ want it present. Kevin Roth helped me try it out on cygwin.
+
+- Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
+ the ../ support got in (7.10.1).
+
+Daniel (18 Oct 2002)
+- Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
+ the multi interface.
+
+Daniel (17 Oct 2002)
+- Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
+ work quite as supposed. You needed to set it *before* you use
+ CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
+
+Daniel (15 Oct 2002)
+- Andrés García provided corrections for erratas in four libcurl man pages.
+
+Daniel (13 Oct 2002)
+- Starting now, we generate and include PDF versions of all the docs in the
+ release archives.
+
+Daniel (12 Oct 2002)
+- Trying to connect to a host on a bad port number caused the multi interface
+ to never return failure and it appeared to keep on trying forever (it just
+ didn't do anything).
+
+Daniel (11 Oct 2002)
+- Downloading HTTP without headers didn't work 100%, some of the initial data
+ got written twice. Kevin Roth reported.
+
+- Kevin Roth found out the "config file" parser in the client code could
+ segfault, like if DOS newlines were used.
+
+Version 7.10.1 (11 Oct 2002)
+
+Daniel (10 Oct 2002)
+- Jeff Lawson fixed a few problems with connection re-use that remained when
+ you set CURLOPT_PROXY to "".
+
+Daniel (9 Oct 2002)
+- Craig Davison found a terrible flaw and Cris Bailiff helped out in the
+ search. Getting HTTP data from servers when the headers are split up in
+ multiple reads, could cause junk data to get inserted among the saved
+ headers. This only concerns HTTP(S) headers.
+
+Daniel (8 Oct 2002)
+- Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
+ is set internally, the error text is sent to the debug function as well.
+
+- I fixed the telnet code to timeout properly as the option tells it to. On
+ non-windows platforms.
+
+Daniel (7 Oct 2002)
+- John Crow pointed out that libcurl-the-guide wasn't included in the release
+ tarball!
+
+- Kevin Roth pointed out that make install didn't do right if build outside
+ the source tree (ca-bundle wise).
+
+- FOLLOWLOCATION bugfix for the multi interface
+
+Daniel (4 Oct 2002)
+- Kevin Roth got problems with his cygwin build with -no-undefined was not
+ present in lib/Makefile.am so I put it back in there again. The poor one who
+ needs to remove it again must write a configure script to detect that need.
+
+- Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
+ or ../ stuff in the string passed back in a Location: header when following
+ locations.
+
+- Albert Chin helped me to work out a better configure.in check for zlib, and
+ both --without-zlib and -with-zlib seem to work rather well right now.
+
+- Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
+ become more accurate.
+
+Daniel (1 Oct 2002)
+- Detlef Schmier pointed out the lack of a --without-libz option to configure,
+ so I added one.
+
+Version 7.10 (1 Oct 2002)
+
+Daniel (30 Sep 2002)
+- Modified the curl_version_info() proto and returned struct once again, and
+ updated the man page accordingly.
+
+- Cris Bailiff found out that the pre-releases crashed on name lookups on
+ names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
+ to some weird return codes from gethostbyname_r(). I'll blame the complete
+ lack of docs in that department. Cris provided a fix, which I modified only
+ slightly.
+
+Daniel (27 Sep 2002)
+- After a suggestion from Christian Kurz to Debian curl package maintainer
+ Domenico Andreoli, I made it possible to override the proxy environment
+ variables better. Now, by setting -x "" you can explicitly tell libcurl to
+ not use a proxy, no matter whan the environment variables say.
+
+Version 7.10-pre4
+
+Daniel (26 Sep 2002)
+- Extended curl_version_info() more and wrote a man page for it.
+
+Daniel (25 Sep 2002)
+- libcurl could leak memory when downloading multiple files using http ranges,
+ reported and fixed by Jean-Luc Guevel.
+
+- Walter J. Mack provided code and docs for the new curl_free() function that
+ shall be used to free memory that is allocated by libcurl and returned back
+ to the application, as curl_escape() and curl_unescape() do.
+
+- Yarram Sunil pointed out a flaw in the multi interface where a failed
+ connection didn't close down properly and thus a second transfer using the
+ same handle failed.
+
+- Andrés García fixed a flaw that made (among other things) dict-fetches
+ return a random value.
+
+Daniel (24 Sep 2002)
+- Wez Furlong brought his initial patch that introduced curl_version_info().
+ We might need to tweak it somewhat before release.
+
+Daniel (20 Sep 2002)
+- Craig Markwardt fixed another Tru64 IP resolve problem.
+
+Daniel (19 Sep 2002)
+- Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
+ in the same style other code does.
+
+- Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
+ and -C - was used. The first file's resume position was then accidentally
+ reused on all the other files too.
+
+Daniel (18 Sep 2002)
+- The curl_easy_setopt.3 man page was greatly modified and the options have
+ now been grouped in logical groups so that it should be somewhat easier to
+ read it and find things you search for.
+
+Daniel (13 Sep 2002)
+- Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
+ send any headers back, only raw content. Right, that is a violation of the
+ standard but still happens at times and we need to deal with it. Test case
+ 306 was added to verify that we do right now.
+
+Version 7.10-pre3
+
+Daniel (11 Sep 2002)
+- Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
+ when you specified the URL with an IPv6 IP-address.
+
+Daniel (4 Sep 2002)
+- Sven Neuhaus made --silent being acknowledged even when multiple URLs
+ were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
+ even when told to shut up.
+
+Daniel (3 Sep 2002)
+- Updated all source code headers to use MIT-license references only, and
+ point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
+ URL. I've cut out all references to MPL that I could find.
+
+- Corected the makefiles to not always use -lz when linking
+
+Version 7.10-pre2
+
+Daniel (2 Sep 2002)
+- James Gallagher added Content-Encoding support to libcurl so now curl and
+ libcurl-using apps can request compressed contents using the 'deflate'
+ method. See the special file lib/README.encoding for details.
+
+ curl --compressed is now used to request compressed contents.
+
+ curl-config --feature will include 'libz' if this feature was around when
+ the library was built.
+
+Daniel (30 Aug 2002)
+- Applied an anonymous SOCKS5-proxy patch. Not properly working in all
+ situations though, as all getaddrinfo()-using libcurls will fail on this.
+ This is because of the somewhat naive way the current code tries to extract
+ the IP address of the proxy.
+
+- Fixed up the SSL cert fixes from the other day even more after more inputs
+ from Cris. Added three new SSL error codes to make the
+ CURLE_SSL_CONNECT_ERROR slightly less overloaded.
+
+Daniel (27 Aug 2002)
+- After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
+ decided to talk the bold path and I now made libcurl do CA certificate
+ verification by default. Thus library users need to explicitly turn this off
+ if you want to connect to sites without proper checking. We also install a
+ CA cert bundle on 'make install' now.
+
+ The curl tool now requires the -k/--insecure option in order to allow
+ connections and operations on SSL sites that aren't properly verified with
+ -cafile or --capath.
+
+ curl-config --ca displays the built-in path to the CA cert bundle.
+
+Daniel (26 Aug 2002)
+- Andrew Francis cleaned up some code that now compiles fine without the need
+ for ugly MSVC pragmas.
+
+- Keith MacDonald found a minor bug in src/main.c that made it close stdin
+ instead of the actual file handle. It shouldn't have resulted in much
+ trouble as most operating systems close all file handles on process exit
+ anyway.
+
+Daniel (22 Aug 2002)
+- Markus Oberhumer provided some documentation for his previously provided
+ CURLOPT_NOSIGNAL fix.
+
+- Patched the lib/Makefile.am to hopefully no longer complain on undefined
+ symbols that seemed to occur on builds with shared OpenSSL libraries on
+ Solaris lately...
+
+Daniel (20 Aug 2002)
+- Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
+ remove the pragmas from lib/config-win32.h and adjust the sources where
+ the warnings occur. Hiding them with pragmas like this is not the correct
+ way of dealing with compiler warnings.
+
+Daniel (13 Aug 2002)
+- Ulrich Zadow made the global include files in curl/* include themselves
+ using "curl.h" instead of <curl/curl.h> which thus allows people to more
+ freely decide how to include curl and how to setup their include paths.
+
+- Sterling Hughes added the curl_share* interface, somewhat as discussed
+ previously.
+
+- Jörn Hartroth pointed out that poll() was used in the pre1 source code and
+ it isn't very portable, so now I check for it in the configure script and
+ work around it.
+
+Version 7.9.9-pre1
+
+Daniel (12 Aug 2002)
+- Applied my initial take on making the multi stuff more asynchronous. Connects
+ should now return back without "hanging" until it has connected for real.
+ This should also be the case for FTP-PASV connects.
+
+Daniel (9 Aug 2002)
+- Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
+ which effectively prevents libcurl from doing anything that may cause
+ signals to get sent. This is basicly for multi-threaded applications that
+ now can use timeouts properly, without risking any signals to burst in and
+ ruin the party.
+
+Daniel (5 Aug 2002)
+- Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
+ work. When did that code vanish? Anyway, it's back again now and seems to
+ work!
+
+- Jonatan Lander found out that POSTing an empty string didn't work with the
+ command line tool.
+
+Daniel (3 Aug 2002)
+- Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
+ the multi interface enabled.
+
+Daniel (1 Aug 2002)
+- The ftp PORT command now uses a better default IP address, as it will
+ extract and use the local IP address used by the control connection.
+
+- Modified the #include lines in curl/multi.h to work better on more
+ platforms.
+
+Daniel (31 Jul 2002)
+- Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
+ problems.
+
+Daniel (30 Jul 2002)
+- Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
+ and don't get __STDC__ defined, which required us to extend the preprocessor
+ check for the ## operator usage.
+
+- Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
+ internal default function will be put back.
+
+- danfuzz at milk.com found out that libcurl badly assumed a space after
+ 'Set-Cookie:' so if it wasn't present, it caused the first letter of the
+ cookie name to fall off!
+
+Daniel (29 Jul 2002)
+- The password prompt asking for user password used stdout and now uses
+ stderr instead to better allow redirecting. It also leaked a fopen() file
+ handle that is now fixed.
+
+Daniel (28 Jul 2002)
+- HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
+ by M T.
+
+Daniel (26 Jun 2002)
+- Glen Nakamura solved a crash in the name resolving function for IP-only
+ addresses on Alpha Linux (at least).
+
+- T. Bharath corrected the high resolution timer introduced in 7.9.8.
+
+Daniel (22 Jun 2002)
+- Andrés García pointed out man page errors in curl_formadd.3. I fixed.
+
+Daniel (19 Jun 2002)
+- Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
+ tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
+ are translated by curl_unescape().
+
+Daniel (15 Jun 2002)
+- Added --limit-rate to the curl tool. Allows the user to set a maxmimum
+ upper limit to how much bandwidth to use for transfers.
+
+- CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
+ receive buffer in libcurl. The main point of this would be that the write
+ callback gets called more often and with smaller chunks.
+
+Daniel (14 Jun 2002)
+- Yarram Sunil found out that the SocketIsDead() function performed a lot
+ faster on Windows when removing the 1 microsecond timeout.
+
+- Hanno L. Kranzhoff fixed the VC++ project files.
+
+- Tom Mattison found out that ftp transfers closed the connection a little
+ too often.
+
+- Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
+ to disable specific protocols when building for Windows.
+
+Version 7.9.8
+
+Daniel (13 Jun 2002)
+- Time to let this baby go.
+
+Daniel (12 Jun 2002)
+- Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
+ CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a
+ multipart that appears as a regular file upload, but the data is provided
+ with a pointer and length.
+
+- Nico Baggus made the VMS version use sigsetjmp() too.
+
+- Jörn Hartroth fixed the mingw32 build using the mm lib.
+
+- Applied patches by Kris Kennaway that correct format string problems in
+ lib/ftp.c and lib/ldap.c.
+
+Version 7.9.8-pre3
+
+Daniel (11 Jun 2002)
+- James Cone brought the idea of using sigsetjmp() in the signal handler to
+ make the time-out of name lookups to work, even when the underlying name
+ resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
+ this may be a bit drastic, and also not likely to exist on all platforms. I
+ added careful checking for this in the configure script, even checks for it
+ being a macro (which seems to be the case in for example Linux).
+
+ sigsetjmp() seems to be mentioned in the Single Unix specification.
+
+- Miklos Nemeth brought a patch that allows libcurl to get built with specific
+ protocols disabled. This is done by running ./configure
+ --disable-[protocol].
+
+- FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
+ make precautions to not return this for range downloads.
+
+ Added test case 135 that makes an ftp range download. Had to tweak the
+ runtests.pl script a bit too.
+
+- Bug report #566835 identified a strlen() on a NULL pointer. Added additional
+ check to prevent this.
+
+Daniel (10 Jun 2002)
+- Found and corrected a connect failure problem that didn't create a human
+ error text.
+
+- Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
+ and comments from Götz Babin-Ebell.
+
+- Gautam Mani found a socket descriptor leak that happened when FTP transfers
+ failed and you reinvoked curl_easy_perform().
+
+Daniel (5 Jun 2002)
+- Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
+ matter when you decide to remove the CURL handle.
+
+- HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
+ makes windows builds stop complaining about "weak seeding" when it in fact
+ isn't.
+
+- Another 64bit architecture crash that was introduced in 7.9.7 was now
+ removed, as bug report #564585 clarified. This happened due to our attempts
+ to only allocate only as much memory as is actually needed for name
+ resolving (using realloc) which called for a function that could 'move' a
+ hostent struct in memory.
+
+Version 7.9.8-pre2
+
+Daniel (3 Jun 2002)
+- T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
+ made the CURLINFO_REQUEST_SIZE return the correct total request size. He
+ also made the win32 timers use higher resolution than before.
+
+Daniel (29 May 2002)
+- Renaud Chaillat made me aware of the fact that libcurl returned an error if
+ you tried to get an empty FTP file. This seemed like a wrong thing to do, so
+ now it no longer does that! I just hope that no one built anything fancy
+ upon this unexpected behavior...
+
+Daniel (28 May 2002)
+- Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
+ specifies a path to a directory with certificates rather than a single file
+ with them all concatenated. --capath was added to the command line tool
+ for the same function.
+
+ Windows users need to pay attention that the directory should be setup with
+ the c_rehash tool of the OpenSSL package, and that creates symlinks by
+ default that need to be replaced with actual copies to work on Windows.
+
+- Gustaf Hui provided new code that changes how curl_multi_info_read()
+ messages are stored, so that they don't have to be kept around for the multi
+ handle's entire life time. He also made it return failure codes properly
+ which it didn't do before.
+
+Daniel (27 May 2002)
+- Gustaf Hui pointed out that running curl_multi_perform() without doing
+ curl_multi_fdset() first was not really a working combo. I added an internal
+ check for this and have some extra select() code without timeout to make the
+ library internals work identically nevertheless. We might need to somehow
+ either document that once you've used the *_fdset() you should remain using
+ them in select() or you should blank them somehow so that libcurl won't go
+ crazy.
+
+Version 7.9.8-pre1
+
+Daniel (22 May 2002)
+- James Cone brought an excellent patch, including several tests and docs!
+ CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
+ --netrc-optional was introduced as an addition to --netrc to allow the
+ command line client to take use of all that new netrc stuff.
+
+- Bug report #558888 showed a case where libcurl re-used the previous host
+ name when a connection over a proxy was re-used but to a different target
+ host.
+
+Daniel (21 May 2002)
+- Edin Kadribasic helped me sort out a problem to made libcurl crash when
+ trying to HTTP POST an empty string.
+
+- Clarified that Juergen Wilke donated the original tests/server/sws.c code.
+
+- Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
+ CURLFORMcode instead of the previous 'int', and the various return codes are
+ now globally exported. It allows applications to better figure out what goes
+ wrong when curl_formadd() returns errors.
+
+Daniel (20 May 2002)
+- Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
+ is prefered to SSL_CTX_use_certificate_file().
+
+Daniel (17 May 2002)
+- Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
+ after my AIX fixes the other week.
+
+- Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
+ the DNS struct realloc stuff. Actually, this crash could happen on all
+ systems that made the pack_hostent() function get invoked.
+
+- I removed several compiler warnings in the test suite's HTTP server.
+
+Version 7.9.7
+
+Daniel (10 May 2002)
+- Kevin Roth adjusted the --trace-ascii output slightly.
+
+- Paul Harrington found out that src/writeout.c needed an additional header
+ file included for AIX builds
+
+Version 7.9.7-pre2
+
+Daniel (7 May 2002)
+- Updated the man page with --trace-ascii and -j/--junk-session-cookies.
+
+- Made --trace-ascii do pretty much the same as --trace but without the hex
+ part in the output.
+
+- Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
+ cookies read from a file. This option is enforced by the curl command line
+ tool using the new -j/--junk-session-cookies option. After discussions with
+ Kevin Roth. This makes it easier to use curl to fully emulate a browser's
+ behavior, even when it comes to "session cookies". Session cookies are
+ cookies that a normal browser discards when the browser is shut
+ down. They're identified by not having any expire date/time.
+
+- When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
+ this was discovered when --trace was made to crash.
+
+- Using -v and --trace at the same time confused matters. -v is now pretty
+ much ignored when --trace or --trace-ascii is used.
+
+- Made --trace (and --trace-ascii) support - as file name to pass output to
+ stdout instead. It makes it consistent with how other options work.
+
+Version 7.9.7-pre1
+
+Daniel (6 May 2002)
+- Added multi-post.c to the examples directory. I got the basic source for
+ this from Gustaf Hui.
+
+Daniel (3 May 2002)
+- CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
+ can be used to figure out the maximum buffer size your write callback can
+ get.
+
+- CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
+ an alias for CURLOPT_FILE. These two were added for conformity. Most other
+ callback function's userdata are provided with options using a similar name-
+ scheme.
+
+- Added "--trace [file]" to the command line tool. It makes a very detailed
+ trace dump get stored, with a full protocol dump that includes all received
+ and transmitted data. This could be a very effective tool for debugging what
+ goes wrong. This dump includes every byte the way it is sent to/received
+ from the server. The dump is the plain-text version, so SSL transfers will
+ still be readable.
+
+- I found out that the DEBUGFUNCTION was not called properly everywhere as we
+ wanted it to. I fixed it.
+
+- -D now stores all headers to the same file if multiple URLs are given on the
+ command line! Kevin Roth made me aware of that it didn't already do this!
+
+- Gustaf Hui wrote an excellent formpost example that used the multi
+ interface. Unfortunately, it didn't work due to several bugs in how
+ transfers were made when the multi interface was used.
+
+Daniel (2 May 2002)
+- Hanno Kranzhoff found out that when doing multiple transfers on the same
+ easy handle, the progress meter would show a bad "currently downloaded
+ value" when the transfer starts.
+
+Daniel (1 May 2002)
+- Applied another patch by Jacky Lam to make the name resolve info realloc()
+ stuff work properly.
+
+Daniel (28 April 2002)
+- curl_multi_info_read() is now implemented!
+
+Daniel (27 April 2002)
+- Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
+
+- I think I fixed the DNS cache prune crach Jacky Lam found and reported.
+
+- I cleaned up the name prefix stuff in the hash and llist modules.
+
+- FTP responses should now be better on timing out properly. The timeout value
+ is maximum timeout for the entire request operation, but before this, the
+ timeout was used as a maximum allowed time between two reads...
+
+Daniel (26 April 2002)
+- Fixed the test suite http server to not use snprintf() anymore due to better
+ portability.
+
+Daniel (25 April 2002)
+- With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
+ cause problems since the pruning is only checking the entry time, and it
+ sure could cause problems. Therefor, I've now added and changed code so that
+ this should not be a problem. Nowhere in the code will be store name
+ resolved information around so that a sunsequent DNS cache prune should
+ cause a problem. This of course called for some mild internal changes.
+
+Daniel (23 April 2002)
+- Improved the 'no_proxy' check, as using port numbers in the URL confused it
+ previously. Reported by Erwan Legrand in bug report #547484.
+
+- The --interface option now works even on IPv6 enabled builds. Reported by
+ 'thor'.
+
+Daniel (22 April 2002)
+- The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
+ names are still #defined too.) Pointed out by Robert Olson.
+
+- Jacky Lam brought code that lets the name resolve function only use as much
+ memory as it actually needs. This only works on certain operating systems,
+ but is totally transparant to all users.
+
+Daniel (19 April 2002)
+- Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
+
+Daniel (18 April 2002)
+- Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
+ experienced very big caches.
+
+Daniel (17 April 2002)
+- Dirk Manske patched the 301 response to work against the RFC but more like
+ common browsers do. If a POST get a 301 back, it'll switch to GET in the
+ next request (if location-following is enabled).
+
+Daniel (16 April 2002)
+- Dirk Manske posted a patch originally written by Ingo Wilken that introduced
+ two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
+ CURLINFO_REDIRECT_COUNT.
+
+Daniel (15 April 2002)
+- Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
+ reflect reality better, like when the first request isn't POST and when
+ the second isn't GET... :-)
+
+- Craig Davison pointed out that when curl_formadd()ing a file that doesn't
+ exist, libcurl doesn't return error. Now, curl_easy_perform() will return
+ CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
+
+Version 7.9.6
+
+Daniel (14 April 2002)
+- Dirk Manske brought a fix that makes libcurl strip off white spaces from the
+ beginning of cookie contents.
+
+- Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
+ Moonesamy pointed out the problem, Bjorn Reese the solution.
+
+Version 7.9.6-pre5
+
+Daniel (12 April 2002)
+- Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
+ FTP transfers got the "connect done" time set after the initial FTP commands
+ and not directly after the TCP/IP connect as it should.
+
+ I also made the time stamp get set even if the connect itself fails, which
+ it didn't do previously.
+
+- Jean-Philippe Barrette-LaPierre provided his patch that introduces
+ CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
+ callback to receive debug/information data. That includes headers and data
+ that is received and sent. CURLOPT_VERBOSE still controls it.
+
+ By default, there is an internal debugfunction that will make things look
+ and work as before if not changed.
+
+Daniel (10 April 2002)
+- Sebastien Willemijns found out that -x didn't use the default port number as
+ is documented. It does now.
+
+- libcurl-errors.3 is a new man page attempting to document all libcurl error
+ codes
+
+- Added two new error codes and changed the behaviour of two old ones
+ slightly:
+
+ CURLE_WRITE_ERROR
+ This error was returned *both* for errors that occured when writing
+ received data to a local file, as well as when we get problems writing data
+ to a remote server. CURLE_SEND_ERROR has now been added for the latter
+ error.
+
+ CURLE_READ_ERROR
+ This error was similarly returned *both* for errors when reading a local
+ file, as well as when getting problems when reading network data.
+ CURLE_RECV_ERROR has now been added for the latter error.
+
+ (Two test cases were adjusted accordingly.)
+
+Daniel (9 April 2002)
+- runtests.pl now sets the HOME variable before running curl, to prevent any
+ actual ~/.curlrc file to fool the tests!
+
+Version 7.9.6-pre4
+
+Daniel (8 April 2002)
+- Michael Curtis provided new functionality for curl on some platforms. Using
+ the --environment option, curl will *set* a bunch of environment variables
+ to values. The names are the same ones as for the -w/--writeout option.
+
+ For now, this only works on the RISC OS version, as this feature relies on
+ both OS support and that it matches OS paradigms.
+
+- Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
+ and 304, I edited it slightly.
+
+Daniel (5 April 2002)
+- As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
+ when used in windows), is now loaded from the current directory if the HOME
+ environment variable isn't set (or if it is too long). I also enlarged the
+ array used to store the full file path in, to 512 bytes.
+
+- Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
+ was stupid and the change was reverted. Added test case 48 to verify the
+ functionality.
+
+Version 7.9.6-pre3
+
+Daniel (4 April 2002)
+- Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
+ pre-ISO compilers, like when using gcc -traditional.
+
+Daniel (3 April 2002)
+- Jacky Lam identified a glitch when getting headers-only, where libcurl would
+ "hang" 1 second in vain in the select() loop before returning back.
+
+- Tor Arntsen brought a patch for multipart formposts. It turned out that the
+ "CGI_Lite Perl package" makes some bad assumptions on what letters that may
+ be used in boundary strings and thus curl could confuse it by including '+'
+ and '/'. While this is standards-compliant, we change the behavior to work
+ smoothly with existing software based on that package.
+
+Daniel (2 April 2002)
+- Gerhard Herre filed bug report #536238 where he pointed out a crash in
+ verbose FTP passive transfers for AIX.
+
+- Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
+ take care of all errors that SSL_read() could return.
+
+- Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
+
+Daniel (27 March 2002)
+- T. Bharath pointed out a flaw in the connection re-use function that didn't
+ check proxy connections properly for "deadness" before they were re-used.
+
+- Pedro Neves found out that HTTP POSTing with --data-binary did not properly
+ work under Windows as the file specified wasn't read fully binary!
+
+Daniel (25 March 2002)
+- Jacky Lam brought a fix that improves treatment of cookies using identical
+ domains but with leading dots properly.
+
+Daniel (22 March 2002)
+- Miklos Nemeth updated the windows section of the docs/INSTALL file and the
+ windows makefiles.
+
+- Jon Dillon provided us with several good-looking curl images for
+ promotion. View them here http://curl.haxx.se/icons.html
+
+Daniel (20 March 2002)
+- Peter Verhas found out that CRLF replacement in uploads was not working. I
+ fixed it, and added test case 128 that verifies the functionality.
+
+- The list formerly known as curl-main is now named curl-users and is hosted
+ by sourceforge. Susbcribe to the new list, get off the old one.
+
+Version 7.9.6-pre2
+
+Daniel (19 March 2002)
+- Made -G and -I on the same command line cause an error.
+
+- Moved the multi.h file to the "public" include directory and made it get
+ included by curl.h so that no extra include files will be necessary to use
+ it.
+
+ Added docs and man pages for the multi interface to the release archive.
+ Added the three example source codes too.
+
+ Necessary steps in my campaign to sneak in the multi interface... ;-)
+
+- Updated the year in all copyright notices in all C and H files.
+
+Daniel (18 March 2002)
+- Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
+ in 7.9.5... Added test case 32 for this.
+
+Version 7.9.6-pre1
+
+Daniel (16 March 2002)
+- Peter Verhas pointed out that the curl_escape and curl_unscape man pages
+ contained factual errors.
+
+- Albert Choy found and corrected a problem with the verbose output when doing
+ PASV ftp transfers. It could make libcurl crash.
+
+ Details in bug report #530562:
+ http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
+
+Daniel (15 March 2002)
+- Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
+ the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
+ capability! That patch is now reverted.
+
+ The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
+ hosts are instead made by first checking if the stack is IPv6-enabled and if
+ not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
+
+- T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
+ as described in the man page, libcurl did not return the documented error
+ code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
+ now corrected.
+
+Daniel (14 March 2002)
+- Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
+ data from the callback.
+
+- The GOPHER support seems to be broken. I don't think I'll even start fixing
+ it until someone else finds out... :-)
+
+Daniel (13 March 2002)
+- Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
+ string. If such a file would be present, curl returned the size of it! Now
+ we prevent this.
+
+- Curl_sendf() was fixed to deal with situation where Curl_write() would've
+ blocked and thus return -1.
+
+- Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
+
+- All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
+ CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
+ CURLFORM_* list proprely and unrestricted until this was the case. It was
+ also a bit peculiar to users why some options could be used in an array
+ while others couldn't.
+
+- Removed some silly CRLF lines that had accidentally slipped into src/main.c
+ Nico Baggus pointed them out to me.
+
+Daniel (11 March 2002)
+- CURLFORM_FILENAME was added. This can be set when creating a file upload
+ part, to set the 'filename' field to a custom value. If this isn't used,
+ the actually used filename will be included instead (as libcurl always has
+ done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
+ too, and allows constructs such as:
+
+ -F 'name=@filename;filename=/dev/null'
+
+ and this can be combined with type= too, in a manner similar to:
+
+ -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
+
+ Test case 39 was added to verify this functionality.
+
+- The struct formerly known as HttpPost is now named curl_httppost to properly
+ use the curl name space. I added a #define for the old name to make existing
+ programs compile even when this new include file is used.
+
+Daniel (8 March 2002)
+- Clifford also discovered that if the client code failed early, as when doing
+ "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
+ on some systems.
+
+- Clifford Wolf provided a patch that made --progress-bar work again.
+
+- I closed bug report #527032 by making sure that we add a newline after a
+ transfer when --progress-bar has been used. Before, without the newline, it
+ made the subsequent text come out wrong.
+
+Version 7.9.5
+
+Daniel (7 March 2002)
+- Added docs/KNOWN_BUGS to the release archive.
+
+Daniel (6 March 2002)
+- Kevin Roth corrected a flaw in the curl client globbing code that made it
+ mess up backslashes. This was most notable on windows (cygwin) machines when
+ using file://.
+
+- Brad provided another fix for building outside the source-tree.
+
+- Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
+
+Daniel (5 March 2002)
+- I noticed that the typedef in curl.h for the progress callback prototype was
+ wrong and thus applications that used it would not get the proper input
+ data. It used size_t where the implementation actually uses doubles!
+
+ I wish I could blame someone else, but this was my fault. Again.
+
+Version 7.9.5-pre6
+
+Daniel (4 March 2002)
+- Cut off the changes done during 2001 from this changelog file and put them
+ in a separate file (CHANGES.2001), available from CVS of course.
+
+- I removed the multi directory. The example sources were moved to the
+ docs/examples directory where they belong.
+
+- Wrote 7 new man pages for the current functions in the new multi interface.
+ They're all still pretty basic, but we can use them as a start and add more
+ contents to them when we figure out what to write. The large amount of man
+ pages for libcurl now present made me decide to put them in a new separate
+ subdirectory in the docs directory. Named libcurl.
+
+- Giuseppe Corbelli provided a template file for the EPM package manager, it
+ gets generated nicely by the configure script now.
+
+Version 7.9.5-pre5
+
+Daniel (1 March 2002)
+- Moved the memanalyze.pl script into the tests/ dir and added it to the
+ release archives. It was previously only present in the CVS tree.
+
+- Modified the February 17th Host: fix, as bug report #523718 pointed out that
+ it caused crashes!
+
+- Nico Baggus added more error codes to the VMS stuff.
+
+- Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
+ option. It is just another FTP quote option that allows the user to specify
+ a list of FTP commands to issue *just before* the transfer command (RETR or
+ STOR etc). It has turned up a few systems that really need this.
+
+ The curl command line tool can also take advantage of this by prefixing the
+ quote commands with a plus (+) in similar style that post transfer quote
+ commands are specified.
+
+ This is not yet documented. There is no test case for this yet.
+
+Daniel (28 February 2002)
+- Ralph Mitchell made some serious efforts and put a lot of sweat in setting
+ up scripts and things for me to be able to repeat his problems, and I
+ finally could. I found a problem with the header byte counter that wasn't
+ increased properly and thus we could return CURLE_GOT_NOTHING when we in
+ fact had received data.
+
+Daniel (27 February 2002)
+- I had to revert the non-space parsing cookie fix I posted to the mailing
+ list. Expire dates do have spaces and still need to get parsed properly!
+ Instead we just ignore trailing white space and it seems to work...
+
+Daniel (26 February 2002)
+- Made the cookie property 'Max-Age' work, just since we already tried to
+ support it, it is better to do it right. No one uses this anyway.
+
+- The cookie parser could crash if a really weird (illegal) cookie line was
+ received. I also made it better discard really oddly formatted lines better.
+
+ Made the cookie jar store the second field from the left using the syntax
+ that Netscape and Mozilla probably like. Curl itself ignores it.
+
+ Added test case 31 for these cases.
+
+ Clay Loveless' email regarding some cookie issues started my cleanup.
+
+- Kevin Roth pointed out that my automake fiddles broke the ability to build
+ outside the source-tree and I posted a patch to the mailing list that brings
+ this ability back.
+
+Version 7.9.5-pre4
+
+Daniel (25 February 2002)
+- Fiddled with the automake files to make all source files in the lib
+ directory not have ../src in the include path, and the src sources shouldn't
+ have ../lib!
+
+- All 79 test cases ran OK under Linux and Solaris using the new HTTP server
+ in the test suite. The new HTTP server was first donated by Georg Horn and
+ subsequently modified to work with the test suite. It is currently still not
+ portable enough to run on "all over" but this is a start and I can run all
+ curl tests on my machines. This is an important requirement for the upcoming
+ public release.
+
+- Using -d and -I on the same command line now reports an error, as it implies
+ two different HTTP requests that can't be mixed.
+
+- Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
+ support %{content_type} to get the content type of the recent download.
+
+- Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
+ and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
+ out if we could include winsock.h which turns out not to be a wise choice to
+ do on cygwin since it has the file but can't include it!
+
+Daniel (22 February 2002)
+- Added src/config-vms.h to the release archive.
+
+- Fixed the connection timeout value again, the change from February 18 wasn't
+ complete.
+
+Version 7.9.5-pre3
+
+Daniel (21 February 2002)
+- Kevin Roth and Andrés García both found out that lib/config.h.in was missing
+ in the pre-release archive and thus the configure script failed.
+
+Version 7.9.5-pre2
+
+Daniel (20 February 2002)
+- Andrés García provided a solution to bug report #515228. the total time
+ counter was not set correctly when -I was used during some conditions (all
+ headers were read in one single read).
+
+- Nico Baggus provided a huge patch with minor tweaks all over to make curl
+ compile nicely on VMS.
+
+Daniel (19 February 2002)
+- Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
+ getaddrinfo() calls, he could speed up some name resolving calls with an
+ order of magnitudes on his Redhat Linux 7.2.
+
+- Philip Gladstone found a second INADDR_NONE problem where we used long
+ intead of in_addr_t which caused 64bit problemos. We really shouldn't define
+ that on two different places.
+
+Daniel (18 February 2002)
+- Philip Gladstone found a problem in how HTTP requests were sent if the
+ request couldn't be sent all at once.
+
+- Emil found and corrected a bad connection timeout comparison that made curl
+ use the longest of connect-timeout and timout as a timeout value, instead of
+ the shortest as it was supposed to!
+
+- Aron Roberts provided updated information about LDAP URL syntax to go into
+ the manual as a replacement for the old references.
+
+Daniel (17 February 2002)
+- Philip Gladstone pointed out two missing include files that made curl core
+ dump on 64bit architectures. We need to pay more attention on these details.
+ It is *lethal* to for example forget the malloc() prototype, as 'int' is
+ 32bit and malloc() must return a 64bit pointer on these platforms.
+
+- Giaslas Georgios fixed a problem with Host: headers on repeated requests on
+ the same handle using a proxy.
+
+Daniel (8 February 2002)
+- Hanno L. Kranzhoff accurately found out that disabling the Expect: header
+ when doing multipart formposts didn't work very well. It disabled other
+ parts of the request header too, resulting in a broken header. When I fixed
+ this, I also noticed that the Content-Type wasn't possible to disable. It is
+ now, even though it probably is really stupid to try to do this (because of
+ the boundary string that is included in the internally generated header,
+ used as form part separator.)
+
+Daniel (7 February 2002)
+- I moved the config*.h files from the root directory to the lib/ directory.
+
+- I've added the new test suite HTTP server to the CVS repository, It seems to
+ work pretty good now, but we must make it get used by the test scripts
+ properly and then we need to make sure that it compiles, builds and runs on
+ most operating systems.
+
+Version 7.9.5-pre1
+
+Daniel (6 February 2002)
+- Miklos Nemeth provided updated windows makefiles and INSTALL docs.
+
+- Mr Larry Fahnoe found a problem with formposts and I managed to track down
+ and patch this bug. This was actually two bugs, as the posted size was also
+ said to be two bytes too large.
+
+- Brent Beardsley found out and brought a correction for the
+ CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
+ accidentaly broke Giaslas Georgios' patch.
+
+Daniel (5 February 2002)
+- Kevin Roth found yet another SSL download problem.
+
+Version 7.9.4
+
+- no changes since pre-release
+
+Version 7.9.4-pre2
+
+Daniel (3 February 2002)
+- Eric Melville provided a few spelling corrections in the curl man page.
+
+Daniel (1 February 2002)
+- Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
+ uses gmtime_r() on all hosts that have it.
+
+Daniel (31 January 2002)
+- An anonymous bug report identified a problem in the DNS caching which made it
+ sometimes allocate one byte too little to store the cache entry in. This
+ happened when the port number started with 1!
+
+- Albert Chin provided a patch that improves the gethostbyname_r() configure
+ check on HP-UX 11.00.
+
+Version 7.9.4-pre1
+
+Daniel (30 January 2002)
+- Georg Horn found another way the SSL reading failed due to the non-blocking
+ state of the sockets! I fixed.
+
+Daniel (29 January 2002)
+- Multipart formposts now send the full request properly, including the CRLF.
+ They were previously treated as part of the post data.
+
+- The upload byte counter bugged.
+
+- T. Bharath pointed out that we seed SSL on every connect, which is a time-
+ consuming operation that should only be needed to do once. We patched
+ libcurl to now only seed on the first connect when unseeded. The seeded
+ status is global so it'll now only happen once during a program's life time.
+
+ If the random_file or egdsocket is set, the seed will be re-made though.
+
+- Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
+ curl_easy_getinfo() read the content-type from the previous request.
+
+Daniel (28 January 2002)
+- Kjetil Jacobsen found a way to crash curl and after much debugging, it
+ turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
+ name resolving.
+
+- Andreas Damm posted a huge patch that made the curl_getdate() function fully
+ reentrant!
+
+- Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
+ CURLOPT_POSTFIELDS. You can now!
+
+Daniel (25 January 2002)
+- Krishnendu Majumdar pointed out that the header length counter was not reset
+ between multiple requests on the same handle.
+
+- Pedro Neves rightfully questioned why curl always append \r\n to the data
+ that is sent in HTTP POST requests. Unfortunately, this broke the test suite
+ as the test HTTP server is lame enough not to deal with this... :-O
+
+- Following Location: headers when the connection didn't close didn't work as
+ libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
+ the restructured internals. 'Frank' posted a bug report about this.
+
+Daniel (24 January 2002)
+- Kevin Roth very quickly spotted that we wrongly installed the example
+ programs that were built in the multi directory, when 'make install' was
+ used. :-/
+
+Version 7.9.3
+
+Daniel (23 January 2002)
+- Andrés García found a persistancy problem when doing HTTP HEAD, that made
+ curl "hang" until the connection was closed by the server. This problem has
+ been introduced in 7.9.3 due to internal rewrites, this was not present in
+ 7.9.2.
+
+Version 7.9.3-pre4
+
+Daniel (19 January 2002)
+- Antonio filed bug report #505514 and provided a fix! When doing multipart
+ formposts, libcurl would include an error text in the actual post if a
+ specified file wasn't found. This is not libcurl's job. Instead we add an
+ empty part.
+
+Daniel (18 January 2002)
+- Played around with stricter compiler warnings for gcc (when ./configure
+ --enable-debug is used) and changed some minor things to stop the warnings.
+
+- Commented out the 'long long' and 'long double' checks in configure.in, as
+ we don't currently use them anyway and the code in lib/mprintf.c that use
+ them causes warnings.
+
+- Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
+ to correct them. Two compiler warnings were removed as well.
+
+- Andrés García fixed two minor mingw32 building problems.
+
+Version 7.9.3-pre3
+
+Daniel (17 January 2002)
+- docs/libcurl-the-guide is a new tutorial for our libcurl programming
+ friends.
+
+- Richard Archer brought back the ability to compile and build with OpenSSL
+ versions before 0.9.5.
+ [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
+
+- The DNS cache code didn't take the port number into account, which made it
+ work rather bad on IPv6-enabled hosts (especially when doing passive
+ FTP). Sterling fixed it.
+
+Daniel (16 January 2002)
+- Georg Horn could make a transfer time-out without error text. I found it and
+ corrected it.
+
+- SSL writes didn't work, they return an uninitialized value that caused
+ havoc all over. Georg Horn experienced this.
+
+- Kevin Roth patched the curl_version() function to use the proper OpenSSL
+ function for version information. This way, curl will report the version of
+ the SSL library actually running right now, not the one that had its headers
+ installed when libcurl was built. Mainly intersting when running with shared
+ OpenSSL libraries.
+
+Version 7.9.3-pre2
+
+Daniel (16 January 2002)
+- Mofied the main transfer loop and related stuff to deal with non-blocking
+ sockets in the upload section. While doing this, I've now separated the
+ connection oriented buffers to have one for downloads and one for uploads
+ (as two can happen simultaneously). I also shrunk the buffers to 20K
+ each. As we have a scratch buffer twice the size of the upload buffer, we
+ arrived at 80K for buffers compared with the previous 150K.
+
+- Added the --cc option to curl-config command as it enables so very cool
+ one-liners. Have a go a this one, building the simple.c example:
+
+ $ `curl-config --cc --cflags --libs` -o example simple.c
+
+Daniel (14 January 2002)
+- I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
+ only need to address all writes (send) too and then I'm ready for another
+ pre-release...
+
+- Stoned Elipot patched the in_addr_t configure test to make it work better on
+ more platforms.
+
+Daniel (9 January 2002)
+- Cris Bailiff found out that filling up curl's SSL session cache caused a
+ crash!
+
+- Posted the curl questionnaire on the web site. If you haven't posted your
+ opinions there yet, go there and do it now while it is still there:
+
+ http://curl.haxx.se/q/
+
+- Georg Horn quickly found out that the SSL reading no longer worked as
+ supposed since the switch to non-blocking sockets. I've made a quick patch
+ (for reading only) but we should improve it even further.
+
+Version 7.9.3-pre1
+
+Daniel (7 January 2002)
+- I made the 'bool' typedef use an "unsigned char". It makes it the same on
+ all platforms, no matter what the platform thinks the default format for
+ char is. This was noticed since we made a silly comparison involving such a
+ bool variable, and only one compiler/platform combination (on Debian Linux)
+ complained about it (that happened to have its char unsigned by default).
+
+- Bug report #495290 identified a cookie parsing problem that was corrected.
+ When a Set-Cookie: line is received without a trailing semicolon, libcurl
+ didn't read the last "name=value" pair of the line, leading to confusions...
+
+- Sterling committed his updated DNS cache code.
+
+- I worked with Georg Horn and comments from Götz Babin-Ebell and switched
+ curl's socket operations completely over to non-blocking for the entire
+ operation (previously we used non-blocking only for the connection phase).
+ We had to do this to make the SSL connection phase timeout properly without
+ the use of signals. A little extra code to deal with this was added.
+
+- T. Bharath pointed out a slightly obscure cookie engine flaw.
+
+- Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
+ 204-replies never provides a response-body. This resulted in bad persistant
+ behavior when 204 was received.
+
+Daniel (5 January 2002)
+- SM updated the VC++ library Makefiles for the new source files.
+
+Daniel (4 January 2002)
+- I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
+ two places in the source code). One happened with VERBOSE set on connects,
+ and the other when VERBOSE was on and krb4 over nat was used... I honestly
+ don't think anyone has suffered from these mistakes.
+
+- I replaced a lot of silly occurances of printf() to instead use the more
+ appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
+ affected.
+
+- Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
+ sparc on solaris 8).
+
+- After discussions on the libcurl list with Raoul Cridlig, I just made FTP
+ response lines get passed to the header callback if such a one is
+ registered. It'll make it possible for any application to get all the
+ responses an FTP server sends to libcurl.
+
+Daniel (3 January 2002)
+- Sterling Hughes brought a few buckets of code. Now, libcurl will
+ automatically cache DNS lookups and re-use the previous results first if any
+ such is available. It greatly improves speed when doing many repeated
+ operations to the same host.
+
+- As the test case uses --include and then --head, I had to modify src/main.c
+ to deal with this situation slightly better than previously. When done, we
+ have 100% good tests again in the main branch.
+
+Daniel (2 January 2002)
+- Made test case 25 run again in the multi-dev branch. But it seems that the
+ changes done on dec-20 made test case 104 cease to work (in both branches).
+
+- Philip Gladstone pointed out a few portability problems in the source code
+ that didn't compile on 64-bit sparcs using Sun's native compiler.