makefile fiddle
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _     
2                               ___| | | |  _ \| |    
3                              / __| | | | |_) | |    
4                             | (__| |_| |  _ <| |___ 
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Daniel (2 June)
10 - Feedback from Serge Semashko made me change the error message returned when
11   CURLE_HTTP_RETURNED_ERROR is returned.
12
13 - Anonymous in bug report #745122 pointed out that we should really be using
14   SSL_CTX_set_options(... SSL_OP_ALL) to work around flaws in existing SSL
15   implementations.
16
17 Daniel (27 May)
18 - Andreas Ley and Rich Gray helped me point out that no version of HP-UX has
19   the sys/select.h header file so including it unconditionally in curl/multi.h
20   is not a good thing. Now we check for HPUX and avoid using that header on
21   such systems.
22
23 - Rudy Koento experienced problems with curl's recent habit of POSTing data in
24   two separate send() calls, first the headers and then the data. I've now
25   made a fix that for static and known content that is less than 100K in size,
26   everything is now sent in one single system call again. This is also better
27   for network performance reasons.
28
29 - I modified the main makefile to not build the test suite and a few other
30   unnecessary things by default. Now, the test suite is built when 'make test'
31   is run.  This reduces build time for those who don't care for the test
32   suite, and it also reduces confusion for people using platforms where the
33   test suite build fails!
34
35 Daniel (26 May)
36 - Chris Lewis pointed out a flaw in the #ifdefs in curl/multi.h for Windows,
37   which is now corrected.
38
39 - Jis Joy found another flaw in the SOCK5 code, as libcurl treated the socks5
40   proxy a little too much like as if it was a http proxy.
41
42 Daniel (23 May)
43 - Ricardo Cadime found a socket leak when listing directories without
44   contents. Test cases 144 and 145 were added to verify the fix.
45
46 - Rudy Koento found yet another problem when a HTTP server returns only a
47   single-line of contents without any headers at all. libcurl then failed to
48   count the data, thus returning error 52 "no contents". Test case 66 was
49   added to verify that we now do right.
50
51 Version 7.10.6-pre1 (23 May 2003)
52
53 Daniel (23 May)
54 - Jis in bug report #741841, fixed a bug in the SOCKS5 proxy-using code.
55
56 Daniel (22 May)
57 - David Remahl set up a test-server for me providing Digest authentication,
58   and I wrote the first working code that support it. The test suite was
59   modified slightly as well to work better for it and --digest was added to
60   the command line options (and CURLOPT_HTTPDIGEST to the library)...  RFC2617
61   has all the gory details.
62
63 Daniel (21 May)
64 - David Balazic pointed out that curl_unescape() didn't check that %-codes
65   were correctly followed by two hexadecimal digits when it unescape strings.
66   Now, we do the check and only %XX codes are unescaped if the X letters are
67   hexadecimals.
68
69 - Gisle Vanem made curl build with djgpp on DOS.
70
71 - Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is
72   shown with curl -M.
73
74 Daniel (20 May)
75 - Gisle Vanem provided a fix that makes libcurl more conservative, not
76   expecting h_aliases of the hostent struct to always be non-NULL.
77
78 Daniel (19 May)
79 - As requested by Martin Michlmayr in Debian bug report #193630, libcurl now
80   supports user name and password in the proxy environment variables. Added
81   test case 63 to verify this.
82
83 Version 7.10.5 (19 May 2003)
84
85 Daniel (15 May)
86 - Changed the order for the in_addr_t testing, as 'unsigned long' seems to be
87   a very common type inet_addr() returns.
88
89 Daniel (14 May)
90 - George Comninos provided a fix that calls the progress meter when waiting
91   for FTP command responses take >1 second. It'll make applications more
92   "responsive" even when dealing with very slow ftp servers.
93
94 Daniel (12 May)
95 - George Comninos pointed out that libcurl uploads had two quirks:
96    o when using FTP PORT command, it used blocking sockets!
97    o it could loop a long time without doing progress meter updates
98   Both items are fixed now.
99
100 Daniel (9 May)
101 - Dan Fandrich changed CURLOPT_ENCODING to select all supported encodings if
102   set to "".  This frees the application from having to know which encodings
103   the library supports.
104
105 - Dan Fandrich pointed out we had three unnecessary files in CVS that is
106   generated with libtoolize, so they're now removed and libtoolize is invoked
107   accordingly in the buildconf script.
108
109 - Avery Fay found out that the CURLOPT_INTERFACE way of first checking if the
110   given name is a network interface gave a real performance penalty on Linux,
111   so now we more appropriately first check if it is an IP number and if so
112   we don't check for a network interface with that name.
113
114 - CURLOPT_FTP_USE_EPRT added. Set this to FALSE to disable libcurl's attempts
115   to use EPRT and LPRT before the traditional PORT command. The command line
116   tool sets this option with '--disable-eprt'.
117
118 Version 7.10.5-pre2 (6 May 2003)
119
120 Daniel (6 May)
121 - Kevin Delafield reported another case where we didn't correctly check for
122   EAGAIN but only EWOULDBLOCK, which caused badness on HPUX.
123
124 Daniel (4 May)
125 - Ben Greear noticed that the check for 'writable argv' exited the configure
126   script when run for cross-compiling, which wasn't nice. Now it'll default to
127   no and output a warning about the fact that it was not checked for.
128
129 Daniel (2 May)
130 - Added test case 62 and fixed some more on the cookie sending with a custom
131   Host: header set.
132
133 Daniel (1 May)
134 - Andy Cedilnik fixed a few compiler warnings.
135
136 - Made the "SSL read error: 5" error message more verbose, by adding code that
137   queries the OpenSSL library to fill in the error buffer.
138
139 Daniel (30 Apr)
140 - Added sys/select.h include in the curl/multi.h file, after having been
141   reminded about this by Rich Gray.
142
143 - I made each test set its own server requirements, thus abandoning the
144   previous system where the test number implied what server(s) to use for a
145   specific test.
146
147 - David Balazic made curl more RFC1738-compliant for FTP URLs, by fixing so
148   that libcurl now uses one CWD command for each path part. A bunch of test
149   cases were fixed to work accordingly.
150
151 - Cookie fixes:
152
153   A. Save domains in jars like Mozilla does. It means all domains set in
154      Set-Cookie: headers are dot-prefixed.
155   B. Save and use the 'tailmatch' field in the Mozilla/Netscape cookie jars
156      (the second column).
157   C. Reject cookies using illegal domains in the Set-Cookie: line. Concerns
158      both domains with too few dots or domains that are outside the currently
159      operating server host's domain.
160   D. Set the path part by default to the one used in the request, if none was
161      set in the Set-Cookie line.
162
163   To make item C really good, I also made libcurl notice custom Host: headers
164   and extract the host name set in there and use that as the host name for the
165   site we're getting the cookies from. This allows user to specify a site's
166   IP-address, but still be able to receive and send its cookies properly if
167   you provide a valid Host: name for the site.
168
169 Daniel (29 Apr)
170 - Peter Kovacs provided a patch that makes the CURLINFO_CONNECT_TIME work fine
171   when using the multi interface (too).
172
173 Version 7.10.5-pre1 (23 Apr 2003)
174
175 Daniel (23 Apr)
176 - Upgraded to libtool 1.5.
177
178 Daniel (22 Apr)
179 - Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly)
180   return CURLE_OK no matter what happens.
181
182 - Dan Fandrich fixed some gzip decompression bugs and flaws.
183
184 Daniel (16 Apr)
185 - Fixed minor typo in man page, reported in the Debian bug tracker.
186
187 Daniel (15 Apr)
188 - Fixed some FTP tests in the test suite that failed on my Solaris host, due
189   to the config.h not being included before the system headers. When done that
190   way, it did get a mixed sense of if big files are supported or not and then
191   stat() and fstat() (as used in test case 505) got confused and failed to
192   return a proper file size.
193
194 - Formposting a file using a .html suffix is now properly set to Content-Type:    text/html.
195
196 Daniel (14 Apr)
197 - Fixed the SSL error handling to return proper SSL error messages again, they
198   broke in 7.10.4. I also attempt to track down CA cert problems and then
199   return the CURLE_SSL_CACERT error code.
200
201 - The curl tool now intercepts the CURLE_SSL_CACERT error code and displays
202   a fairly big and explanatory error message. Kevin Roth helped me out with
203   the wording.
204
205 Daniel (11 Apr)
206 - Nic Hines provided a second patch for gzip decompression, and fixed a bug
207   when deflate or gzip contents were downloaded using chunked encoding.
208
209 - Dan Fandrich made libcurl support automatic decompression of gzip contents
210   (as an addition to the previous deflate support).
211
212 - I made the CWD command during FTP session consider all 2xy codes to be OK
213   responses.
214
215 Daniel (10 Apr)
216 - Vlad Krupin fixed a URL parsing issue. URLs that were not using a slash
217   after the host name, but still had "?" and parameters appended, as in
218   "http://hostname.com?foobar=moo", were not properly parsed by libcurl.
219
220 Daniel (9 Apr)
221 - Made CURLOPT_TIMECONDITION work for FTP transfers, using the same syntax as
222   for HTTP. This then made -z work for ftp transfers too. Added test case 139
223   and 140 for verifying this.
224
225 - Getting the file date of an ftp file used the wrong time zone when
226   displayed. It is supposedly always GMT. Added test case 141 for this.
227
228 - Made the test suite's FTP server support MDTM.
229
230 - The default DEBUGFUNCTION, as enabled with CURLOPT_VERBOSE now outputs
231   CURLINFO_HEADER_IN data as well. The most notable effect from this is that
232   using curl -v, you get to see the incoming "headers" as well. This is
233   perhaps most useful when doing ftp.
234
235 Daniel (8 Apr)
236 - James Bursa fixed a flaw in the Content-Type extraction code, which missed
237   the first letter if no space followed the colon.
238
239 - Magnus Nilsson pointed out that share.c was missing in the MSVC project
240   file.
241
242 Daniel (6 Apr)
243 - Ryan Weaver provided a patch that makes the CA cert bundle not get installed
244   anymore when 'configure --without-ssl' has been used.
245
246 Daniel (4 Apr)
247 - Martijn Broenland found another cases where a server application didn't
248   like the boundary string used by curl when foing a multi-part/formpost. We
249   modified the boundary string to look like the one IE uses, as this is
250   probably gonna make curl work with more applications.
251
252 Daniel (3 Apr)
253 - Kevin Roth reported that a bunch of tests fails on cygwin. One set fails
254   when using perl 5.8 (and they run fine with perl 5.6), and another set
255   failed because of an artifact in the test suite's FTP server that I
256   corrected. It turned out the FTP server code was still having a file opened
257   while the main test script removed it and invoked the HTTP server that
258   attempted to create the same file name of the file the FTP server kept open.
259   This operation works fine on unix, but not on cygwin.
260
261 Version 7.10.4 (2 Apr 2003)
262
263 Daniel (1 Apr)
264 - Added test case 505 to exercise FTP upload with rename done with libcurl,
265   and for that I had to extend the test suite's FTP server to deal with the
266   RNFR and RNTO commands.
267
268 Daniel (31 Mar)
269 - Even more SSL config check modifications after Richard's testing.
270
271 Version 7.10.4-pre6 (31 Mar 2003)
272
273 Daniel (31 Mar)
274 - More fixes for the SSL session ID cache checks when SSL configs are changed
275   between connections. Based on tests and talks with Richard Bramante.
276
277 - Guillaume Cottenceau provided a patch that added CURLOPT_UNRESTRICTED_AUTH.
278   When enabled, it will prevent libcurl from limiting to which host it sends
279   user+password to when following locations. By default, libcurl only sends
280   name and password to the original host used in the first URL, but with this
281   option set it will send the auth info to all hosts it follows location
282   headers to. The new tool command line option for this is named
283   "--location-trusted".
284
285 - Frankie Fong reported a problem with libcurl if you re-used an easy handle
286   with a proxy, and you first made a https:// connction to a host and then
287   switched to a http:// one to the same host. libcurl would then wrongly re-use
288   the same connection for it and fail to get the second URL properly
289
290 Daniel (29 Mar)
291 - Dan Shearer's fix that makes curl complain if invoked with nothing but "curl
292   -O" was applied.
293
294 Daniel (26 Mar)
295 - Bryan Kemp was friendly enough to lend me an account on his Redhat 9 box and
296   I could fix the configure problems on redhat 8.1 and 9 in no time thanks to
297   this. Thanks a bunch Bryan!
298
299 Daniel (25 Mar)
300 - Renamed configure.in to configure.ac
301
302 Version 7.10.4-pre5 (25 Mar 2003)
303
304 Daniel (25 Mar)
305 - Richard Bramante provided a fix for a handle re-use problem seen when you
306   change options on an SSL-enabled connection between requests. Previously,
307   changing peer verification or host verification and similar things was not
308   taken into account when a connection were checked for re-use and thus
309   enabling stricter check between requests on a re-used connection made no
310   difference and the connection would thus be used erroneously.
311
312 Daniel (24 Mar)
313 - Götz Babin-Ebell pointed out that the ca-bundle.crt file contained a
314   certificate from Trustcenter that was a demo certificate only that was never
315   indended to be part of a CA bundle.
316
317 Daniel (21 Mar)
318 - Life is a mystery. Within a time period of 17 hours, Tim Pope and Michael
319   Churchill filed one bug report each, both identifying problems with a second
320   transfer when doing persistant transfers re-using a connection. Tim's one is
321   #706624, labeled "Multiple uploads per handle fail" and Michael's #707003
322   "Does not send Authorization: header when reusing connection". I could track
323   both down to the same piece of logic and it turned out libcurl was not using
324   new settings properly when re-using an existing connection. This concerned
325   both uploading and downloading and involved exactly those pieces these two
326   reports identified. This code has been this faulty since the day I
327   introduced persistant connection support in libcurl, more than 2 years ago.
328
329 Daniel (20 Mar 2003)
330 - Five year anniversary. Today five years ago, the first ever curl release saw
331   the light of day.
332
333 Daniel (17 Mar)
334 - Andy Cedilnik corrected flaws in some libcurl example-usage sources.
335
336 Daniel (16 Mar)
337 - Juan F. Codagnone reported that the fix from March 2nd was incomplete.
338
339 - Added code to the configure.in to check for select() argument types. I've
340   not made any code use the results just yet though.
341
342 Daniel (15 Mar)
343 - Gisle Vanem provided two patches to build better on Windows.
344
345 - Adjusted the test suite code to better make sure that the server(s) required
346   for a specific test is properly started before the test case is attempted.
347   Many tests now run a lot faster than before.
348
349 Daniel (14 Mar)
350 - Another configure.in adjustment made the configure detect functions properly
351   on HPUX now.
352
353 Daniel (13 Mar)
354 - Philippe Raoult fixed pre4-compile quirks for FreeBSD.
355
356 Version 7.10.4-pre4 (13 Mar 2003)
357
358 Daniel (13 Mar)
359 - Added a backup-check for functions that aren't found by AC_CHECK_FUNCS()
360   as I believe some checks on HPUX need this. At least some of the info given
361   to us by Rick Jones seemed to indicate this.
362
363 Daniel (12 Mar)
364 - Thomas Tonino found out that if you used the curl tool to do PUT operations
365   as in 'curl www.foo.com/dir/ -T file' and the file name included for example
366   space or other characters that don't belong in URLs, curl did not properly
367   URL encode them before using them in the URL.
368
369 - Added an option to configure called --enable-libgcc that simply adds -lgcc
370   to the LIBS variable, as this seems to be a common problem.
371
372 - I modified the configure.in file, so that the headers are now checked in an
373   order of "viality". We must also make sure to use the "default headers"
374   parameter to AC_CHECK_HEADERS() so that headers are checked with the proper
375   prerequisites included (i.e all the major and generally important header
376   files are included there by default). This might be what we need for various
377   Sun, HP, AIX and Tru64 systems to behave good again on the header check
378   front.
379
380 - Rick Jones pointed out a few compiler warnings on HP-UX that I addressed.
381
382 - I made the configure --help output nicer by using AC_HELP_STRING() a lot
383   more.
384
385 Daniel (11 Mar)
386 - Christophe Demory fixed the socket sending code to work better on HP-UX
387   when sending data to a socket that would block. It then returns EAGAIN, not
388   EWOULDBLOCK.
389
390 - Richard Gorton improved the seeding function for systems without a good
391   and reliable random source.
392
393 - Richard Gorton fixed a few warnings that popped up when you built curl
394   using the Sun compiler on a 64bit SPARC platform.
395
396 - Martin C. Martin fixed a case where a connect failure using the multi
397   interface didn't produce a human readable error string.
398
399 Daniel (10 Mar)
400 - Reverted ltmain.sh back to libtool 1.4.2 status again, as the 1.4.3 version
401   broke the build on numerous platforms. It seems that libtool 1.4.3 puts some
402   requirements on what versions of the other tools (autoconf + automake) that
403   I am not familiar with and thus I couldn't fulfill at this point.
404
405   Yes, this is more than mildly frustrating.
406
407 Daniel (7 Mar)
408 - Run libtoolize version 1.4.3.
409
410 Version 7.10.4-pre3 (4 Mar 2003)
411
412 Daniel (3 Mar)
413 - Added share.obj to the VC6 and Borland libcurl makefiles.
414
415 - Troels Walsted Hansen found and investigated a problem with libcurl on AIX,
416   presumably only on 4.3 or later. gethostbyname_r() is not returning data
417   that is possible to "keep" and cache the way libcurl does. But instead these
418   versions of AIX uses a gethostbyname() that works thread-safely we can
419   instead use the ordinary gethostbyname() and our pack_hostent() approach to
420   achieve what we want. The configure script now attempts to detect AIX 4.3 or
421   later to adjust for this.
422
423 Daniel (2 Mar)
424 - Juan F. Codagnone found a problem introduced in 7.10.3 when you first did a
425   POST and then back to a GET using the same easy handle.
426
427 Daniel (28 Feb)
428 - Removed the strequal and strnequal defines from curl/curl.h header. They
429   were never meant for the public header anyway. Philippe Raoult brought it
430   up.
431
432 - James Bursa fixed the RISC OS build.
433
434 Daniel (27 Feb)
435 - Avery Fay pointed out the very misleading curl_multi_info_read man page, and
436   I updated it to become more accurate.
437
438 - Salvatore Sorrentino found a problem with FTP downloading that turned out to
439   be his FTP server returning size zero (0 bytes) when SIZE was used on a file
440   while being in BINARY mode. We now make a second check for the actual size
441   by scanning the RETR reply anyway, even if the SIZE command returned 0.
442
443 Daniel (26 Feb)
444 - Kyle Sallee reported a case where he would do a transfer that didn't update
445   the progress meter properly. It turned out to be a case where libcurl would
446   loop a little too eagerly in the tranfer loop, which isn't really good for
447   the APIs, especially not the multi API.
448
449 Version 7.10.4-pre2 (24 Feb 2003)
450
451 Daniel (24 Feb)
452 - Kjetil Jacobsen found out that setting CURLOPT_MAXCONNECTS to a value higher
453   than 5 could cause a segfault.
454
455 - I believe I fixed the 'Expect: 100-continue' behavior that has been broken
456   for a while (I think since my change dated Dec 10 2002). When this header is
457   used, libcurl should wait for a HTTP 100 (or timeout) before sending the
458   post/put data.
459
460 Daniel (14 Feb)
461 - Matthew Clarke provided some info what to modify to make curl build
462   flawlessly on AIX 3.2.5.
463
464 - Martin C. Martin found and fixed a problem in the multi interface when
465   running on Windows and trying to connect to a port without a listener.
466
467 Daniel (13 Feb)
468 - Christopher R. Palmer fixed Curl_base64_encode() to deal with zeroes in the
469   data to encode.
470
471 Daniel (4 Feb)
472 - Jean-Philippe added the first code that enables the 'share' system. This
473   should now enable sharing of DNS data between two curl easy handles.
474
475 - Incorporated Nico Baggus' fixes to again compile flawlessly on VMS.
476
477 - James Bursa corrected a bad comment in the public include file curl/multi.h
478
479 - Peter Forret reported one of those error:00000000 cases in libcurl again
480   when connecting to a HTTPS site, and this time I did discover some oddities
481   in how curl reports SSL errors back. It could miss showing the actual error.
482
483 Version 7.10.4-pre1 (3 Feb 2003)
484
485 Daniel (3 Feb)
486 - Removed things in the docs saying capath doesn't work on Windows, as Julian
487   Noble told us it works fine.
488
489 Daniel (31 Jan)
490 - Kevin Roth fixed the zlib build stuff in the Mingw32 makefile.
491
492 Daniel (30 Jan)
493 - Kevin Roth found out that curl on Windows always checked for the CA cert
494   bundle using the environment variable and the path scan, even though
495   -k/--insecure was used.
496
497 - Hamish Mackenzie pointed out that curl only did strict host name verifying
498   if capath or cainfo was used. Now it'll always do it unless -k / --insecure
499   is used!
500
501 - Pavel Cenek pointed out that the Content-Type extraction was done wrongly
502   as the full string was not fetched. Added test case 57 to verify that curl
503   does it right now.
504
505 Daniel (29 Jan)
506 - Jamie Wilkinson provided a patch that now makes curl attempt to clear out
507   "sensitive" command line arguments so that they don't appear in ps outputs
508   (only on platforms that allow writing to argv[]).
509
510 - John McGowan found out that the DEBUGFUNCTION could be called with bad
511   arguments and thus cause the --trace outputs to go wrong.
512
513 - Removed all the emacs local variables from all files. Mats Lidell provided
514   the new sample.emacs file (for a sample of what to include in your .emacs)
515   and the curl-style.el that sets a better c-style for editing curl sources.
516
517 - Dave Halbakken found a problem with FTP downloads that could accidently
518   return CURLE_PARTIAL_FILE when curl_easy_perform() was called with NOBODY
519   set TRUE.
520
521 Daniel (27 Jan)
522 - The fopen.c example was flawed as Nick Humfrey noticed, and I fixed it to
523   work again.
524
525 Daniel (24 Jan)
526 - Bertrand Demiddelaer found and fixed a memory leak (the content-type string)
527   when following locations.
528
529 Daniel (22 Jan 2003)
530 - Ian Wilkes and Legoff Vincent both independently provided fixes for making
531   curl/multi.h work properly when compiled with a C++ compiler.
532
533 Daniel (20 Jan 2003)
534 - Fixed 'buildconf' to check version number of the required tools before
535   they're actually used.
536
537 - Wrote 'testcurl.sh', a script targeted for automatic and distributed curl
538   tests on various platforms.
539
540 - David Thiel pointed out that the .netrc file was not being dealt with
541   properly anymore. I broke this in the password prompting "fix".
542
543 - Markus F.X.J. Oberhumer patched libcurl to allocate the scratch buffer only
544   on demand and thus we save 32KB in each curl handle that don't use that
545   buffer. This need appeared when some people started using thousands of
546   simultaneous curl handles... :-)
547
548 Daniel (16 Jan 2003)
549 - Markus Oberhumer fixed curl-config --cflags when the includedir was not
550   /usr/include.
551
552 - Markus Oberhumer fixed CURLINFO_PRIVATE to properly return NULL if it was
553   set to NULL!
554
555 Version 7.10.3 (14 Jan 2003)
556
557 Daniel (10 Jan 2003)
558 - Steve Oliphant pointed out that test case 105 did not work anymore and this
559   was due to a missing fix for the password prompting.
560
561 Version 7.10.3-pre6 (10 Jan 2003)
562
563 Daniel (9 Jan 2003)
564 - Bryan Kemp pointed out that curl -u could not provide a blank password
565   without prompting the user. It can now. -u username: makes the password
566   empty, while -u username makes curl prompt the user for a password.
567
568 - Kjetil Jacobsen found a remaining connect problem in the multi interface on
569   ipv4 systems (Linux only?), that I fixed and Kjetil verified that it fixed
570   his problems.
571
572 - memanalyze.pl now reads a file name from the command line, and no longer
573   takes the data on stdin as before.
574
575 Version 7.10.3-pre5 (9 Jan 2003)
576
577 Daniel (9 Jan 2003)
578 - Fixed tests/memanalyze.pl to work with file names that contain colons (as on
579   Windows).
580   
581 - Kjetil Jacobsen quickly pointed out that lib/share.h was missing...
582
583 Version 7.10.3-pre4 (9 Jan 2003)
584
585 Daniel (9 Jan 2003)
586 - Updated lib/share.c quite a bit to match the design document at
587   http://curl.haxx.se/dev/sharing.txt a lot more.
588
589   I'll try to update the document soonish. share.c is still not actually used
590   by libcurl, but the API is slowly getting there and we can start
591   implementing code that takes advantage of this system.
592
593 Daniel (8 Jan 2003)
594 - Updated share stuff in curl/curl.h, including data types, structs and
595   function prototypes. The corresponding files in lib/ were also modified
596   of course to remain compilable. Based on input from Jean-Philippe and also
597   to make it more in line with the design document.
598
599 - Jean-Philippe Barrette-LaPierre patched a very trivial memory leak in
600   curl_escape() that would happen when realloc() returns NULL...
601
602 - Matthew Blain provided feedback to make the --create-dirs stuff build
603   properly on Windows.
604
605 - Fixed the #include in tests/libtest/first.c as Legoff Vincent pointed out.
606
607 Daniel (7 Jan 2003)
608 - Philippe Raoult provided a patch that now makes libcurl properly support
609   wildcard checks for certificate names.
610
611 - Simon Liu added CURLOPT_HTTP200ALIASES, to let an application set other
612   strings recognized as "HTTP 200" to allow http-like protocols to get
613   downloaded fine by curl.
614
615 - Now using autoconf 2.57 and automake 1.7.2
616
617 - Doing "curl -I ftp://domain/non-existing-file" still outputed a date!
618   Wayne Haigh reported.
619
620 - The error message is now written properly with a newline in the --trace
621   file.
622
623 Daniel (6 Jan 2003)
624 - Sterling Hughes fixed a possible bug: previously, if you called
625   curl_easy_perform and then set the global dns cache, the global cache
626   wouldn't be used. Pointed out by Jean-Philippe Barrette-LaPierre.
627
628 - Matthew Blain's fixed the VC6 libcurl makefile to include better debug data
629   on debug builds.
630
631 Daniel (27 Dec 2002)
632 - Philippe Raoult reported a bug with HTTPS connections which I evidently
633   added in my 19 dec fix. I corrected it.
634
635 Daniel (20 Dec)
636 - Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
637   script to make the default makefile less confusing "to the casual
638   installer".
639
640 Version 7.10.3-pre3 (20 Dec)
641
642 Daniel (19 Dec)
643 - Matthew Blain patched the Curl_base64_decode() function.
644
645 - Evan Jordan reported in bug report #653022 that the SSL_read() usage was
646   wrong, and it certainly was. It could lead to curl using too much CPU due to
647   a stupid loop.
648
649 Daniel (18 Dec)
650 - As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
651   CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
652   CURLOPT_FAILONERROR is set.
653
654 Daniel (17 Dec)
655 - Bug reported #651464, reported by Christopher Palmer, provided an example
656   source code using the multi interface that hang when trying to connect to a
657   proxy on a localhost port where no proxy was listening. This bug was not
658   repeatable on libcurls that were IPv6-enabled.
659
660 Daniel (16 Dec)
661 - Christopher Palmer also noticed what Vojtech Janota already was
662   experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
663   to crash when used on some older glibc versions. The problem is of course
664   the silliness of the 2.2.93. I committed a fix that hopefully should make
665   the binary run fine on either one of the versions, even though the solution
666   is not as nice as I'd like it to be.
667
668 Daniel (13 Dec)
669 - Bug report #651460 by Christopher R. Palmer showed that when using libcurl
670   to for example go over a proxy on localhost, it would attempt to connect
671   through the proxy TWICE.
672
673   I added test case 503 with which I managed to repeat this problem and I
674   fixed the code to not re-attempt any connects (which also made it a nicer
675   fix for the #650941 bug mentioned below).
676
677   The sws server was extended to deal with CONNECT in order to make test
678   case 503 do good.
679
680 - Evan Jordan posted bug report #650989 about a memory leak in the public key
681   retrieving code. He provided a suggested fix and I merely applied it!
682
683 - Bug report #650941, posted by Christopher R. Palmer identified a problem
684   with the multi interface and getting file:// URLs. This was now fixed and
685   test case 502 was added to verify this.
686
687 Daniel (12 Dec)
688 - Test case 500 and 501 are the first ever libcurl test cases that run.
689
690 - Made "configure --enable-debug" cut off all -O* options to the compiler
691
692 - Finally fixed the test suite's ftp server so that test case 402 doesn't
693   cause the following test case to fail anymore!
694
695 Daniel (11 Dec)
696 - CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
697   version perform uploads much faster!!! RBramante did lots of research on
698   this topic.
699
700 - Fixed the #include in curl/curl.h to include the other files outside the
701   extern "C" scope.
702
703 Daniel (10 Dec)
704 - Moved around and added more logic:
705
706   First, POST data is never sent as part of the request headers in the http.c
707   code. It is always sent the "normal" read callback then send() way. This now
708   enables a plain HTTP POST to be sent chunked if we want to. This also
709   reduces the risk of having very big POSTs causing problems.
710
711   Further, sending off the initial HTTP request is not done using a loop
712   anymore. If it wasn't all sent off in the first send(), the rest of the
713   request is sent off in the normal transfer select() loop. This makes several
714   things possible, but mainly it makes libcurl block less when used from the
715   multi interface and it also reduces the risk of problems with issuing very
716   large requests.
717
718 Daniel (9 Dec)
719 - Moved the read callback pointer and data within the structs to a more
720   suitable place. This in preparation for a better HTTP-request sending code
721   without (a silly) loop.
722
723 - The Dodds fix seems not to work.
724
725 - Vojtech Janota tests proved that the resolve fix from oct 21st is not good
726   enough since obviously older glibcs might return EAGAIN without this meaning
727   that the buffer was too small.
728
729 - [the other day] Made libcurl loop on recv() and send() now until done, and
730   then get back to select(). Previously it went back to select() more often
731   which really was a slight overhead. This was due to the reported performance
732   problems on HTTP PUT on Windows. I couldn't see any notable difference on
733   Linux...
734
735 Version 7.10.3-pre2 (4 Dec 2002)
736
737 Daniel (4 Dec 2002)
738 - Lots of work with Malcolm Dodds made me add a temporary code fix that now
739   shortens the timeout waiting for the 226 or 250 line after a completed
740   FTP transfer.
741
742   If no data is received within 60 seconds, this is taken as a sign of a dead
743   control connection and we bail out.
744
745 Daniel (3 Dec 2002)
746 - Ralph's bug report #644841 identified a problem in which curl returned a
747   timeout error code when in fact the problem was not a timeout. The proper
748   error should now be propagated better when they're detected in the FTP
749   response reading function.
750
751 - Updated the Borland Makefiles.
752
753 Daniel (2 Dec 2002)
754 - Nicolas Berloquin provided a patch that introduced --create-dirs to the
755   command line tool. When used in combination with -o, it lets curl create
756   [non-existing] directories used in -o, suitably used with #-combinations
757   such as:
758
759      curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
760        -o "dir_#1/pic#2.jpg" --create-dirs
761
762 Version 7.10.3-pre1
763
764 Daniel (28 Nov 2002)
765 - I visited Lars Nordgren and had a go with his problem, which lead me to
766   implement this fix. If libcurl detects the added custom header
767   "Transfer-Encoding: chunked", it will now enable a chunked transfer.
768
769   Also, chunked transfer didn't quite work before but seems to do so now.
770
771 - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
772   didn't work on any platform...
773
774 Daniel (26 Nov 2002)
775 - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
776
777 - Dan Becker found and fixed a minor memory leak on persistent connnections
778   using CURLOPT_USERPWD.
779
780 Daniel (22 Nov 2002)
781 - Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
782   web server (sws) which now lets test case 306 run fine even in combination
783   with the other test cases.
784
785 - Juan Ignacio Hervás found a crash in the verbose connect message that is
786   used on persistent connections. This bug was added in 7.10.2 due to the
787   rearranged name resolve code.
788
789 Daniel (20 Nov 2002)
790 - Kjetil Jacobsen provided a patch that introduces:
791
792    CURLOPT_PRIVATE stores a private pointer in the curl handle.
793
794    CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
795
796 - Karol Pietrzak pointed out how curl-config --cflags didn't output a good
797   include dir so I've removed that for now.
798
799 Version 7.10.2 (18 Nov 2002)
800
801 Daniel (11 Nov 2002)
802 - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
803   properly build with MSVC on Windows.
804
805 Daniel (8 Nov 2002)
806 - Doing HTTP PUT without a specified file size now makes libcurl use
807   Transfer-Encoding: chunked.
808
809 Daniel (7 Nov 2002)
810 - Bug report #634625 identified how curl returned timeout immediately when
811   CURLOPT_CONNECTTIMEOUT was used and provided a fix.
812
813 Version 7.10.2-pre4 (6 Nov 2002)
814
815 Daniel (5 Nov 2002)
816 - Lehel Bernadt found out and fixed. libcurl sent error message to the debug
817   output when it stored the error message.
818
819 - Avery Fay found some problems with the DNS cache (when the cache time was
820   set to 0 we got a memory leak, but when the leak was fixed he got a crash
821   when he used the CURLOPT_INTERFACE with that) that had me do some real
822   restructuring so that we now have a reference counter in the dns cache
823   entries to prevent an entry to get flushed while still actually in use.
824
825   I also detected that we previously didn't update the time stamp when we
826   extracted an entry from the cache so that must've been a reason for some
827   very weird dns cache bugs.
828
829 Version 7.10.2-pre3
830
831 Daniel (31 Oct 2002)
832 - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
833   turned out this didn't help though.)
834
835 - Disable the DNS cache (by setting the timeout to 0) made libcurl leak
836   memory. Avery Fay brought the example code that proved this.
837
838 Version 7.10.2-pre2
839
840 Daniel (28 Oct 2002)
841 - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
842
843 - Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
844   variable (if --cacert isn't used) and if not set, the Windows version will
845   check for a file named "curl-ca-bundle.crt" in the current directory or the
846   directory where curl is located. That file is then used as CA root cert
847   bundle.
848
849 - Avery Fay pointed out that curl's configure scrip didn't get right if you
850   used autoconf newer than 2.52. This was due to some badly quoted code.
851
852 Version 7.10.2-pre1
853
854 Daniel (23 Oct 2002)
855 - Emiliano Ida confirmed that we now build properly with the Borland C++
856   compiler too. We needed yet another fix for the ISO cpp check in the curl.h
857   header file.
858
859 - Yet another fix was needed to get the HTTP download without headers to work.
860   This time it was needed if the first "believed header" was read all in the
861   first read. Test 306 has not run properly since the 11th october fix.
862
863 Daniel (21 Oct 2002)
864 - Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
865   machines (running IPv6 disabled). Mats Lidell let me use an account on his
866   machine and I could verify that gethostbyname_r() has been changed to return
867   EAGAIN instead of ERANGE when the given buffer size is too small. This is
868   glibc 2.2.93.
869
870 - Albert Chin helped me get the -no-undefined option corrected in
871   lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
872   want it present. Kevin Roth helped me try it out on cygwin.
873   
874 - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
875   the ../ support got in (7.10.1).
876
877 Daniel (18 Oct 2002)
878 - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
879   the multi interface.
880
881 Daniel (17 Oct 2002)
882 - Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
883   work quite as supposed. You needed to set it *before* you use
884   CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
885
886 Daniel (15 Oct 2002)
887 - Andrés García provided corrections for erratas in four libcurl man pages.
888
889 Daniel (13 Oct 2002)
890 - Starting now, we generate and include PDF versions of all the docs in the
891   release archives.
892
893 Daniel (12 Oct 2002)
894 - Trying to connect to a host on a bad port number caused the multi interface
895   to never return failure and it appeared to keep on trying forever (it just
896   didn't do anything).
897
898 Daniel (11 Oct 2002)
899 - Downloading HTTP without headers didn't work 100%, some of the initial data
900   got written twice. Kevin Roth reported.
901
902 - Kevin Roth found out the "config file" parser in the client code could
903   segfault, like if DOS newlines were used.
904
905 Version 7.10.1 (11 Oct 2002)
906
907 Daniel (10 Oct 2002)
908 - Jeff Lawson fixed a few problems with connection re-use that remained when
909   you set CURLOPT_PROXY to "".
910
911 Daniel (9 Oct 2002)
912 - Craig Davison found a terrible flaw and Cris Bailiff helped out in the
913   search. Getting HTTP data from servers when the headers are split up in
914   multiple reads, could cause junk data to get inserted among the saved
915   headers. This only concerns HTTP(S) headers.
916
917 Daniel (8 Oct 2002)
918 - Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
919   is set internally, the error text is sent to the debug function as well.
920
921 - I fixed the telnet code to timeout properly as the option tells it to. On
922   non-windows platforms.
923
924 Daniel (7 Oct 2002)
925 - John Crow pointed out that libcurl-the-guide wasn't included in the release
926   tarball!
927
928 - Kevin Roth pointed out that make install didn't do right if build outside
929   the source tree (ca-bundle wise).
930
931 - FOLLOWLOCATION bugfix for the multi interface
932
933 Daniel (4 Oct 2002)
934 - Kevin Roth got problems with his cygwin build with -no-undefined was not
935   present in lib/Makefile.am so I put it back in there again. The poor one who
936   needs to remove it again must write a configure script to detect that need.
937
938 - Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
939   or ../ stuff in the string passed back in a Location: header when following
940   locations.
941
942 - Albert Chin helped me to work out a better configure.in check for zlib, and
943   both --without-zlib and -with-zlib seem to work rather well right now.
944
945 - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
946   become more accurate.
947
948 Daniel (1 Oct 2002)
949 - Detlef Schmier pointed out the lack of a --without-libz option to configure,
950   so I added one.
951
952 Version 7.10 (1 Oct 2002)
953
954 Daniel (30 Sep 2002)
955 - Modified the curl_version_info() proto and returned struct once again, and
956   updated the man page accordingly.
957
958 - Cris Bailiff found out that the pre-releases crashed on name lookups on
959   names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
960   to some weird return codes from gethostbyname_r(). I'll blame the complete
961   lack of docs in that department. Cris provided a fix, which I modified only
962   slightly.
963
964 Daniel (27 Sep 2002)
965 - After a suggestion from Christian Kurz to Debian curl package maintainer
966   Domenico Andreoli, I made it possible to override the proxy environment
967   variables better. Now, by setting -x "" you can explicitly tell libcurl to
968   not use a proxy, no matter whan the environment variables say.
969
970 Version 7.10-pre4
971
972 Daniel (26 Sep 2002)
973 - Extended curl_version_info() more and wrote a man page for it.
974
975 Daniel (25 Sep 2002)
976 - libcurl could leak memory when downloading multiple files using http ranges,
977   reported and fixed by Jean-Luc Guevel.
978
979 - Walter J. Mack provided code and docs for the new curl_free() function that
980   shall be used to free memory that is allocated by libcurl and returned back
981   to the application, as curl_escape() and curl_unescape() do.
982
983 - Yarram Sunil pointed out a flaw in the multi interface where a failed
984   connection didn't close down properly and thus a second transfer using the
985   same handle failed.
986
987 - Andrés García fixed a flaw that made (among other things) dict-fetches
988   return a random value.
989
990 Daniel (24 Sep 2002)
991 - Wez Furlong brought his initial patch that introduced curl_version_info().
992   We might need to tweak it somewhat before release.
993
994 Daniel (20 Sep 2002)
995 - Craig Markwardt fixed another Tru64 IP resolve problem.
996
997 Daniel (19 Sep 2002)
998 - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
999   in the same style other code does.
1000
1001 - Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
1002   and -C - was used. The first file's resume position was then accidentally
1003   reused on all the other files too.
1004
1005 Daniel (18 Sep 2002)
1006 - The curl_easy_setopt.3 man page was greatly modified and the options have
1007   now been grouped in logical groups so that it should be somewhat easier to
1008   read it and find things you search for.
1009
1010 Daniel (13 Sep 2002)
1011 - Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
1012   send any headers back, only raw content. Right, that is a violation of the
1013   standard but still happens at times and we need to deal with it. Test case
1014   306 was added to verify that we do right now.
1015
1016 Version 7.10-pre3
1017
1018 Daniel (11 Sep 2002)
1019 - Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
1020   when you specified the URL with an IPv6 IP-address.
1021
1022 Daniel (4 Sep 2002)
1023 - Sven Neuhaus made --silent being acknowledged even when multiple URLs
1024   were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
1025   even when told to shut up.
1026
1027 Daniel (3 Sep 2002)
1028 - Updated all source code headers to use MIT-license references only, and
1029   point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
1030   URL. I've cut out all references to MPL that I could find.
1031
1032 - Corected the makefiles to not always use -lz when linking
1033
1034 Version 7.10-pre2
1035
1036 Daniel (2 Sep 2002)
1037 - James Gallagher added Content-Encoding support to libcurl so now curl and
1038   libcurl-using apps can request compressed contents using the 'deflate'
1039   method. See the special file lib/README.encoding for details.
1040
1041   curl --compressed is now used to request compressed contents.
1042
1043   curl-config --feature will include 'libz' if this feature was around when
1044   the library was built.
1045
1046 Daniel (30 Aug 2002)
1047 - Applied an anonymous SOCKS5-proxy patch. Not properly working in all
1048   situations though, as all getaddrinfo()-using libcurls will fail on this.
1049   This is because of the somewhat naive way the current code tries to extract
1050   the IP address of the proxy.
1051
1052 - Fixed up the SSL cert fixes from the other day even more after more inputs
1053   from Cris. Added three new SSL error codes to make the
1054   CURLE_SSL_CONNECT_ERROR slightly less overloaded.
1055
1056 Daniel (27 Aug 2002)
1057 - After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
1058   decided to talk the bold path and I now made libcurl do CA certificate
1059   verification by default. Thus library users need to explicitly turn this off
1060   if you want to connect to sites without proper checking. We also install a
1061   CA cert bundle on 'make install' now.
1062
1063   The curl tool now requires the -k/--insecure option in order to allow
1064   connections and operations on SSL sites that aren't properly verified with
1065   -cafile or --capath.
1066
1067   curl-config --ca displays the built-in path to the CA cert bundle.
1068
1069 Daniel (26 Aug 2002)
1070 - Andrew Francis cleaned up some code that now compiles fine without the need
1071   for ugly MSVC pragmas.
1072
1073 - Keith MacDonald found a minor bug in src/main.c that made it close stdin
1074   instead of the actual file handle. It shouldn't have resulted in much
1075   trouble as most operating systems close all file handles on process exit
1076   anyway.
1077
1078 Daniel (22 Aug 2002)
1079 - Markus Oberhumer provided some documentation for his previously provided
1080   CURLOPT_NOSIGNAL fix.
1081
1082 - Patched the lib/Makefile.am to hopefully no longer complain on undefined
1083   symbols that seemed to occur on builds with shared OpenSSL libraries on
1084   Solaris lately...
1085
1086 Daniel (20 Aug 2002)
1087 - Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
1088   remove the pragmas from lib/config-win32.h and adjust the sources where
1089   the warnings occur. Hiding them with pragmas like this is not the correct
1090   way of dealing with compiler warnings.
1091
1092 Daniel (13 Aug 2002)
1093 - Ulrich Zadow made the global include files in curl/* include themselves
1094   using "curl.h" instead of <curl/curl.h> which thus allows people to more
1095   freely decide how to include curl and how to setup their include paths.
1096
1097 - Sterling Hughes added the curl_share* interface, somewhat as discussed
1098   previously.
1099
1100 - Jörn Hartroth pointed out that poll() was used in the pre1 source code and
1101   it isn't very portable, so now I check for it in the configure script and
1102   work around it.
1103
1104 Version 7.9.9-pre1
1105
1106 Daniel (12 Aug 2002)
1107 - Applied my initial take on making the multi stuff more asynchronous. Connects
1108   should now return back without "hanging" until it has connected for real.
1109   This should also be the case for FTP-PASV connects.
1110
1111 Daniel (9 Aug 2002)
1112 - Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
1113   which effectively prevents libcurl from doing anything that may cause
1114   signals to get sent. This is basicly for multi-threaded applications that
1115   now can use timeouts properly, without risking any signals to burst in and
1116   ruin the party.
1117   
1118 Daniel (5 Aug 2002)
1119 - Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
1120   work. When did that code vanish? Anyway, it's back again now and seems to
1121   work!
1122
1123 - Jonatan Lander found out that POSTing an empty string didn't work with the
1124   command line tool.
1125
1126 Daniel (3 Aug 2002)
1127 - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
1128   the multi interface enabled.
1129
1130 Daniel (1 Aug 2002)
1131 - The ftp PORT command now uses a better default IP address, as it will
1132   extract and use the local IP address used by the control connection.
1133
1134 - Modified the #include lines in curl/multi.h to work better on more
1135   platforms.
1136
1137 Daniel (31 Jul 2002)
1138 - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
1139   problems.
1140
1141 Daniel (30 Jul 2002)
1142 - Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
1143   and don't get __STDC__ defined, which required us to extend the preprocessor
1144   check for the ## operator usage.
1145
1146 - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
1147   internal default function will be put back.
1148
1149 - danfuzz at milk.com found out that libcurl badly assumed a space after
1150   'Set-Cookie:' so if it wasn't present, it caused the first letter of the
1151   cookie name to fall off!
1152
1153 Daniel (29 Jul 2002)
1154 - The password prompt asking for user password used stdout and now uses
1155   stderr instead to better allow redirecting. It also leaked a fopen() file
1156   handle that is now fixed.
1157
1158 Daniel (28 Jul 2002)
1159 - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
1160   by M T.
1161
1162 Daniel (26 Jun 2002)
1163 - Glen Nakamura solved a crash in the name resolving function for IP-only
1164   addresses on Alpha Linux (at least).
1165
1166 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
1167
1168 Daniel (22 Jun 2002)
1169 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
1170
1171 Daniel (19 Jun 2002)
1172 - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
1173   tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
1174   are translated by curl_unescape().
1175
1176 Daniel (15 Jun 2002)
1177 - Added --limit-rate to the curl tool. Allows the user to set a maxmimum
1178   upper limit to how much bandwidth to use for transfers.
1179
1180 - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
1181   receive buffer in libcurl. The main point of this would be that the write
1182   callback gets called more often and with smaller chunks.
1183
1184 Daniel (14 Jun 2002)
1185 - Yarram Sunil found out that the SocketIsDead() function performed a lot
1186   faster on Windows when removing the 1 microsecond timeout.
1187
1188 - Hanno L. Kranzhoff fixed the VC++ project files.
1189
1190 - Tom Mattison found out that ftp transfers closed the connection a little
1191   too often.
1192
1193 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
1194   to disable specific protocols when building for Windows.
1195
1196 Version 7.9.8
1197
1198 Daniel (13 Jun 2002)
1199 - Time to let this baby go.
1200
1201 Daniel (12 Jun 2002)
1202 - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
1203   CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH.  They are used to create a
1204   multipart that appears as a regular file upload, but the data is provided
1205   with a pointer and length.
1206   
1207 - Nico Baggus made the VMS version use sigsetjmp() too.
1208
1209 - Jörn Hartroth fixed the mingw32 build using the mm lib.
1210
1211 - Applied patches by Kris Kennaway that correct format string problems in
1212   lib/ftp.c and lib/ldap.c.
1213
1214 Version 7.9.8-pre3
1215
1216 Daniel (11 Jun 2002)
1217 - James Cone brought the idea of using sigsetjmp() in the signal handler to
1218   make the time-out of name lookups to work, even when the underlying name
1219   resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
1220   this may be a bit drastic, and also not likely to exist on all platforms.  I
1221   added careful checking for this in the configure script, even checks for it
1222   being a macro (which seems to be the case in for example Linux).
1223
1224   sigsetjmp() seems to be mentioned in the Single Unix specification.
1225
1226 - Miklos Nemeth brought a patch that allows libcurl to get built with specific
1227   protocols disabled. This is done by running ./configure
1228   --disable-[protocol].
1229
1230 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
1231   make precautions to not return this for range downloads.
1232
1233   Added test case 135 that makes an ftp range download. Had to tweak the
1234   runtests.pl script a bit too.
1235
1236 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
1237   check to prevent this.
1238
1239 Daniel (10 Jun 2002)
1240 - Found and corrected a connect failure problem that didn't create a human
1241   error text.
1242
1243 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
1244   and comments from Götz Babin-Ebell.
1245
1246 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
1247   failed and you reinvoked curl_easy_perform().
1248
1249 Daniel (5 Jun 2002)
1250 - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
1251   matter when you decide to remove the CURL handle.
1252
1253 - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
1254   makes windows builds stop complaining about "weak seeding" when it in fact
1255   isn't.
1256
1257 - Another 64bit architecture crash that was introduced in 7.9.7 was now
1258   removed, as bug report #564585 clarified. This happened due to our attempts
1259   to only allocate only as much memory as is actually needed for name
1260   resolving (using realloc) which called for a function that could 'move' a
1261   hostent struct in memory.
1262
1263 Version 7.9.8-pre2
1264
1265 Daniel (3 Jun 2002)
1266 - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
1267   made the CURLINFO_REQUEST_SIZE return the correct total request size. He
1268   also made the win32 timers use higher resolution than before.
1269
1270 Daniel (29 May 2002)
1271 - Renaud Chaillat made me aware of the fact that libcurl returned an error if
1272   you tried to get an empty FTP file. This seemed like a wrong thing to do, so
1273   now it no longer does that! I just hope that no one built anything fancy
1274   upon this unexpected behavior...
1275
1276 Daniel (28 May 2002)
1277 - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
1278   specifies a path to a directory with certificates rather than a single file
1279   with them all concatenated. --capath was added to the command line tool
1280   for the same function.
1281
1282   Windows users need to pay attention that the directory should be setup with
1283   the c_rehash tool of the OpenSSL package, and that creates symlinks by
1284   default that need to be replaced with actual copies to work on Windows.
1285
1286 - Gustaf Hui provided new code that changes how curl_multi_info_read()
1287   messages are stored, so that they don't have to be kept around for the multi
1288   handle's entire life time. He also made it return failure codes properly
1289   which it didn't do before.
1290
1291 Daniel (27 May 2002)
1292 - Gustaf Hui pointed out that running curl_multi_perform() without doing
1293   curl_multi_fdset() first was not really a working combo. I added an internal
1294   check for this and have some extra select() code without timeout to make the
1295   library internals work identically nevertheless. We might need to somehow
1296   either document that once you've used the *_fdset() you should remain using
1297   them in select() or you should blank them somehow so that libcurl won't go
1298   crazy.
1299
1300 Version 7.9.8-pre1
1301
1302 Daniel (22 May 2002)
1303 - James Cone brought an excellent patch, including several tests and docs!
1304   CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
1305   --netrc-optional was introduced as an addition to --netrc to allow the
1306   command line client to take use of all that new netrc stuff.
1307
1308 - Bug report #558888 showed a case where libcurl re-used the previous host
1309   name when a connection over a proxy was re-used but to a different target
1310   host.
1311
1312 Daniel (21 May 2002)
1313 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
1314   trying to HTTP POST an empty string.
1315
1316 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
1317
1318 - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
1319   CURLFORMcode instead of the previous 'int', and the various return codes are
1320   now globally exported. It allows applications to better figure out what goes
1321   wrong when curl_formadd() returns errors.
1322
1323 Daniel (20 May 2002)
1324 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
1325   is prefered to SSL_CTX_use_certificate_file().
1326
1327 Daniel (17 May 2002)
1328 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
1329   after my AIX fixes the other week.
1330
1331 - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
1332   the DNS struct realloc stuff. Actually, this crash could happen on all
1333   systems that made the pack_hostent() function get invoked.
1334
1335 - I removed several compiler warnings in the test suite's HTTP server.
1336
1337 Version 7.9.7
1338
1339 Daniel (10 May 2002)
1340 - Kevin Roth adjusted the --trace-ascii output slightly.
1341
1342 - Paul Harrington found out that src/writeout.c needed an additional header
1343   file included for AIX builds
1344
1345 Version 7.9.7-pre2
1346
1347 Daniel (7 May 2002)
1348 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
1349
1350 - Made --trace-ascii do pretty much the same as --trace but without the hex
1351   part in the output.
1352
1353 - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
1354   cookies read from a file. This option is enforced by the curl command line
1355   tool using the new -j/--junk-session-cookies option. After discussions with
1356   Kevin Roth. This makes it easier to use curl to fully emulate a browser's
1357   behavior, even when it comes to "session cookies". Session cookies are
1358   cookies that a normal browser discards when the browser is shut
1359   down. They're identified by not having any expire date/time.
1360
1361 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
1362   this was discovered when --trace was made to crash.
1363
1364 - Using -v and --trace at the same time confused matters. -v is now pretty
1365   much ignored when --trace or --trace-ascii is used.
1366
1367 - Made --trace (and --trace-ascii) support - as file name to pass output to
1368   stdout instead. It makes it consistent with how other options work.
1369
1370 Version 7.9.7-pre1
1371
1372 Daniel (6 May 2002)
1373 - Added multi-post.c to the examples directory. I got the basic source for
1374   this from Gustaf Hui.
1375
1376 Daniel (3 May 2002)
1377 - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
1378   can be used to figure out the maximum buffer size your write callback can
1379   get.
1380
1381 - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
1382   an alias for CURLOPT_FILE. These two were added for conformity. Most other
1383   callback function's userdata are provided with options using a similar name-
1384   scheme.
1385
1386 - Added "--trace [file]" to the command line tool. It makes a very detailed
1387   trace dump get stored, with a full protocol dump that includes all received
1388   and transmitted data. This could be a very effective tool for debugging what
1389   goes wrong. This dump includes every byte the way it is sent to/received
1390   from the server. The dump is the plain-text version, so SSL transfers will
1391   still be readable.
1392
1393 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
1394   wanted it to. I fixed it.
1395
1396 - -D now stores all headers to the same file if multiple URLs are given on the
1397   command line! Kevin Roth made me aware of that it didn't already do this!
1398
1399 - Gustaf Hui wrote an excellent formpost example that used the multi
1400   interface.  Unfortunately, it didn't work due to several bugs in how
1401   transfers were made when the multi interface was used.
1402
1403 Daniel (2 May 2002)
1404 - Hanno Kranzhoff found out that when doing multiple transfers on the same
1405   easy handle, the progress meter would show a bad "currently downloaded
1406   value" when the transfer starts.
1407
1408 Daniel (1 May 2002)
1409 - Applied another patch by Jacky Lam to make the name resolve info realloc()
1410   stuff work properly.
1411
1412 Daniel (28 April 2002)
1413 - curl_multi_info_read() is now implemented!
1414
1415 Daniel (27 April 2002)
1416 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
1417
1418 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
1419
1420 - I cleaned up the name prefix stuff in the hash and llist modules.
1421
1422 - FTP responses should now be better on timing out properly. The timeout value
1423   is maximum timeout for the entire request operation, but before this, the
1424   timeout was used as a maximum allowed time between two reads...
1425
1426 Daniel (26 April 2002)
1427 - Fixed the test suite http server to not use snprintf() anymore due to better
1428   portability.
1429
1430 Daniel (25 April 2002)
1431 - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
1432   cause problems since the pruning is only checking the entry time, and it
1433   sure could cause problems. Therefor, I've now added and changed code so that
1434   this should not be a problem. Nowhere in the code will be store name
1435   resolved information around so that a sunsequent DNS cache prune should
1436   cause a problem. This of course called for some mild internal changes.
1437
1438 Daniel (23 April 2002)
1439 - Improved the 'no_proxy' check, as using port numbers in the URL confused it
1440   previously. Reported by Erwan Legrand in bug report #547484.
1441
1442 - The --interface option now works even on IPv6 enabled builds. Reported by
1443   'thor'.
1444
1445 Daniel (22 April 2002)
1446 - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
1447   names are still #defined too.) Pointed out by Robert Olson.
1448
1449 - Jacky Lam brought code that lets the name resolve function only use as much
1450   memory as it actually needs. This only works on certain operating systems,
1451   but is totally transparant to all users.
1452
1453 Daniel (19 April 2002)
1454 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
1455
1456 Daniel (18 April 2002)
1457 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
1458   experienced very big caches.
1459
1460 Daniel (17 April 2002)
1461 - Dirk Manske patched the 301 response to work against the RFC but more like
1462   common browsers do. If a POST get a 301 back, it'll switch to GET in the
1463   next request (if location-following is enabled).
1464
1465 Daniel (16 April 2002)
1466 - Dirk Manske posted a patch originally written by Ingo Wilken that introduced
1467   two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
1468   CURLINFO_REDIRECT_COUNT.
1469
1470 Daniel (15 April 2002)
1471 - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
1472   reflect reality better, like when the first request isn't POST and when
1473   the second isn't GET... :-)
1474
1475 - Craig Davison pointed out that when curl_formadd()ing a file that doesn't
1476   exist, libcurl doesn't return error. Now, curl_easy_perform() will return
1477   CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
1478
1479 Version 7.9.6
1480
1481 Daniel (14 April 2002)
1482 - Dirk Manske brought a fix that makes libcurl strip off white spaces from the
1483   beginning of cookie contents.
1484
1485 - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
1486   Moonesamy pointed out the problem, Bjorn Reese the solution.
1487
1488 Version 7.9.6-pre5
1489
1490 Daniel (12 April 2002)
1491 - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
1492   FTP transfers got the "connect done" time set after the initial FTP commands
1493   and not directly after the TCP/IP connect as it should.
1494
1495   I also made the time stamp get set even if the connect itself fails, which
1496   it didn't do previously.
1497
1498 - Jean-Philippe Barrette-LaPierre provided his patch that introduces
1499   CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
1500   callback to receive debug/information data. That includes headers and data
1501   that is received and sent. CURLOPT_VERBOSE still controls it.
1502
1503   By default, there is an internal debugfunction that will make things look
1504   and work as before if not changed.
1505
1506 Daniel (10 April 2002)
1507 - Sebastien Willemijns found out that -x didn't use the default port number as
1508   is documented. It does now.
1509
1510 - libcurl-errors.3 is a new man page attempting to document all libcurl error
1511   codes
1512
1513 - Added two new error codes and changed the behaviour of two old ones
1514   slightly:
1515
1516   CURLE_WRITE_ERROR
1517    This error was returned *both* for errors that occured when writing
1518    received data to a local file, as well as when we get problems writing data
1519    to a remote server. CURLE_SEND_ERROR has now been added for the latter
1520    error.
1521
1522   CURLE_READ_ERROR
1523    This error was similarly returned *both* for errors when reading a local
1524    file, as well as when getting problems when reading network data.
1525    CURLE_RECV_ERROR has now been added for the latter error.
1526
1527  (Two test cases were adjusted accordingly.)
1528
1529 Daniel (9 April 2002)
1530 - runtests.pl now sets the HOME variable before running curl, to prevent any
1531   actual ~/.curlrc file to fool the tests!
1532
1533 Version 7.9.6-pre4
1534
1535 Daniel (8 April 2002)
1536 - Michael Curtis provided new functionality for curl on some platforms. Using
1537   the --environment option, curl will *set* a bunch of environment variables
1538   to values. The names are the same ones as for the -w/--writeout option.
1539
1540   For now, this only works on the RISC OS version, as this feature relies on
1541   both OS support and that it matches OS paradigms.
1542
1543 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
1544   and 304, I edited it slightly.
1545
1546 Daniel (5 April 2002)
1547 - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
1548   when used in windows), is now loaded from the current directory if the HOME
1549   environment variable isn't set (or if it is too long). I also enlarged the
1550   array used to store the full file path in, to 512 bytes.
1551
1552 - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
1553   was stupid and the change was reverted. Added test case 48 to verify the
1554   functionality.
1555
1556 Version 7.9.6-pre3
1557
1558 Daniel (4 April 2002)
1559 - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
1560   pre-ISO compilers, like when using gcc -traditional.
1561
1562 Daniel (3 April 2002)
1563 - Jacky Lam identified a glitch when getting headers-only, where libcurl would
1564   "hang" 1 second in vain in the select() loop before returning back.
1565
1566 - Tor Arntsen brought a patch for multipart formposts. It turned out that the
1567   "CGI_Lite Perl package" makes some bad assumptions on what letters that may
1568   be used in boundary strings and thus curl could confuse it by including '+'
1569   and '/'. While this is standards-compliant, we change the behavior to work
1570   smoothly with existing software based on that package.
1571
1572 Daniel (2 April 2002)
1573 - Gerhard Herre filed bug report #536238 where he pointed out a crash in
1574   verbose FTP passive transfers for AIX.
1575
1576 - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
1577   take care of all errors that SSL_read() could return.
1578
1579 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
1580
1581 Daniel (27 March 2002)
1582 - T. Bharath pointed out a flaw in the connection re-use function that didn't
1583   check proxy connections properly for "deadness" before they were re-used.
1584
1585 - Pedro Neves found out that HTTP POSTing with --data-binary did not properly
1586   work under Windows as the file specified wasn't read fully binary!
1587
1588 Daniel (25 March 2002)
1589 - Jacky Lam brought a fix that improves treatment of cookies using identical
1590   domains but with leading dots properly.
1591
1592 Daniel (22 March 2002)
1593 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
1594   windows makefiles.
1595
1596 - Jon Dillon provided us with several good-looking curl images for
1597   promotion. View them here http://curl.haxx.se/icons.html
1598
1599 Daniel (20 March 2002)
1600 - Peter Verhas found out that CRLF replacement in uploads was not working. I
1601   fixed it, and added test case 128 that verifies the functionality.
1602
1603 - The list formerly known as curl-main is now named curl-users and is hosted
1604   by sourceforge. Susbcribe to the new list, get off the old one.
1605
1606 Version 7.9.6-pre2
1607
1608 Daniel (19 March 2002)
1609 - Made -G and -I on the same command line cause an error.
1610
1611 - Moved the multi.h file to the "public" include directory and made it get
1612   included by curl.h so that no extra include files will be necessary to use
1613   it.
1614
1615   Added docs and man pages for the multi interface to the release archive.
1616   Added the three example source codes too.
1617
1618   Necessary steps in my campaign to sneak in the multi interface... ;-)
1619
1620 - Updated the year in all copyright notices in all C and H files.
1621
1622 Daniel (18 March 2002)
1623 - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
1624   in 7.9.5... Added test case 32 for this.
1625
1626 Version 7.9.6-pre1
1627
1628 Daniel (16 March 2002)
1629 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
1630   contained factual errors.
1631
1632 - Albert Choy found and corrected a problem with the verbose output when doing
1633   PASV ftp transfers. It could make libcurl crash.
1634
1635   Details in bug report #530562:
1636   http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
1637
1638 Daniel (15 March 2002)
1639 - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
1640   the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
1641   capability! That patch is now reverted.
1642
1643   The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
1644   hosts are instead made by first checking if the stack is IPv6-enabled and if
1645   not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
1646
1647 - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
1648   as described in the man page, libcurl did not return the documented error
1649   code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
1650   now corrected.
1651
1652 Daniel (14 March 2002)
1653 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
1654   data from the callback.
1655
1656 - The GOPHER support seems to be broken. I don't think I'll even start fixing
1657   it until someone else finds out... :-)
1658
1659 Daniel (13 March 2002)
1660 - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
1661   string. If such a file would be present, curl returned the size of it! Now
1662   we prevent this.
1663
1664 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
1665   blocked and thus return -1.
1666
1667 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
1668
1669 - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
1670   CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
1671   CURLFORM_* list proprely and unrestricted until this was the case. It was
1672   also a bit peculiar to users why some options could be used in an array
1673   while others couldn't.
1674
1675 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
1676   Nico Baggus pointed them out to me.
1677
1678 Daniel (11 March 2002)
1679 - CURLFORM_FILENAME was added. This can be set when creating a file upload
1680   part, to set the 'filename' field to a custom value. If this isn't used,
1681   the actually used filename will be included instead (as libcurl always has
1682   done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
1683   too, and allows constructs such as:
1684
1685     -F 'name=@filename;filename=/dev/null'
1686
1687   and this can be combined with type= too, in a manner similar to:
1688
1689    -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
1690
1691   Test case 39 was added to verify this functionality.
1692
1693 - The struct formerly known as HttpPost is now named curl_httppost to properly
1694   use the curl name space. I added a #define for the old name to make existing
1695   programs compile even when this new include file is used.
1696
1697 Daniel (8 March 2002)
1698 - Clifford also discovered that if the client code failed early, as when doing
1699   "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
1700   on some systems.
1701
1702 - Clifford Wolf provided a patch that made --progress-bar work again.
1703
1704 - I closed bug report #527032 by making sure that we add a newline after a
1705   transfer when --progress-bar has been used. Before, without the newline, it
1706   made the subsequent text come out wrong.
1707
1708 Version 7.9.5
1709
1710 Daniel (7 March 2002)
1711 - Added docs/KNOWN_BUGS to the release archive.
1712
1713 Daniel (6 March 2002)
1714 - Kevin Roth corrected a flaw in the curl client globbing code that made it
1715   mess up backslashes. This was most notable on windows (cygwin) machines when
1716   using file://.
1717
1718 - Brad provided another fix for building outside the source-tree.
1719
1720 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
1721
1722 Daniel (5 March 2002)
1723 - I noticed that the typedef in curl.h for the progress callback prototype was
1724   wrong and thus applications that used it would not get the proper input
1725   data. It used size_t where the implementation actually uses doubles!
1726
1727   I wish I could blame someone else, but this was my fault. Again.
1728
1729 Version 7.9.5-pre6
1730
1731 Daniel (4 March 2002)
1732 - Cut off the changes done during 2001 from this changelog file and put them
1733   in a separate file (CHANGES.2001), available from CVS of course.
1734
1735 - I removed the multi directory. The example sources were moved to the
1736   docs/examples directory where they belong.
1737
1738 - Wrote 7 new man pages for the current functions in the new multi interface.
1739   They're all still pretty basic, but we can use them as a start and add more
1740   contents to them when we figure out what to write. The large amount of man
1741   pages for libcurl now present made me decide to put them in a new separate
1742   subdirectory in the docs directory. Named libcurl.
1743
1744 - Giuseppe Corbelli provided a template file for the EPM package manager, it
1745   gets generated nicely by the configure script now.
1746
1747 Version 7.9.5-pre5
1748
1749 Daniel (1 March 2002)
1750 - Moved the memanalyze.pl script into the tests/ dir and added it to the
1751   release archives. It was previously only present in the CVS tree.
1752
1753 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
1754   it caused crashes!
1755
1756 - Nico Baggus added more error codes to the VMS stuff.
1757
1758 - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
1759   option. It is just another FTP quote option that allows the user to specify
1760   a list of FTP commands to issue *just before* the transfer command (RETR or
1761   STOR etc). It has turned up a few systems that really need this.
1762
1763   The curl command line tool can also take advantage of this by prefixing the
1764   quote commands with a plus (+) in similar style that post transfer quote
1765   commands are specified.
1766
1767   This is not yet documented. There is no test case for this yet.
1768
1769 Daniel (28 February 2002)
1770 - Ralph Mitchell made some serious efforts and put a lot of sweat in setting
1771   up scripts and things for me to be able to repeat his problems, and I
1772   finally could.  I found a problem with the header byte counter that wasn't
1773   increased properly and thus we could return CURLE_GOT_NOTHING when we in
1774   fact had received data.
1775
1776 Daniel (27 February 2002)
1777 - I had to revert the non-space parsing cookie fix I posted to the mailing
1778   list. Expire dates do have spaces and still need to get parsed properly!
1779   Instead we just ignore trailing white space and it seems to work...
1780
1781 Daniel (26 February 2002)
1782 - Made the cookie property 'Max-Age' work, just since we already tried to
1783   support it, it is better to do it right. No one uses this anyway.
1784
1785 - The cookie parser could crash if a really weird (illegal) cookie line was
1786   received. I also made it better discard really oddly formatted lines better.
1787
1788   Made the cookie jar store the second field from the left using the syntax
1789   that Netscape and Mozilla probably like. Curl itself ignores it.
1790
1791   Added test case 31 for these cases.
1792
1793   Clay Loveless' email regarding some cookie issues started my cleanup.
1794
1795 - Kevin Roth pointed out that my automake fiddles broke the ability to build
1796   outside the source-tree and I posted a patch to the mailing list that brings
1797   this ability back.
1798
1799 Version 7.9.5-pre4
1800
1801 Daniel (25 February 2002)
1802 - Fiddled with the automake files to make all source files in the lib
1803   directory not have ../src in the include path, and the src sources shouldn't
1804   have ../lib!
1805
1806 - All 79 test cases ran OK under Linux and Solaris using the new HTTP server
1807   in the test suite. The new HTTP server was first donated by Georg Horn and
1808   subsequently modified to work with the test suite. It is currently still not
1809   portable enough to run on "all over" but this is a start and I can run all
1810   curl tests on my machines. This is an important requirement for the upcoming
1811   public release.
1812
1813 - Using -d and -I on the same command line now reports an error, as it implies
1814   two different HTTP requests that can't be mixed.
1815
1816 - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
1817   support %{content_type} to get the content type of the recent download.
1818
1819 - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
1820   and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
1821   out if we could include winsock.h which turns out not to be a wise choice to
1822   do on cygwin since it has the file but can't include it!
1823
1824 Daniel (22 February 2002)
1825 - Added src/config-vms.h to the release archive.
1826
1827 - Fixed the connection timeout value again, the change from February 18 wasn't
1828   complete.
1829
1830 Version 7.9.5-pre3
1831
1832 Daniel (21 February 2002)
1833 - Kevin Roth and Andrés García both found out that lib/config.h.in was missing
1834   in the pre-release archive and thus the configure script failed.
1835
1836 Version 7.9.5-pre2
1837
1838 Daniel (20 February 2002)
1839 - Andrés García provided a solution to bug report #515228. the total time
1840   counter was not set correctly when -I was used during some conditions (all
1841   headers were read in one single read).
1842
1843 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
1844   compile nicely on VMS.
1845
1846 Daniel (19 February 2002)
1847 - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
1848   getaddrinfo() calls, he could speed up some name resolving calls with an
1849   order of magnitudes on his Redhat Linux 7.2.
1850
1851 - Philip Gladstone found a second INADDR_NONE problem where we used long
1852   intead of in_addr_t which caused 64bit problemos. We really shouldn't define
1853   that on two different places.
1854
1855 Daniel (18 February 2002)
1856 - Philip Gladstone found a problem in how HTTP requests were sent if the
1857   request couldn't be sent all at once.
1858
1859 - Emil found and corrected a bad connection timeout comparison that made curl
1860   use the longest of connect-timeout and timout as a timeout value, instead of
1861   the shortest as it was supposed to!
1862
1863 - Aron Roberts provided updated information about LDAP URL syntax to go into
1864   the manual as a replacement for the old references.
1865
1866 Daniel (17 February 2002)
1867 - Philip Gladstone pointed out two missing include files that made curl core
1868   dump on 64bit architectures. We need to pay more attention on these details.
1869   It is *lethal* to for example forget the malloc() prototype, as 'int' is
1870   32bit and malloc() must return a 64bit pointer on these platforms.
1871
1872 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
1873   the same handle using a proxy.
1874
1875 Daniel (8 February 2002)
1876 - Hanno L. Kranzhoff accurately found out that disabling the Expect: header
1877   when doing multipart formposts didn't work very well. It disabled other
1878   parts of the request header too, resulting in a broken header. When I fixed
1879   this, I also noticed that the Content-Type wasn't possible to disable. It is
1880   now, even though it probably is really stupid to try to do this (because of
1881   the boundary string that is included in the internally generated header,
1882   used as form part separator.)
1883
1884 Daniel (7 February 2002)
1885 - I moved the config*.h files from the root directory to the lib/ directory.
1886
1887 - I've added the new test suite HTTP server to the CVS repository, It seems to
1888   work pretty good now, but we must make it get used by the test scripts
1889   properly and then we need to make sure that it compiles, builds and runs on
1890   most operating systems.
1891
1892 Version 7.9.5-pre1
1893
1894 Daniel (6 February 2002)
1895 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
1896
1897 - Mr Larry Fahnoe found a problem with formposts and I managed to track down
1898   and patch this bug. This was actually two bugs, as the posted size was also
1899   said to be two bytes too large.
1900
1901 - Brent Beardsley found out and brought a correction for the
1902   CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
1903   accidentaly broke Giaslas Georgios' patch.
1904
1905 Daniel (5 February 2002)
1906 - Kevin Roth found yet another SSL download problem.
1907
1908 Version 7.9.4
1909
1910 - no changes since pre-release
1911
1912 Version 7.9.4-pre2
1913
1914 Daniel (3 February 2002)
1915 - Eric Melville provided a few spelling corrections in the curl man page.
1916
1917 Daniel (1 February 2002)
1918 - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
1919   uses gmtime_r() on all hosts that have it.
1920
1921 Daniel (31 January 2002)
1922 - An anonymous bug report identified a problem in the DNS caching which made it
1923   sometimes allocate one byte too little to store the cache entry in. This
1924   happened when the port number started with 1!
1925
1926 - Albert Chin provided a patch that improves the gethostbyname_r() configure
1927   check on HP-UX 11.00.
1928
1929 Version 7.9.4-pre1
1930
1931 Daniel (30 January 2002)
1932 - Georg Horn found another way the SSL reading failed due to the non-blocking
1933   state of the sockets! I fixed.
1934
1935 Daniel (29 January 2002)
1936 - Multipart formposts now send the full request properly, including the CRLF.
1937   They were previously treated as part of the post data.
1938
1939 - The upload byte counter bugged.
1940
1941 - T. Bharath pointed out that we seed SSL on every connect, which is a time-
1942   consuming operation that should only be needed to do once. We patched
1943   libcurl to now only seed on the first connect when unseeded. The seeded
1944   status is global so it'll now only happen once during a program's life time.
1945
1946   If the random_file or egdsocket is set, the seed will be re-made though.
1947
1948 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
1949   curl_easy_getinfo() read the content-type from the previous request.
1950
1951 Daniel (28 January 2002)
1952 - Kjetil Jacobsen found a way to crash curl and after much debugging, it
1953   turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
1954   name resolving.
1955
1956 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
1957   reentrant!
1958
1959 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
1960   CURLOPT_POSTFIELDS. You can now!
1961
1962 Daniel (25 January 2002)
1963 - Krishnendu Majumdar pointed out that the header length counter was not reset
1964   between multiple requests on the same handle.
1965
1966 - Pedro Neves rightfully questioned why curl always append \r\n to the data
1967   that is sent in HTTP POST requests. Unfortunately, this broke the test suite
1968   as the test HTTP server is lame enough not to deal with this... :-O
1969
1970 - Following Location: headers when the connection didn't close didn't work as
1971   libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
1972   the restructured internals. 'Frank' posted a bug report about this.
1973
1974 Daniel (24 January 2002)
1975 - Kevin Roth very quickly spotted that we wrongly installed the example
1976   programs that were built in the multi directory, when 'make install' was
1977   used. :-/
1978
1979 Version 7.9.3
1980
1981 Daniel (23 January 2002)
1982 - Andrés García found a persistancy problem when doing HTTP HEAD, that made
1983   curl "hang" until the connection was closed by the server. This problem has
1984   been introduced in 7.9.3 due to internal rewrites, this was not present in
1985   7.9.2.
1986
1987 Version 7.9.3-pre4
1988
1989 Daniel (19 January 2002)
1990 - Antonio filed bug report #505514 and provided a fix! When doing multipart
1991   formposts, libcurl would include an error text in the actual post if a
1992   specified file wasn't found. This is not libcurl's job. Instead we add an
1993   empty part.
1994
1995 Daniel (18 January 2002)
1996 - Played around with stricter compiler warnings for gcc (when ./configure
1997   --enable-debug is used) and changed some minor things to stop the warnings.
1998
1999 - Commented out the 'long long' and 'long double' checks in configure.in, as
2000   we don't currently use them anyway and the code in lib/mprintf.c that use
2001   them causes warnings.
2002
2003 - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
2004   to correct them. Two compiler warnings were removed as well.
2005
2006 - Andrés García fixed two minor mingw32 building problems.
2007
2008 Version 7.9.3-pre3
2009
2010 Daniel (17 January 2002)
2011 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
2012   friends.
2013
2014 - Richard Archer brought back the ability to compile and build with OpenSSL
2015   versions before 0.9.5.
2016   [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
2017
2018 - The DNS cache code didn't take the port number into account, which made it
2019   work rather bad on IPv6-enabled hosts (especially when doing passive
2020   FTP). Sterling fixed it.
2021
2022 Daniel (16 January 2002)
2023 - Georg Horn could make a transfer time-out without error text. I found it and
2024   corrected it.
2025
2026 - SSL writes didn't work, they return an uninitialized value that caused
2027   havoc all over. Georg Horn experienced this.
2028
2029 - Kevin Roth patched the curl_version() function to use the proper OpenSSL
2030   function for version information. This way, curl will report the version of
2031   the SSL library actually running right now, not the one that had its headers
2032   installed when libcurl was built. Mainly intersting when running with shared
2033   OpenSSL libraries.  
2034
2035 Version 7.9.3-pre2
2036
2037 Daniel (16 January 2002)
2038 - Mofied the main transfer loop and related stuff to deal with non-blocking
2039   sockets in the upload section. While doing this, I've now separated the
2040   connection oriented buffers to have one for downloads and one for uploads
2041   (as two can happen simultaneously). I also shrunk the buffers to 20K
2042   each. As we have a scratch buffer twice the size of the upload buffer, we
2043   arrived at 80K for buffers compared with the previous 150K.
2044
2045 - Added the --cc option to curl-config command as it enables so very cool
2046   one-liners. Have a go a this one, building the simple.c example:
2047
2048         $ `curl-config --cc --cflags --libs` -o example simple.c
2049
2050 Daniel (14 January 2002)
2051 - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
2052   only need to address all writes (send) too and then I'm ready for another
2053   pre-release...
2054
2055 - Stoned Elipot patched the in_addr_t configure test to make it work better on
2056   more platforms.
2057
2058 Daniel (9 January 2002)
2059 - Cris Bailiff found out that filling up curl's SSL session cache caused a
2060   crash!
2061
2062 - Posted the curl questionnaire on the web site. If you haven't posted your
2063   opinions there yet, go there and do it now while it is still there:
2064
2065         http://curl.haxx.se/q/
2066
2067 - Georg Horn quickly found out that the SSL reading no longer worked as
2068   supposed since the switch to non-blocking sockets. I've made a quick patch
2069   (for reading only) but we should improve it even further.
2070
2071 Version 7.9.3-pre1
2072
2073 Daniel (7 January 2002)
2074 - I made the 'bool' typedef use an "unsigned char". It makes it the same on
2075   all platforms, no matter what the platform thinks the default format for
2076   char is. This was noticed since we made a silly comparison involving such a
2077   bool variable, and only one compiler/platform combination (on Debian Linux)
2078   complained about it (that happened to have its char unsigned by default).
2079
2080 - Bug report #495290 identified a cookie parsing problem that was corrected.
2081   When a Set-Cookie: line is received without a trailing semicolon, libcurl
2082   didn't read the last "name=value" pair of the line, leading to confusions...
2083
2084 - Sterling committed his updated DNS cache code.
2085
2086 - I worked with Georg Horn and comments from Götz Babin-Ebell and switched
2087   curl's socket operations completely over to non-blocking for the entire
2088   operation (previously we used non-blocking only for the connection phase).
2089   We had to do this to make the SSL connection phase timeout properly without
2090   the use of signals. A little extra code to deal with this was added.
2091
2092 - T. Bharath pointed out a slightly obscure cookie engine flaw.
2093
2094 - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
2095   204-replies never provides a response-body. This resulted in bad persistant
2096   behavior when 204 was received.
2097
2098 Daniel (5 January 2002)
2099 - SM updated the VC++ library Makefiles for the new source files.
2100
2101 Daniel (4 January 2002)
2102 - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
2103   two places in the source code). One happened with VERBOSE set on connects,
2104   and the other when VERBOSE was on and krb4 over nat was used... I honestly
2105   don't think anyone has suffered from these mistakes.
2106
2107 - I replaced a lot of silly occurances of printf() to instead use the more
2108   appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
2109   affected.
2110
2111 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
2112   sparc on solaris 8).
2113
2114 - After discussions on the libcurl list with Raoul Cridlig, I just made FTP
2115   response lines get passed to the header callback if such a one is
2116   registered. It'll make it possible for any application to get all the
2117   responses an FTP server sends to libcurl.
2118
2119 Daniel (3 January 2002)
2120 - Sterling Hughes brought a few buckets of code. Now, libcurl will
2121   automatically cache DNS lookups and re-use the previous results first if any
2122   such is available. It greatly improves speed when doing many repeated
2123   operations to the same host.
2124
2125 - As the test case uses --include and then --head, I had to modify src/main.c
2126   to deal with this situation slightly better than previously. When done, we
2127   have 100% good tests again in the main branch.
2128
2129 Daniel (2 January 2002)
2130 - Made test case 25 run again in the multi-dev branch. But it seems that the
2131   changes done on dec-20 made test case 104 cease to work (in both branches).
2132
2133 - Philip Gladstone pointed out a few portability problems in the source code
2134   that didn't compile on 64-bit sparcs using Sun's native compiler.