From cc4ff62681c593e47e74b7a431f5f6427346b9b5 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 23 Jul 2003 11:59:20 +0000 Subject: [PATCH] Split out the changes from the year 2002 into a separate file, named CHANGES.2002. --- CHANGES | 1522 +------------------------------------------------- CHANGES.2002 | 1504 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1521 insertions(+), 1505 deletions(-) create mode 100644 CHANGES.2002 diff --git a/CHANGES b/CHANGES index ec7bb0ec25..3f07fca524 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 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 0000000000..d5dba9357e --- /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 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.