2 - Philippe Raoult reported a bug with HTTPS connections which I evidently
3 added in my 19 dec fix. I corrected it.
6 - Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
7 script to make the default makefile less confusing "to the casual
10 Version 7.10.3-pre3 (20 Dec)
13 - Matthew Blain patched the Curl_base64_decode() function.
15 - Evan Jordan reported in bug report #653022 that the SSL_read() usage was
16 wrong, and it certainly was. It could lead to curl using too much CPU due to
20 - As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
21 CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
22 CURLOPT_FAILONERROR is set.
25 - Bug reported #651464, reported by Christopher Palmer, provided an example
26 source code using the multi interface that hang when trying to connect to a
27 proxy on a localhost port where no proxy was listening. This bug was not
28 repeatable on libcurls that were IPv6-enabled.
31 - Christopher Palmer also noticed what Vojtech Janota already was
32 experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
33 to crash when used on some older glibc versions. The problem is of course
34 the silliness of the 2.2.93. I committed a fix that hopefully should make
35 the binary run fine on either one of the versions, even though the solution
36 is not as nice as I'd like it to be.
39 - Bug report #651460 by Christopher R. Palmer showed that when using libcurl
40 to for example go over a proxy on localhost, it would attempt to connect
41 through the proxy TWICE.
43 I added test case 503 with which I managed to repeat this problem and I
44 fixed the code to not re-attempt any connects (which also made it a nicer
45 fix for the #650941 bug mentioned below).
47 The sws server was extended to deal with CONNECT in order to make test
50 - Evan Jordan posted bug report #650989 about a memory leak in the public key
51 retrieving code. He provided a suggested fix and I merely applied it!
53 - Bug report #650941, posted by Christopher R. Palmer identified a problem
54 with the multi interface and getting file:// URLs. This was now fixed and
55 test case 502 was added to verify this.
58 - Test case 500 and 501 are the first ever libcurl test cases that run.
60 - Made "configure --enable-debug" cut off all -O* options to the compiler
62 - Finally fixed the test suite's ftp server so that test case 402 doesn't
63 cause the following test case to fail anymore!
66 - CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
67 version perform uploads much faster!!! RBramante did lots of research on
70 - Fixed the #include in curl/curl.h to include the other files outside the
74 - Moved around and added more logic:
76 First, POST data is never sent as part of the request headers in the http.c
77 code. It is always sent the "normal" read callback then send() way. This now
78 enables a plain HTTP POST to be sent chunked if we want to. This also
79 reduces the risk of having very big POSTs causing problems.
81 Further, sending off the initial HTTP request is not done using a loop
82 anymore. If it wasn't all sent off in the first send(), the rest of the
83 request is sent off in the normal transfer select() loop. This makes several
84 things possible, but mainly it makes libcurl block less when used from the
85 multi interface and it also reduces the risk of problems with issuing very
89 - Moved the read callback pointer and data within the structs to a more
90 suitable place. This in preparation for a better HTTP-request sending code
91 without (a silly) loop.
93 - The Dodds fix seems not to work.
95 - Vojtech Janota tests proved that the resolve fix from oct 21st is not good
96 enough since obviously older glibcs might return EAGAIN without this meaning
97 that the buffer was too small.
99 - [the other day] Made libcurl loop on recv() and send() now until done, and
100 then get back to select(). Previously it went back to select() more often
101 which really was a slight overhead. This was due to the reported performance
102 problems on HTTP PUT on Windows. I couldn't see any notable difference on
105 Version 7.10.3-pre2 (4 Dec 2002)
108 - Lots of work with Malcolm Dodds made me add a temporary code fix that now
109 shortens the timeout waiting for the 226 or 250 line after a completed
112 If no data is received within 60 seconds, this is taken as a sign of a dead
113 control connection and we bail out.
116 - Ralph's bug report #644841 identified a problem in which curl returned a
117 timeout error code when in fact the problem was not a timeout. The proper
118 error should now be propagated better when they're detected in the FTP
119 response reading function.
121 - Updated the Borland Makefiles.
124 - Nicolas Berloquin provided a patch that introduced --create-dirs to the
125 command line tool. When used in combination with -o, it lets curl create
126 [non-existing] directories used in -o, suitably used with #-combinations
129 curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
130 -o "dir_#1/pic#2.jpg" --create-dirs
135 - I visited Lars Nordgren and had a go with his problem, which lead me to
136 implement this fix. If libcurl detects the added custom header
137 "Transfer-Encoding: chunked", it will now enable a chunked transfer.
139 Also, chunked transfer didn't quite work before but seems to do so now.
141 - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
142 didn't work on any platform...
145 - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
147 - Dan Becker found and fixed a minor memory leak on persistent connnections
148 using CURLOPT_USERPWD.
151 - Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
152 web server (sws) which now lets test case 306 run fine even in combination
153 with the other test cases.
155 - Juan Ignacio Hervás found a crash in the verbose connect message that is
156 used on persistent connections. This bug was added in 7.10.2 due to the
157 rearranged name resolve code.
160 - Kjetil Jacobsen provided a patch that introduces:
162 CURLOPT_PRIVATE stores a private pointer in the curl handle.
164 CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
166 - Karol Pietrzak pointed out how curl-config --cflags didn't output a good
167 include dir so I've removed that for now.
169 Version 7.10.2 (18 Nov 2002)
172 - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
173 properly build with MSVC on Windows.
176 - Doing HTTP PUT without a specified file size now makes libcurl use
177 Transfer-Encoding: chunked.
180 - Bug report #634625 identified how curl returned timeout immediately when
181 CURLOPT_CONNECTTIMEOUT was used and provided a fix.
183 Version 7.10.2-pre4 (6 Nov 2002)
186 - Lehel Bernadt found out and fixed. libcurl sent error message to the debug
187 output when it stored the error message.
189 - Avery Fay found some problems with the DNS cache (when the cache time was
190 set to 0 we got a memory leak, but when the leak was fixed he got a crash
191 when he used the CURLOPT_INTERFACE with that) that had me do some real
192 restructuring so that we now have a reference counter in the dns cache
193 entries to prevent an entry to get flushed while still actually in use.
195 I also detected that we previously didn't update the time stamp when we
196 extracted an entry from the cache so that must've been a reason for some
197 very weird dns cache bugs.
202 - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
203 turned out this didn't help though.)
205 - Disable the DNS cache (by setting the timeout to 0) made libcurl leak
206 memory. Avery Fay brought the example code that proved this.
211 - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
213 - Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
214 variable (if --cacert isn't used) and if not set, the Windows version will
215 check for a file named "curl-ca-bundle.crt" in the current directory or the
216 directory where curl is located. That file is then used as CA root cert
219 - Avery Fay pointed out that curl's configure scrip didn't get right if you
220 used autoconf newer than 2.52. This was due to some badly quoted code.
225 - Emiliano Ida confirmed that we now build properly with the Borland C++
226 compiler too. We needed yet another fix for the ISO cpp check in the curl.h
229 - Yet another fix was needed to get the HTTP download without headers to work.
230 This time it was needed if the first "believed header" was read all in the
231 first read. Test 306 has not run properly since the 11th october fix.
234 - Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
235 machines (running IPv6 disabled). Mats Lidell let me use an account on his
236 machine and I could verify that gethostbyname_r() has been changed to return
237 EAGAIN instead of ERANGE when the given buffer size is too small. This is
240 - Albert Chin helped me get the -no-undefined option corrected in
241 lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
242 want it present. Kevin Roth helped me try it out on cygwin.
244 - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
245 the ../ support got in (7.10.1).
248 - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
252 - Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
253 work quite as supposed. You needed to set it *before* you use
254 CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
257 - Andrés García provided corrections for erratas in four libcurl man pages.
260 - Starting now, we generate and include PDF versions of all the docs in the
264 - Trying to connect to a host on a bad port number caused the multi interface
265 to never return failure and it appeared to keep on trying forever (it just
269 - Downloading HTTP without headers didn't work 100%, some of the initial data
270 got written twice. Kevin Roth reported.
272 - Kevin Roth found out the "config file" parser in the client code could
273 segfault, like if DOS newlines were used.
275 Version 7.10.1 (11 Oct 2002)
278 - Jeff Lawson fixed a few problems with connection re-use that remained when
279 you set CURLOPT_PROXY to "".
282 - Craig Davison found a terrible flaw and Cris Bailiff helped out in the
283 search. Getting HTTP data from servers when the headers are split up in
284 multiple reads, could cause junk data to get inserted among the saved
285 headers. This only concerns HTTP(S) headers.
288 - Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
289 is set internally, the error text is sent to the debug function as well.
291 - I fixed the telnet code to timeout properly as the option tells it to. On
292 non-windows platforms.
295 - John Crow pointed out that libcurl-the-guide wasn't included in the release
298 - Kevin Roth pointed out that make install didn't do right if build outside
299 the source tree (ca-bundle wise).
301 - FOLLOWLOCATION bugfix for the multi interface
304 - Kevin Roth got problems with his cygwin build with -no-undefined was not
305 present in lib/Makefile.am so I put it back in there again. The poor one who
306 needs to remove it again must write a configure script to detect that need.
308 - Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
309 or ../ stuff in the string passed back in a Location: header when following
312 - Albert Chin helped me to work out a better configure.in check for zlib, and
313 both --without-zlib and -with-zlib seem to work rather well right now.
315 - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
316 become more accurate.
319 - Detlef Schmier pointed out the lack of a --without-libz option to configure,
322 Version 7.10 (1 Oct 2002)
325 - Modified the curl_version_info() proto and returned struct once again, and
326 updated the man page accordingly.
328 - Cris Bailiff found out that the pre-releases crashed on name lookups on
329 names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
330 to some weird return codes from gethostbyname_r(). I'll blame the complete
331 lack of docs in that department. Cris provided a fix, which I modified only
335 - After a suggestion from Christian Kurz to Debian curl package maintainer
336 Domenico Andreoli, I made it possible to override the proxy environment
337 variables better. Now, by setting -x "" you can explicitly tell libcurl to
338 not use a proxy, no matter whan the environment variables say.
343 - Extended curl_version_info() more and wrote a man page for it.
346 - libcurl could leak memory when downloading multiple files using http ranges,
347 reported and fixed by Jean-Luc Guevel.
349 - Walter J. Mack provided code and docs for the new curl_free() function that
350 shall be used to free memory that is allocated by libcurl and returned back
351 to the application, as curl_escape() and curl_unescape() do.
353 - Yarram Sunil pointed out a flaw in the multi interface where a failed
354 connection didn't close down properly and thus a second transfer using the
357 - Andrés García fixed a flaw that made (among other things) dict-fetches
358 return a random value.
361 - Wez Furlong brought his initial patch that introduced curl_version_info().
362 We might need to tweak it somewhat before release.
365 - Craig Markwardt fixed another Tru64 IP resolve problem.
368 - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
369 in the same style other code does.
371 - Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
372 and -C - was used. The first file's resume position was then accidentally
373 reused on all the other files too.
376 - The curl_easy_setopt.3 man page was greatly modified and the options have
377 now been grouped in logical groups so that it should be somewhat easier to
378 read it and find things you search for.
381 - Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
382 send any headers back, only raw content. Right, that is a violation of the
383 standard but still happens at times and we need to deal with it. Test case
384 306 was added to verify that we do right now.
389 - Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
390 when you specified the URL with an IPv6 IP-address.
393 - Sven Neuhaus made --silent being acknowledged even when multiple URLs
394 were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
395 even when told to shut up.
398 - Updated all source code headers to use MIT-license references only, and
399 point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
400 URL. I've cut out all references to MPL that I could find.
402 - Corected the makefiles to not always use -lz when linking
407 - James Gallagher added Content-Encoding support to libcurl so now curl and
408 libcurl-using apps can request compressed contents using the 'deflate'
409 method. See the special file lib/README.encoding for details.
411 curl --compressed is now used to request compressed contents.
413 curl-config --feature will include 'libz' if this feature was around when
414 the library was built.
417 - Applied an anonymous SOCKS5-proxy patch. Not properly working in all
418 situations though, as all getaddrinfo()-using libcurls will fail on this.
419 This is because of the somewhat naive way the current code tries to extract
420 the IP address of the proxy.
422 - Fixed up the SSL cert fixes from the other day even more after more inputs
423 from Cris. Added three new SSL error codes to make the
424 CURLE_SSL_CONNECT_ERROR slightly less overloaded.
427 - After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
428 decided to talk the bold path and I now made libcurl do CA certificate
429 verification by default. Thus library users need to explicitly turn this off
430 if you want to connect to sites without proper checking. We also install a
431 CA cert bundle on 'make install' now.
433 The curl tool now requires the -k/--insecure option in order to allow
434 connections and operations on SSL sites that aren't properly verified with
437 curl-config --ca displays the built-in path to the CA cert bundle.
440 - Andrew Francis cleaned up some code that now compiles fine without the need
441 for ugly MSVC pragmas.
443 - Keith MacDonald found a minor bug in src/main.c that made it close stdin
444 instead of the actual file handle. It shouldn't have resulted in much
445 trouble as most operating systems close all file handles on process exit
449 - Markus Oberhumer provided some documentation for his previously provided
450 CURLOPT_NOSIGNAL fix.
452 - Patched the lib/Makefile.am to hopefully no longer complain on undefined
453 symbols that seemed to occur on builds with shared OpenSSL libraries on
457 - Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
458 remove the pragmas from lib/config-win32.h and adjust the sources where
459 the warnings occur. Hiding them with pragmas like this is not the correct
460 way of dealing with compiler warnings.
463 - Ulrich Zadow made the global include files in curl/* include themselves
464 using "curl.h" instead of <curl/curl.h> which thus allows people to more
465 freely decide how to include curl and how to setup their include paths.
467 - Sterling Hughes added the curl_share* interface, somewhat as discussed
470 - Jörn Hartroth pointed out that poll() was used in the pre1 source code and
471 it isn't very portable, so now I check for it in the configure script and
477 - Applied my initial take on making the multi stuff more asynchronous. Connects
478 should now return back without "hanging" until it has connected for real.
479 This should also be the case for FTP-PASV connects.
482 - Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
483 which effectively prevents libcurl from doing anything that may cause
484 signals to get sent. This is basicly for multi-threaded applications that
485 now can use timeouts properly, without risking any signals to burst in and
489 - Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
490 work. When did that code vanish? Anyway, it's back again now and seems to
493 - Jonatan Lander found out that POSTing an empty string didn't work with the
497 - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
498 the multi interface enabled.
501 - The ftp PORT command now uses a better default IP address, as it will
502 extract and use the local IP address used by the control connection.
504 - Modified the #include lines in curl/multi.h to work better on more
508 - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
512 - Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
513 and don't get __STDC__ defined, which required us to extend the preprocessor
514 check for the ## operator usage.
516 - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
517 internal default function will be put back.
519 - danfuzz at milk.com found out that libcurl badly assumed a space after
520 'Set-Cookie:' so if it wasn't present, it caused the first letter of the
521 cookie name to fall off!
524 - The password prompt asking for user password used stdout and now uses
525 stderr instead to better allow redirecting. It also leaked a fopen() file
526 handle that is now fixed.
529 - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
533 - Glen Nakamura solved a crash in the name resolving function for IP-only
534 addresses on Alpha Linux (at least).
536 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
539 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
542 - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
543 tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
544 are translated by curl_unescape().
547 - Added --limit-rate to the curl tool. Allows the user to set a maxmimum
548 upper limit to how much bandwidth to use for transfers.
550 - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
551 receive buffer in libcurl. The main point of this would be that the write
552 callback gets called more often and with smaller chunks.
555 - Yarram Sunil found out that the SocketIsDead() function performed a lot
556 faster on Windows when removing the 1 microsecond timeout.
558 - Hanno L. Kranzhoff fixed the VC++ project files.
560 - Tom Mattison found out that ftp transfers closed the connection a little
563 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
564 to disable specific protocols when building for Windows.
569 - Time to let this baby go.
572 - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
573 CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH. They are used to create a
574 multipart that appears as a regular file upload, but the data is provided
575 with a pointer and length.
577 - Nico Baggus made the VMS version use sigsetjmp() too.
579 - Jörn Hartroth fixed the mingw32 build using the mm lib.
581 - Applied patches by Kris Kennaway that correct format string problems in
582 lib/ftp.c and lib/ldap.c.
587 - James Cone brought the idea of using sigsetjmp() in the signal handler to
588 make the time-out of name lookups to work, even when the underlying name
589 resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
590 this may be a bit drastic, and also not likely to exist on all platforms. I
591 added careful checking for this in the configure script, even checks for it
592 being a macro (which seems to be the case in for example Linux).
594 sigsetjmp() seems to be mentioned in the Single Unix specification.
596 - Miklos Nemeth brought a patch that allows libcurl to get built with specific
597 protocols disabled. This is done by running ./configure
598 --disable-[protocol].
600 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
601 make precautions to not return this for range downloads.
603 Added test case 135 that makes an ftp range download. Had to tweak the
604 runtests.pl script a bit too.
606 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
607 check to prevent this.
610 - Found and corrected a connect failure problem that didn't create a human
613 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
614 and comments from Götz Babin-Ebell.
616 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
617 failed and you reinvoked curl_easy_perform().
620 - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
621 matter when you decide to remove the CURL handle.
623 - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
624 makes windows builds stop complaining about "weak seeding" when it in fact
627 - Another 64bit architecture crash that was introduced in 7.9.7 was now
628 removed, as bug report #564585 clarified. This happened due to our attempts
629 to only allocate only as much memory as is actually needed for name
630 resolving (using realloc) which called for a function that could 'move' a
631 hostent struct in memory.
636 - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
637 made the CURLINFO_REQUEST_SIZE return the correct total request size. He
638 also made the win32 timers use higher resolution than before.
641 - Renaud Chaillat made me aware of the fact that libcurl returned an error if
642 you tried to get an empty FTP file. This seemed like a wrong thing to do, so
643 now it no longer does that! I just hope that no one built anything fancy
644 upon this unexpected behavior...
647 - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
648 specifies a path to a directory with certificates rather than a single file
649 with them all concatenated. --capath was added to the command line tool
650 for the same function.
652 Windows users need to pay attention that the directory should be setup with
653 the c_rehash tool of the OpenSSL package, and that creates symlinks by
654 default that need to be replaced with actual copies to work on Windows.
656 - Gustaf Hui provided new code that changes how curl_multi_info_read()
657 messages are stored, so that they don't have to be kept around for the multi
658 handle's entire life time. He also made it return failure codes properly
659 which it didn't do before.
662 - Gustaf Hui pointed out that running curl_multi_perform() without doing
663 curl_multi_fdset() first was not really a working combo. I added an internal
664 check for this and have some extra select() code without timeout to make the
665 library internals work identically nevertheless. We might need to somehow
666 either document that once you've used the *_fdset() you should remain using
667 them in select() or you should blank them somehow so that libcurl won't go
673 - James Cone brought an excellent patch, including several tests and docs!
674 CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
675 --netrc-optional was introduced as an addition to --netrc to allow the
676 command line client to take use of all that new netrc stuff.
678 - Bug report #558888 showed a case where libcurl re-used the previous host
679 name when a connection over a proxy was re-used but to a different target
683 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
684 trying to HTTP POST an empty string.
686 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
688 - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
689 CURLFORMcode instead of the previous 'int', and the various return codes are
690 now globally exported. It allows applications to better figure out what goes
691 wrong when curl_formadd() returns errors.
694 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
695 is prefered to SSL_CTX_use_certificate_file().
698 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
699 after my AIX fixes the other week.
701 - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
702 the DNS struct realloc stuff. Actually, this crash could happen on all
703 systems that made the pack_hostent() function get invoked.
705 - I removed several compiler warnings in the test suite's HTTP server.
710 - Kevin Roth adjusted the --trace-ascii output slightly.
712 - Paul Harrington found out that src/writeout.c needed an additional header
713 file included for AIX builds
718 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
720 - Made --trace-ascii do pretty much the same as --trace but without the hex
723 - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
724 cookies read from a file. This option is enforced by the curl command line
725 tool using the new -j/--junk-session-cookies option. After discussions with
726 Kevin Roth. This makes it easier to use curl to fully emulate a browser's
727 behavior, even when it comes to "session cookies". Session cookies are
728 cookies that a normal browser discards when the browser is shut
729 down. They're identified by not having any expire date/time.
731 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
732 this was discovered when --trace was made to crash.
734 - Using -v and --trace at the same time confused matters. -v is now pretty
735 much ignored when --trace or --trace-ascii is used.
737 - Made --trace (and --trace-ascii) support - as file name to pass output to
738 stdout instead. It makes it consistent with how other options work.
743 - Added multi-post.c to the examples directory. I got the basic source for
744 this from Gustaf Hui.
747 - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
748 can be used to figure out the maximum buffer size your write callback can
751 - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
752 an alias for CURLOPT_FILE. These two were added for conformity. Most other
753 callback function's userdata are provided with options using a similar name-
756 - Added "--trace [file]" to the command line tool. It makes a very detailed
757 trace dump get stored, with a full protocol dump that includes all received
758 and transmitted data. This could be a very effective tool for debugging what
759 goes wrong. This dump includes every byte the way it is sent to/received
760 from the server. The dump is the plain-text version, so SSL transfers will
763 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
764 wanted it to. I fixed it.
766 - -D now stores all headers to the same file if multiple URLs are given on the
767 command line! Kevin Roth made me aware of that it didn't already do this!
769 - Gustaf Hui wrote an excellent formpost example that used the multi
770 interface. Unfortunately, it didn't work due to several bugs in how
771 transfers were made when the multi interface was used.
774 - Hanno Kranzhoff found out that when doing multiple transfers on the same
775 easy handle, the progress meter would show a bad "currently downloaded
776 value" when the transfer starts.
779 - Applied another patch by Jacky Lam to make the name resolve info realloc()
782 Daniel (28 April 2002)
783 - curl_multi_info_read() is now implemented!
785 Daniel (27 April 2002)
786 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
788 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
790 - I cleaned up the name prefix stuff in the hash and llist modules.
792 - FTP responses should now be better on timing out properly. The timeout value
793 is maximum timeout for the entire request operation, but before this, the
794 timeout was used as a maximum allowed time between two reads...
796 Daniel (26 April 2002)
797 - Fixed the test suite http server to not use snprintf() anymore due to better
800 Daniel (25 April 2002)
801 - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
802 cause problems since the pruning is only checking the entry time, and it
803 sure could cause problems. Therefor, I've now added and changed code so that
804 this should not be a problem. Nowhere in the code will be store name
805 resolved information around so that a sunsequent DNS cache prune should
806 cause a problem. This of course called for some mild internal changes.
808 Daniel (23 April 2002)
809 - Improved the 'no_proxy' check, as using port numbers in the URL confused it
810 previously. Reported by Erwan Legrand in bug report #547484.
812 - The --interface option now works even on IPv6 enabled builds. Reported by
815 Daniel (22 April 2002)
816 - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
817 names are still #defined too.) Pointed out by Robert Olson.
819 - Jacky Lam brought code that lets the name resolve function only use as much
820 memory as it actually needs. This only works on certain operating systems,
821 but is totally transparant to all users.
823 Daniel (19 April 2002)
824 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
826 Daniel (18 April 2002)
827 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
828 experienced very big caches.
830 Daniel (17 April 2002)
831 - Dirk Manske patched the 301 response to work against the RFC but more like
832 common browsers do. If a POST get a 301 back, it'll switch to GET in the
833 next request (if location-following is enabled).
835 Daniel (16 April 2002)
836 - Dirk Manske posted a patch originally written by Ingo Wilken that introduced
837 two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
838 CURLINFO_REDIRECT_COUNT.
840 Daniel (15 April 2002)
841 - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
842 reflect reality better, like when the first request isn't POST and when
843 the second isn't GET... :-)
845 - Craig Davison pointed out that when curl_formadd()ing a file that doesn't
846 exist, libcurl doesn't return error. Now, curl_easy_perform() will return
847 CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
851 Daniel (14 April 2002)
852 - Dirk Manske brought a fix that makes libcurl strip off white spaces from the
853 beginning of cookie contents.
855 - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
856 Moonesamy pointed out the problem, Bjorn Reese the solution.
860 Daniel (12 April 2002)
861 - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
862 FTP transfers got the "connect done" time set after the initial FTP commands
863 and not directly after the TCP/IP connect as it should.
865 I also made the time stamp get set even if the connect itself fails, which
866 it didn't do previously.
868 - Jean-Philippe Barrette-LaPierre provided his patch that introduces
869 CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
870 callback to receive debug/information data. That includes headers and data
871 that is received and sent. CURLOPT_VERBOSE still controls it.
873 By default, there is an internal debugfunction that will make things look
874 and work as before if not changed.
876 Daniel (10 April 2002)
877 - Sebastien Willemijns found out that -x didn't use the default port number as
878 is documented. It does now.
880 - libcurl-errors.3 is a new man page attempting to document all libcurl error
883 - Added two new error codes and changed the behaviour of two old ones
887 This error was returned *both* for errors that occured when writing
888 received data to a local file, as well as when we get problems writing data
889 to a remote server. CURLE_SEND_ERROR has now been added for the latter
893 This error was similarly returned *both* for errors when reading a local
894 file, as well as when getting problems when reading network data.
895 CURLE_RECV_ERROR has now been added for the latter error.
897 (Two test cases were adjusted accordingly.)
899 Daniel (9 April 2002)
900 - runtests.pl now sets the HOME variable before running curl, to prevent any
901 actual ~/.curlrc file to fool the tests!
905 Daniel (8 April 2002)
906 - Michael Curtis provided new functionality for curl on some platforms. Using
907 the --environment option, curl will *set* a bunch of environment variables
908 to values. The names are the same ones as for the -w/--writeout option.
910 For now, this only works on the RISC OS version, as this feature relies on
911 both OS support and that it matches OS paradigms.
913 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
914 and 304, I edited it slightly.
916 Daniel (5 April 2002)
917 - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
918 when used in windows), is now loaded from the current directory if the HOME
919 environment variable isn't set (or if it is too long). I also enlarged the
920 array used to store the full file path in, to 512 bytes.
922 - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
923 was stupid and the change was reverted. Added test case 48 to verify the
928 Daniel (4 April 2002)
929 - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
930 pre-ISO compilers, like when using gcc -traditional.
932 Daniel (3 April 2002)
933 - Jacky Lam identified a glitch when getting headers-only, where libcurl would
934 "hang" 1 second in vain in the select() loop before returning back.
936 - Tor Arntsen brought a patch for multipart formposts. It turned out that the
937 "CGI_Lite Perl package" makes some bad assumptions on what letters that may
938 be used in boundary strings and thus curl could confuse it by including '+'
939 and '/'. While this is standards-compliant, we change the behavior to work
940 smoothly with existing software based on that package.
942 Daniel (2 April 2002)
943 - Gerhard Herre filed bug report #536238 where he pointed out a crash in
944 verbose FTP passive transfers for AIX.
946 - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
947 take care of all errors that SSL_read() could return.
949 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
951 Daniel (27 March 2002)
952 - T. Bharath pointed out a flaw in the connection re-use function that didn't
953 check proxy connections properly for "deadness" before they were re-used.
955 - Pedro Neves found out that HTTP POSTing with --data-binary did not properly
956 work under Windows as the file specified wasn't read fully binary!
958 Daniel (25 March 2002)
959 - Jacky Lam brought a fix that improves treatment of cookies using identical
960 domains but with leading dots properly.
962 Daniel (22 March 2002)
963 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
966 - Jon Dillon provided us with several good-looking curl images for
967 promotion. View them here http://curl.haxx.se/icons.html
969 Daniel (20 March 2002)
970 - Peter Verhas found out that CRLF replacement in uploads was not working. I
971 fixed it, and added test case 128 that verifies the functionality.
973 - The list formerly known as curl-main is now named curl-users and is hosted
974 by sourceforge. Susbcribe to the new list, get off the old one.
978 Daniel (19 March 2002)
979 - Made -G and -I on the same command line cause an error.
981 - Moved the multi.h file to the "public" include directory and made it get
982 included by curl.h so that no extra include files will be necessary to use
985 Added docs and man pages for the multi interface to the release archive.
986 Added the three example source codes too.
988 Necessary steps in my campaign to sneak in the multi interface... ;-)
990 - Updated the year in all copyright notices in all C and H files.
992 Daniel (18 March 2002)
993 - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
994 in 7.9.5... Added test case 32 for this.
998 Daniel (16 March 2002)
999 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
1000 contained factual errors.
1002 - Albert Choy found and corrected a problem with the verbose output when doing
1003 PASV ftp transfers. It could make libcurl crash.
1005 Details in bug report #530562:
1006 http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
1008 Daniel (15 March 2002)
1009 - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
1010 the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
1011 capability! That patch is now reverted.
1013 The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
1014 hosts are instead made by first checking if the stack is IPv6-enabled and if
1015 not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
1017 - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
1018 as described in the man page, libcurl did not return the documented error
1019 code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
1022 Daniel (14 March 2002)
1023 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
1024 data from the callback.
1026 - The GOPHER support seems to be broken. I don't think I'll even start fixing
1027 it until someone else finds out... :-)
1029 Daniel (13 March 2002)
1030 - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
1031 string. If such a file would be present, curl returned the size of it! Now
1034 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
1035 blocked and thus return -1.
1037 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
1039 - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
1040 CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
1041 CURLFORM_* list proprely and unrestricted until this was the case. It was
1042 also a bit peculiar to users why some options could be used in an array
1043 while others couldn't.
1045 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
1046 Nico Baggus pointed them out to me.
1048 Daniel (11 March 2002)
1049 - CURLFORM_FILENAME was added. This can be set when creating a file upload
1050 part, to set the 'filename' field to a custom value. If this isn't used,
1051 the actually used filename will be included instead (as libcurl always has
1052 done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
1053 too, and allows constructs such as:
1055 -F 'name=@filename;filename=/dev/null'
1057 and this can be combined with type= too, in a manner similar to:
1059 -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
1061 Test case 39 was added to verify this functionality.
1063 - The struct formerly known as HttpPost is now named curl_httppost to properly
1064 use the curl name space. I added a #define for the old name to make existing
1065 programs compile even when this new include file is used.
1067 Daniel (8 March 2002)
1068 - Clifford also discovered that if the client code failed early, as when doing
1069 "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
1072 - Clifford Wolf provided a patch that made --progress-bar work again.
1074 - I closed bug report #527032 by making sure that we add a newline after a
1075 transfer when --progress-bar has been used. Before, without the newline, it
1076 made the subsequent text come out wrong.
1080 Daniel (7 March 2002)
1081 - Added docs/KNOWN_BUGS to the release archive.
1083 Daniel (6 March 2002)
1084 - Kevin Roth corrected a flaw in the curl client globbing code that made it
1085 mess up backslashes. This was most notable on windows (cygwin) machines when
1088 - Brad provided another fix for building outside the source-tree.
1090 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
1092 Daniel (5 March 2002)
1093 - I noticed that the typedef in curl.h for the progress callback prototype was
1094 wrong and thus applications that used it would not get the proper input
1095 data. It used size_t where the implementation actually uses doubles!
1097 I wish I could blame someone else, but this was my fault. Again.
1101 Daniel (4 March 2002)
1102 - Cut off the changes done during 2001 from this changelog file and put them
1103 in a separate file (CHANGES.2001), available from CVS of course.
1105 - I removed the multi directory. The example sources were moved to the
1106 docs/examples directory where they belong.
1108 - Wrote 7 new man pages for the current functions in the new multi interface.
1109 They're all still pretty basic, but we can use them as a start and add more
1110 contents to them when we figure out what to write. The large amount of man
1111 pages for libcurl now present made me decide to put them in a new separate
1112 subdirectory in the docs directory. Named libcurl.
1114 - Giuseppe Corbelli provided a template file for the EPM package manager, it
1115 gets generated nicely by the configure script now.
1119 Daniel (1 March 2002)
1120 - Moved the memanalyze.pl script into the tests/ dir and added it to the
1121 release archives. It was previously only present in the CVS tree.
1123 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
1126 - Nico Baggus added more error codes to the VMS stuff.
1128 - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
1129 option. It is just another FTP quote option that allows the user to specify
1130 a list of FTP commands to issue *just before* the transfer command (RETR or
1131 STOR etc). It has turned up a few systems that really need this.
1133 The curl command line tool can also take advantage of this by prefixing the
1134 quote commands with a plus (+) in similar style that post transfer quote
1135 commands are specified.
1137 This is not yet documented. There is no test case for this yet.
1139 Daniel (28 February 2002)
1140 - Ralph Mitchell made some serious efforts and put a lot of sweat in setting
1141 up scripts and things for me to be able to repeat his problems, and I
1142 finally could. I found a problem with the header byte counter that wasn't
1143 increased properly and thus we could return CURLE_GOT_NOTHING when we in
1144 fact had received data.
1146 Daniel (27 February 2002)
1147 - I had to revert the non-space parsing cookie fix I posted to the mailing
1148 list. Expire dates do have spaces and still need to get parsed properly!
1149 Instead we just ignore trailing white space and it seems to work...
1151 Daniel (26 February 2002)
1152 - Made the cookie property 'Max-Age' work, just since we already tried to
1153 support it, it is better to do it right. No one uses this anyway.
1155 - The cookie parser could crash if a really weird (illegal) cookie line was
1156 received. I also made it better discard really oddly formatted lines better.
1158 Made the cookie jar store the second field from the left using the syntax
1159 that Netscape and Mozilla probably like. Curl itself ignores it.
1161 Added test case 31 for these cases.
1163 Clay Loveless' email regarding some cookie issues started my cleanup.
1165 - Kevin Roth pointed out that my automake fiddles broke the ability to build
1166 outside the source-tree and I posted a patch to the mailing list that brings
1171 Daniel (25 February 2002)
1172 - Fiddled with the automake files to make all source files in the lib
1173 directory not have ../src in the include path, and the src sources shouldn't
1176 - All 79 test cases ran OK under Linux and Solaris using the new HTTP server
1177 in the test suite. The new HTTP server was first donated by Georg Horn and
1178 subsequently modified to work with the test suite. It is currently still not
1179 portable enough to run on "all over" but this is a start and I can run all
1180 curl tests on my machines. This is an important requirement for the upcoming
1183 - Using -d and -I on the same command line now reports an error, as it implies
1184 two different HTTP requests that can't be mixed.
1186 - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
1187 support %{content_type} to get the content type of the recent download.
1189 - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
1190 and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
1191 out if we could include winsock.h which turns out not to be a wise choice to
1192 do on cygwin since it has the file but can't include it!
1194 Daniel (22 February 2002)
1195 - Added src/config-vms.h to the release archive.
1197 - Fixed the connection timeout value again, the change from February 18 wasn't
1202 Daniel (21 February 2002)
1203 - Kevin Roth and Andrés García both found out that lib/config.h.in was missing
1204 in the pre-release archive and thus the configure script failed.
1208 Daniel (20 February 2002)
1209 - Andrés García provided a solution to bug report #515228. the total time
1210 counter was not set correctly when -I was used during some conditions (all
1211 headers were read in one single read).
1213 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
1214 compile nicely on VMS.
1216 Daniel (19 February 2002)
1217 - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
1218 getaddrinfo() calls, he could speed up some name resolving calls with an
1219 order of magnitudes on his Redhat Linux 7.2.
1221 - Philip Gladstone found a second INADDR_NONE problem where we used long
1222 intead of in_addr_t which caused 64bit problemos. We really shouldn't define
1223 that on two different places.
1225 Daniel (18 February 2002)
1226 - Philip Gladstone found a problem in how HTTP requests were sent if the
1227 request couldn't be sent all at once.
1229 - Emil found and corrected a bad connection timeout comparison that made curl
1230 use the longest of connect-timeout and timout as a timeout value, instead of
1231 the shortest as it was supposed to!
1233 - Aron Roberts provided updated information about LDAP URL syntax to go into
1234 the manual as a replacement for the old references.
1236 Daniel (17 February 2002)
1237 - Philip Gladstone pointed out two missing include files that made curl core
1238 dump on 64bit architectures. We need to pay more attention on these details.
1239 It is *lethal* to for example forget the malloc() prototype, as 'int' is
1240 32bit and malloc() must return a 64bit pointer on these platforms.
1242 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
1243 the same handle using a proxy.
1245 Daniel (8 February 2002)
1246 - Hanno L. Kranzhoff accurately found out that disabling the Expect: header
1247 when doing multipart formposts didn't work very well. It disabled other
1248 parts of the request header too, resulting in a broken header. When I fixed
1249 this, I also noticed that the Content-Type wasn't possible to disable. It is
1250 now, even though it probably is really stupid to try to do this (because of
1251 the boundary string that is included in the internally generated header,
1252 used as form part separator.)
1254 Daniel (7 February 2002)
1255 - I moved the config*.h files from the root directory to the lib/ directory.
1257 - I've added the new test suite HTTP server to the CVS repository, It seems to
1258 work pretty good now, but we must make it get used by the test scripts
1259 properly and then we need to make sure that it compiles, builds and runs on
1260 most operating systems.
1264 Daniel (6 February 2002)
1265 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
1267 - Mr Larry Fahnoe found a problem with formposts and I managed to track down
1268 and patch this bug. This was actually two bugs, as the posted size was also
1269 said to be two bytes too large.
1271 - Brent Beardsley found out and brought a correction for the
1272 CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
1273 accidentaly broke Giaslas Georgios' patch.
1275 Daniel (5 February 2002)
1276 - Kevin Roth found yet another SSL download problem.
1280 - no changes since pre-release
1284 Daniel (3 February 2002)
1285 - Eric Melville provided a few spelling corrections in the curl man page.
1287 Daniel (1 February 2002)
1288 - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
1289 uses gmtime_r() on all hosts that have it.
1291 Daniel (31 January 2002)
1292 - An anonymous bug report identified a problem in the DNS caching which made it
1293 sometimes allocate one byte too little to store the cache entry in. This
1294 happened when the port number started with 1!
1296 - Albert Chin provided a patch that improves the gethostbyname_r() configure
1297 check on HP-UX 11.00.
1301 Daniel (30 January 2002)
1302 - Georg Horn found another way the SSL reading failed due to the non-blocking
1303 state of the sockets! I fixed.
1305 Daniel (29 January 2002)
1306 - Multipart formposts now send the full request properly, including the CRLF.
1307 They were previously treated as part of the post data.
1309 - The upload byte counter bugged.
1311 - T. Bharath pointed out that we seed SSL on every connect, which is a time-
1312 consuming operation that should only be needed to do once. We patched
1313 libcurl to now only seed on the first connect when unseeded. The seeded
1314 status is global so it'll now only happen once during a program's life time.
1316 If the random_file or egdsocket is set, the seed will be re-made though.
1318 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
1319 curl_easy_getinfo() read the content-type from the previous request.
1321 Daniel (28 January 2002)
1322 - Kjetil Jacobsen found a way to crash curl and after much debugging, it
1323 turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
1326 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
1329 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
1330 CURLOPT_POSTFIELDS. You can now!
1332 Daniel (25 January 2002)
1333 - Krishnendu Majumdar pointed out that the header length counter was not reset
1334 between multiple requests on the same handle.
1336 - Pedro Neves rightfully questioned why curl always append \r\n to the data
1337 that is sent in HTTP POST requests. Unfortunately, this broke the test suite
1338 as the test HTTP server is lame enough not to deal with this... :-O
1340 - Following Location: headers when the connection didn't close didn't work as
1341 libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
1342 the restructured internals. 'Frank' posted a bug report about this.
1344 Daniel (24 January 2002)
1345 - Kevin Roth very quickly spotted that we wrongly installed the example
1346 programs that were built in the multi directory, when 'make install' was
1351 Daniel (23 January 2002)
1352 - Andrés García found a persistancy problem when doing HTTP HEAD, that made
1353 curl "hang" until the connection was closed by the server. This problem has
1354 been introduced in 7.9.3 due to internal rewrites, this was not present in
1359 Daniel (19 January 2002)
1360 - Antonio filed bug report #505514 and provided a fix! When doing multipart
1361 formposts, libcurl would include an error text in the actual post if a
1362 specified file wasn't found. This is not libcurl's job. Instead we add an
1365 Daniel (18 January 2002)
1366 - Played around with stricter compiler warnings for gcc (when ./configure
1367 --enable-debug is used) and changed some minor things to stop the warnings.
1369 - Commented out the 'long long' and 'long double' checks in configure.in, as
1370 we don't currently use them anyway and the code in lib/mprintf.c that use
1371 them causes warnings.
1373 - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
1374 to correct them. Two compiler warnings were removed as well.
1376 - Andrés García fixed two minor mingw32 building problems.
1380 Daniel (17 January 2002)
1381 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
1384 - Richard Archer brought back the ability to compile and build with OpenSSL
1385 versions before 0.9.5.
1386 [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
1388 - The DNS cache code didn't take the port number into account, which made it
1389 work rather bad on IPv6-enabled hosts (especially when doing passive
1390 FTP). Sterling fixed it.
1392 Daniel (16 January 2002)
1393 - Georg Horn could make a transfer time-out without error text. I found it and
1396 - SSL writes didn't work, they return an uninitialized value that caused
1397 havoc all over. Georg Horn experienced this.
1399 - Kevin Roth patched the curl_version() function to use the proper OpenSSL
1400 function for version information. This way, curl will report the version of
1401 the SSL library actually running right now, not the one that had its headers
1402 installed when libcurl was built. Mainly intersting when running with shared
1407 Daniel (16 January 2002)
1408 - Mofied the main transfer loop and related stuff to deal with non-blocking
1409 sockets in the upload section. While doing this, I've now separated the
1410 connection oriented buffers to have one for downloads and one for uploads
1411 (as two can happen simultaneously). I also shrunk the buffers to 20K
1412 each. As we have a scratch buffer twice the size of the upload buffer, we
1413 arrived at 80K for buffers compared with the previous 150K.
1415 - Added the --cc option to curl-config command as it enables so very cool
1416 one-liners. Have a go a this one, building the simple.c example:
1418 $ `curl-config --cc --cflags --libs` -o example simple.c
1420 Daniel (14 January 2002)
1421 - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
1422 only need to address all writes (send) too and then I'm ready for another
1425 - Stoned Elipot patched the in_addr_t configure test to make it work better on
1428 Daniel (9 January 2002)
1429 - Cris Bailiff found out that filling up curl's SSL session cache caused a
1432 - Posted the curl questionnaire on the web site. If you haven't posted your
1433 opinions there yet, go there and do it now while it is still there:
1435 http://curl.haxx.se/q/
1437 - Georg Horn quickly found out that the SSL reading no longer worked as
1438 supposed since the switch to non-blocking sockets. I've made a quick patch
1439 (for reading only) but we should improve it even further.
1443 Daniel (7 January 2002)
1444 - I made the 'bool' typedef use an "unsigned char". It makes it the same on
1445 all platforms, no matter what the platform thinks the default format for
1446 char is. This was noticed since we made a silly comparison involving such a
1447 bool variable, and only one compiler/platform combination (on Debian Linux)
1448 complained about it (that happened to have its char unsigned by default).
1450 - Bug report #495290 identified a cookie parsing problem that was corrected.
1451 When a Set-Cookie: line is received without a trailing semicolon, libcurl
1452 didn't read the last "name=value" pair of the line, leading to confusions...
1454 - Sterling committed his updated DNS cache code.
1456 - I worked with Georg Horn and comments from Götz Babin-Ebell and switched
1457 curl's socket operations completely over to non-blocking for the entire
1458 operation (previously we used non-blocking only for the connection phase).
1459 We had to do this to make the SSL connection phase timeout properly without
1460 the use of signals. A little extra code to deal with this was added.
1462 - T. Bharath pointed out a slightly obscure cookie engine flaw.
1464 - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
1465 204-replies never provides a response-body. This resulted in bad persistant
1466 behavior when 204 was received.
1468 Daniel (5 January 2002)
1469 - SM updated the VC++ library Makefiles for the new source files.
1471 Daniel (4 January 2002)
1472 - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
1473 two places in the source code). One happened with VERBOSE set on connects,
1474 and the other when VERBOSE was on and krb4 over nat was used... I honestly
1475 don't think anyone has suffered from these mistakes.
1477 - I replaced a lot of silly occurances of printf() to instead use the more
1478 appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
1481 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
1482 sparc on solaris 8).
1484 - After discussions on the libcurl list with Raoul Cridlig, I just made FTP
1485 response lines get passed to the header callback if such a one is
1486 registered. It'll make it possible for any application to get all the
1487 responses an FTP server sends to libcurl.
1489 Daniel (3 January 2002)
1490 - Sterling Hughes brought a few buckets of code. Now, libcurl will
1491 automatically cache DNS lookups and re-use the previous results first if any
1492 such is available. It greatly improves speed when doing many repeated
1493 operations to the same host.
1495 - As the test case uses --include and then --head, I had to modify src/main.c
1496 to deal with this situation slightly better than previously. When done, we
1497 have 100% good tests again in the main branch.
1499 Daniel (2 January 2002)
1500 - Made test case 25 run again in the multi-dev branch. But it seems that the
1501 changes done on dec-20 made test case 104 cease to work (in both branches).
1503 - Philip Gladstone pointed out a few portability problems in the source code
1504 that didn't compile on 64-bit sparcs using Sun's native compiler.