The error buffer was not getting filled when Curl_wait_for_resolv() fails.
[platform/upstream/curl.git] / CHANGES.2002
1 Daniel (27 Dec 2002)
2 - Philippe Raoult reported a bug with HTTPS connections which I evidently
3   added in my 19 dec fix. I corrected it.
4
5 Daniel (20 Dec)
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
8   installer".
9
10 Version 7.10.3-pre3 (20 Dec)
11
12 Daniel (19 Dec)
13 - Matthew Blain patched the Curl_base64_decode() function.
14
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
17   a stupid loop.
18
19 Daniel (18 Dec)
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.
23
24 Daniel (17 Dec)
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.
29
30 Daniel (16 Dec)
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.
37
38 Daniel (13 Dec)
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.
42
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).
46
47   The sws server was extended to deal with CONNECT in order to make test
48   case 503 do good.
49
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!
52
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.
56
57 Daniel (12 Dec)
58 - Test case 500 and 501 are the first ever libcurl test cases that run.
59
60 - Made "configure --enable-debug" cut off all -O* options to the compiler
61
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!
64
65 Daniel (11 Dec)
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
68   this topic.
69
70 - Fixed the #include in curl/curl.h to include the other files outside the
71   extern "C" scope.
72
73 Daniel (10 Dec)
74 - Moved around and added more logic:
75
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.
80
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
86   large requests.
87
88 Daniel (9 Dec)
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.
92
93 - The Dodds fix seems not to work.
94
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.
98
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
103   Linux...
104
105 Version 7.10.3-pre2 (4 Dec 2002)
106
107 Daniel (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
110   FTP transfer.
111
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.
114
115 Daniel (3 Dec 2002)
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.
120
121 - Updated the Borland Makefiles.
122
123 Daniel (2 Dec 2002)
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
127   such as:
128
129      curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
130        -o "dir_#1/pic#2.jpg" --create-dirs
131
132 Version 7.10.3-pre1
133
134 Daniel (28 Nov 2002)
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.
138
139   Also, chunked transfer didn't quite work before but seems to do so now.
140
141 - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
142   didn't work on any platform...
143
144 Daniel (26 Nov 2002)
145 - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
146
147 - Dan Becker found and fixed a minor memory leak on persistent connnections
148   using CURLOPT_USERPWD.
149
150 Daniel (22 Nov 2002)
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.
154
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.
158
159 Daniel (20 Nov 2002)
160 - Kjetil Jacobsen provided a patch that introduces:
161
162    CURLOPT_PRIVATE stores a private pointer in the curl handle.
163
164    CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
165
166 - Karol Pietrzak pointed out how curl-config --cflags didn't output a good
167   include dir so I've removed that for now.
168
169 Version 7.10.2 (18 Nov 2002)
170
171 Daniel (11 Nov 2002)
172 - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
173   properly build with MSVC on Windows.
174
175 Daniel (8 Nov 2002)
176 - Doing HTTP PUT without a specified file size now makes libcurl use
177   Transfer-Encoding: chunked.
178
179 Daniel (7 Nov 2002)
180 - Bug report #634625 identified how curl returned timeout immediately when
181   CURLOPT_CONNECTTIMEOUT was used and provided a fix.
182
183 Version 7.10.2-pre4 (6 Nov 2002)
184
185 Daniel (5 Nov 2002)
186 - Lehel Bernadt found out and fixed. libcurl sent error message to the debug
187   output when it stored the error message.
188
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.
194
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.
198
199 Version 7.10.2-pre3
200
201 Daniel (31 Oct 2002)
202 - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
203   turned out this didn't help though.)
204
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.
207
208 Version 7.10.2-pre2
209
210 Daniel (28 Oct 2002)
211 - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
212
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
217   bundle.
218
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.
221
222 Version 7.10.2-pre1
223
224 Daniel (23 Oct 2002)
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
227   header file.
228
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.
232
233 Daniel (21 Oct 2002)
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
238   glibc 2.2.93.
239
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.
243   
244 - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
245   the ../ support got in (7.10.1).
246
247 Daniel (18 Oct 2002)
248 - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
249   the multi interface.
250
251 Daniel (17 Oct 2002)
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.
255
256 Daniel (15 Oct 2002)
257 - Andrés García provided corrections for erratas in four libcurl man pages.
258
259 Daniel (13 Oct 2002)
260 - Starting now, we generate and include PDF versions of all the docs in the
261   release archives.
262
263 Daniel (12 Oct 2002)
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
266   didn't do anything).
267
268 Daniel (11 Oct 2002)
269 - Downloading HTTP without headers didn't work 100%, some of the initial data
270   got written twice. Kevin Roth reported.
271
272 - Kevin Roth found out the "config file" parser in the client code could
273   segfault, like if DOS newlines were used.
274
275 Version 7.10.1 (11 Oct 2002)
276
277 Daniel (10 Oct 2002)
278 - Jeff Lawson fixed a few problems with connection re-use that remained when
279   you set CURLOPT_PROXY to "".
280
281 Daniel (9 Oct 2002)
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.
286
287 Daniel (8 Oct 2002)
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.
290
291 - I fixed the telnet code to timeout properly as the option tells it to. On
292   non-windows platforms.
293
294 Daniel (7 Oct 2002)
295 - John Crow pointed out that libcurl-the-guide wasn't included in the release
296   tarball!
297
298 - Kevin Roth pointed out that make install didn't do right if build outside
299   the source tree (ca-bundle wise).
300
301 - FOLLOWLOCATION bugfix for the multi interface
302
303 Daniel (4 Oct 2002)
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.
307
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
310   locations.
311
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.
314
315 - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
316   become more accurate.
317
318 Daniel (1 Oct 2002)
319 - Detlef Schmier pointed out the lack of a --without-libz option to configure,
320   so I added one.
321
322 Version 7.10 (1 Oct 2002)
323
324 Daniel (30 Sep 2002)
325 - Modified the curl_version_info() proto and returned struct once again, and
326   updated the man page accordingly.
327
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
332   slightly.
333
334 Daniel (27 Sep 2002)
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.
339
340 Version 7.10-pre4
341
342 Daniel (26 Sep 2002)
343 - Extended curl_version_info() more and wrote a man page for it.
344
345 Daniel (25 Sep 2002)
346 - libcurl could leak memory when downloading multiple files using http ranges,
347   reported and fixed by Jean-Luc Guevel.
348
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.
352
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
355   same handle failed.
356
357 - Andrés García fixed a flaw that made (among other things) dict-fetches
358   return a random value.
359
360 Daniel (24 Sep 2002)
361 - Wez Furlong brought his initial patch that introduced curl_version_info().
362   We might need to tweak it somewhat before release.
363
364 Daniel (20 Sep 2002)
365 - Craig Markwardt fixed another Tru64 IP resolve problem.
366
367 Daniel (19 Sep 2002)
368 - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
369   in the same style other code does.
370
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.
374
375 Daniel (18 Sep 2002)
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.
379
380 Daniel (13 Sep 2002)
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.
385
386 Version 7.10-pre3
387
388 Daniel (11 Sep 2002)
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.
391
392 Daniel (4 Sep 2002)
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.
396
397 Daniel (3 Sep 2002)
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.
401
402 - Corected the makefiles to not always use -lz when linking
403
404 Version 7.10-pre2
405
406 Daniel (2 Sep 2002)
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.
410
411   curl --compressed is now used to request compressed contents.
412
413   curl-config --feature will include 'libz' if this feature was around when
414   the library was built.
415
416 Daniel (30 Aug 2002)
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.
421
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.
425
426 Daniel (27 Aug 2002)
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.
432
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
435   -cafile or --capath.
436
437   curl-config --ca displays the built-in path to the CA cert bundle.
438
439 Daniel (26 Aug 2002)
440 - Andrew Francis cleaned up some code that now compiles fine without the need
441   for ugly MSVC pragmas.
442
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
446   anyway.
447
448 Daniel (22 Aug 2002)
449 - Markus Oberhumer provided some documentation for his previously provided
450   CURLOPT_NOSIGNAL fix.
451
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
454   Solaris lately...
455
456 Daniel (20 Aug 2002)
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.
461
462 Daniel (13 Aug 2002)
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.
466
467 - Sterling Hughes added the curl_share* interface, somewhat as discussed
468   previously.
469
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
472   work around it.
473
474 Version 7.9.9-pre1
475
476 Daniel (12 Aug 2002)
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.
480
481 Daniel (9 Aug 2002)
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
486   ruin the party.
487   
488 Daniel (5 Aug 2002)
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
491   work!
492
493 - Jonatan Lander found out that POSTing an empty string didn't work with the
494   command line tool.
495
496 Daniel (3 Aug 2002)
497 - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
498   the multi interface enabled.
499
500 Daniel (1 Aug 2002)
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.
503
504 - Modified the #include lines in curl/multi.h to work better on more
505   platforms.
506
507 Daniel (31 Jul 2002)
508 - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
509   problems.
510
511 Daniel (30 Jul 2002)
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.
515
516 - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
517   internal default function will be put back.
518
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!
522
523 Daniel (29 Jul 2002)
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.
527
528 Daniel (28 Jul 2002)
529 - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
530   by M T.
531
532 Daniel (26 Jun 2002)
533 - Glen Nakamura solved a crash in the name resolving function for IP-only
534   addresses on Alpha Linux (at least).
535
536 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
537
538 Daniel (22 Jun 2002)
539 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
540
541 Daniel (19 Jun 2002)
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().
545
546 Daniel (15 Jun 2002)
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.
549
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.
553
554 Daniel (14 Jun 2002)
555 - Yarram Sunil found out that the SocketIsDead() function performed a lot
556   faster on Windows when removing the 1 microsecond timeout.
557
558 - Hanno L. Kranzhoff fixed the VC++ project files.
559
560 - Tom Mattison found out that ftp transfers closed the connection a little
561   too often.
562
563 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
564   to disable specific protocols when building for Windows.
565
566 Version 7.9.8
567
568 Daniel (13 Jun 2002)
569 - Time to let this baby go.
570
571 Daniel (12 Jun 2002)
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.
576   
577 - Nico Baggus made the VMS version use sigsetjmp() too.
578
579 - Jörn Hartroth fixed the mingw32 build using the mm lib.
580
581 - Applied patches by Kris Kennaway that correct format string problems in
582   lib/ftp.c and lib/ldap.c.
583
584 Version 7.9.8-pre3
585
586 Daniel (11 Jun 2002)
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).
593
594   sigsetjmp() seems to be mentioned in the Single Unix specification.
595
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].
599
600 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
601   make precautions to not return this for range downloads.
602
603   Added test case 135 that makes an ftp range download. Had to tweak the
604   runtests.pl script a bit too.
605
606 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
607   check to prevent this.
608
609 Daniel (10 Jun 2002)
610 - Found and corrected a connect failure problem that didn't create a human
611   error text.
612
613 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
614   and comments from Götz Babin-Ebell.
615
616 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
617   failed and you reinvoked curl_easy_perform().
618
619 Daniel (5 Jun 2002)
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.
622
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
625   isn't.
626
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.
632
633 Version 7.9.8-pre2
634
635 Daniel (3 Jun 2002)
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.
639
640 Daniel (29 May 2002)
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...
645
646 Daniel (28 May 2002)
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.
651
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.
655
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.
660
661 Daniel (27 May 2002)
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
668   crazy.
669
670 Version 7.9.8-pre1
671
672 Daniel (22 May 2002)
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.
677
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
680   host.
681
682 Daniel (21 May 2002)
683 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
684   trying to HTTP POST an empty string.
685
686 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
687
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.
692
693 Daniel (20 May 2002)
694 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
695   is prefered to SSL_CTX_use_certificate_file().
696
697 Daniel (17 May 2002)
698 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
699   after my AIX fixes the other week.
700
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.
704
705 - I removed several compiler warnings in the test suite's HTTP server.
706
707 Version 7.9.7
708
709 Daniel (10 May 2002)
710 - Kevin Roth adjusted the --trace-ascii output slightly.
711
712 - Paul Harrington found out that src/writeout.c needed an additional header
713   file included for AIX builds
714
715 Version 7.9.7-pre2
716
717 Daniel (7 May 2002)
718 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
719
720 - Made --trace-ascii do pretty much the same as --trace but without the hex
721   part in the output.
722
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.
730
731 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
732   this was discovered when --trace was made to crash.
733
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.
736
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.
739
740 Version 7.9.7-pre1
741
742 Daniel (6 May 2002)
743 - Added multi-post.c to the examples directory. I got the basic source for
744   this from Gustaf Hui.
745
746 Daniel (3 May 2002)
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
749   get.
750
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-
754   scheme.
755
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
761   still be readable.
762
763 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
764   wanted it to. I fixed it.
765
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!
768
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.
772
773 Daniel (2 May 2002)
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.
777
778 Daniel (1 May 2002)
779 - Applied another patch by Jacky Lam to make the name resolve info realloc()
780   stuff work properly.
781
782 Daniel (28 April 2002)
783 - curl_multi_info_read() is now implemented!
784
785 Daniel (27 April 2002)
786 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
787
788 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
789
790 - I cleaned up the name prefix stuff in the hash and llist modules.
791
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...
795
796 Daniel (26 April 2002)
797 - Fixed the test suite http server to not use snprintf() anymore due to better
798   portability.
799
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.
807
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.
811
812 - The --interface option now works even on IPv6 enabled builds. Reported by
813   'thor'.
814
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.
818
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.
822
823 Daniel (19 April 2002)
824 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
825
826 Daniel (18 April 2002)
827 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
828   experienced very big caches.
829
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).
834
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.
839
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... :-)
844
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.
848
849 Version 7.9.6
850
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.
854
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.
857
858 Version 7.9.6-pre5
859
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.
864
865   I also made the time stamp get set even if the connect itself fails, which
866   it didn't do previously.
867
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.
872
873   By default, there is an internal debugfunction that will make things look
874   and work as before if not changed.
875
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.
879
880 - libcurl-errors.3 is a new man page attempting to document all libcurl error
881   codes
882
883 - Added two new error codes and changed the behaviour of two old ones
884   slightly:
885
886   CURLE_WRITE_ERROR
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
890    error.
891
892   CURLE_READ_ERROR
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.
896
897  (Two test cases were adjusted accordingly.)
898
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!
902
903 Version 7.9.6-pre4
904
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.
909
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.
912
913 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
914   and 304, I edited it slightly.
915
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.
921
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
924   functionality.
925
926 Version 7.9.6-pre3
927
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.
931
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.
935
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.
941
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.
945
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.
948
949 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
950
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.
954
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!
957
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.
961
962 Daniel (22 March 2002)
963 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
964   windows makefiles.
965
966 - Jon Dillon provided us with several good-looking curl images for
967   promotion. View them here http://curl.haxx.se/icons.html
968
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.
972
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.
975
976 Version 7.9.6-pre2
977
978 Daniel (19 March 2002)
979 - Made -G and -I on the same command line cause an error.
980
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
983   it.
984
985   Added docs and man pages for the multi interface to the release archive.
986   Added the three example source codes too.
987
988   Necessary steps in my campaign to sneak in the multi interface... ;-)
989
990 - Updated the year in all copyright notices in all C and H files.
991
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.
995
996 Version 7.9.6-pre1
997
998 Daniel (16 March 2002)
999 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
1000   contained factual errors.
1001
1002 - Albert Choy found and corrected a problem with the verbose output when doing
1003   PASV ftp transfers. It could make libcurl crash.
1004
1005   Details in bug report #530562:
1006   http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
1007
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.
1012
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.
1016
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
1020   now corrected.
1021
1022 Daniel (14 March 2002)
1023 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
1024   data from the callback.
1025
1026 - The GOPHER support seems to be broken. I don't think I'll even start fixing
1027   it until someone else finds out... :-)
1028
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
1032   we prevent this.
1033
1034 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
1035   blocked and thus return -1.
1036
1037 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
1038
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.
1044
1045 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
1046   Nico Baggus pointed them out to me.
1047
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:
1054
1055     -F 'name=@filename;filename=/dev/null'
1056
1057   and this can be combined with type= too, in a manner similar to:
1058
1059    -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
1060
1061   Test case 39 was added to verify this functionality.
1062
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.
1066
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
1070   on some systems.
1071
1072 - Clifford Wolf provided a patch that made --progress-bar work again.
1073
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.
1077
1078 Version 7.9.5
1079
1080 Daniel (7 March 2002)
1081 - Added docs/KNOWN_BUGS to the release archive.
1082
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
1086   using file://.
1087
1088 - Brad provided another fix for building outside the source-tree.
1089
1090 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
1091
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!
1096
1097   I wish I could blame someone else, but this was my fault. Again.
1098
1099 Version 7.9.5-pre6
1100
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.
1104
1105 - I removed the multi directory. The example sources were moved to the
1106   docs/examples directory where they belong.
1107
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.
1113
1114 - Giuseppe Corbelli provided a template file for the EPM package manager, it
1115   gets generated nicely by the configure script now.
1116
1117 Version 7.9.5-pre5
1118
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.
1122
1123 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
1124   it caused crashes!
1125
1126 - Nico Baggus added more error codes to the VMS stuff.
1127
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.
1132
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.
1136
1137   This is not yet documented. There is no test case for this yet.
1138
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.
1145
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...
1150
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.
1154
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.
1157
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.
1160
1161   Added test case 31 for these cases.
1162
1163   Clay Loveless' email regarding some cookie issues started my cleanup.
1164
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
1167   this ability back.
1168
1169 Version 7.9.5-pre4
1170
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
1174   have ../lib!
1175
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
1181   public release.
1182
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.
1185
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.
1188
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!
1193
1194 Daniel (22 February 2002)
1195 - Added src/config-vms.h to the release archive.
1196
1197 - Fixed the connection timeout value again, the change from February 18 wasn't
1198   complete.
1199
1200 Version 7.9.5-pre3
1201
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.
1205
1206 Version 7.9.5-pre2
1207
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).
1212
1213 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
1214   compile nicely on VMS.
1215
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.
1220
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.
1224
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.
1228
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!
1232
1233 - Aron Roberts provided updated information about LDAP URL syntax to go into
1234   the manual as a replacement for the old references.
1235
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.
1241
1242 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
1243   the same handle using a proxy.
1244
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.)
1253
1254 Daniel (7 February 2002)
1255 - I moved the config*.h files from the root directory to the lib/ directory.
1256
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.
1261
1262 Version 7.9.5-pre1
1263
1264 Daniel (6 February 2002)
1265 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
1266
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.
1270
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.
1274
1275 Daniel (5 February 2002)
1276 - Kevin Roth found yet another SSL download problem.
1277
1278 Version 7.9.4
1279
1280 - no changes since pre-release
1281
1282 Version 7.9.4-pre2
1283
1284 Daniel (3 February 2002)
1285 - Eric Melville provided a few spelling corrections in the curl man page.
1286
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.
1290
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!
1295
1296 - Albert Chin provided a patch that improves the gethostbyname_r() configure
1297   check on HP-UX 11.00.
1298
1299 Version 7.9.4-pre1
1300
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.
1304
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.
1308
1309 - The upload byte counter bugged.
1310
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.
1315
1316   If the random_file or egdsocket is set, the seed will be re-made though.
1317
1318 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
1319   curl_easy_getinfo() read the content-type from the previous request.
1320
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
1324   name resolving.
1325
1326 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
1327   reentrant!
1328
1329 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
1330   CURLOPT_POSTFIELDS. You can now!
1331
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.
1335
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
1339
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.
1343
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
1347   used. :-/
1348
1349 Version 7.9.3
1350
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
1355   7.9.2.
1356
1357 Version 7.9.3-pre4
1358
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
1363   empty part.
1364
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.
1368
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.
1372
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.
1375
1376 - Andrés García fixed two minor mingw32 building problems.
1377
1378 Version 7.9.3-pre3
1379
1380 Daniel (17 January 2002)
1381 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
1382   friends.
1383
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]
1387
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.
1391
1392 Daniel (16 January 2002)
1393 - Georg Horn could make a transfer time-out without error text. I found it and
1394   corrected it.
1395
1396 - SSL writes didn't work, they return an uninitialized value that caused
1397   havoc all over. Georg Horn experienced this.
1398
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
1403   OpenSSL libraries.  
1404
1405 Version 7.9.3-pre2
1406
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.
1414
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:
1417
1418         $ `curl-config --cc --cflags --libs` -o example simple.c
1419
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
1423   pre-release...
1424
1425 - Stoned Elipot patched the in_addr_t configure test to make it work better on
1426   more platforms.
1427
1428 Daniel (9 January 2002)
1429 - Cris Bailiff found out that filling up curl's SSL session cache caused a
1430   crash!
1431
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:
1434
1435         http://curl.haxx.se/q/
1436
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.
1440
1441 Version 7.9.3-pre1
1442
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).
1449
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...
1453
1454 - Sterling committed his updated DNS cache code.
1455
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.
1461
1462 - T. Bharath pointed out a slightly obscure cookie engine flaw.
1463
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.
1467
1468 Daniel (5 January 2002)
1469 - SM updated the VC++ library Makefiles for the new source files.
1470
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.
1476
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
1479   affected.
1480
1481 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
1482   sparc on solaris 8).
1483
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.
1488
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.
1494
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.
1498
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).
1502
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.