Glen Nakamura's patch applied
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _     
2                               ___| | | |  _ \| |    
3                              / __| | | | |_) | |    
4                             | (__| |_| |  _ <| |___ 
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Daniel (26 Jun 2002)
10 - Glen Nakamura solved a crash in the name resolving function for IP-only
11   addresses on Alpha Linux (at least).
12
13 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
14
15 Daniel (22 Jun 2002)
16 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
17
18 Daniel (19 Jun 2002)
19 - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
20   tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
21   are translated by curl_unescape().
22
23 Daniel (15 Jun 2002)
24 - Added --limit-rate to the curl tool. Allows the user to set a maxmimum
25   upper limit to how much bandwidth to use for transfers.
26
27 - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
28   receive buffer in libcurl. The main point of this would be that the write
29   callback gets called more often and with smaller chunks.
30
31 Daniel (14 Jun 2002)
32 - Yarram Sunil found out that the SocketIsDead() function performed a lot
33   faster on Windows when removing the 1 microsecond timeout.
34
35 - Hanno L. Kranzhoff fixed the VC++ project files.
36
37 - Tom Mattison found out that ftp transfers closed the connection a little
38   too often.
39
40 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
41   to disable specific protocols when building for Windows.
42
43 Version 7.9.8
44
45 Daniel (13 Jun 2002)
46 - Time to let this baby go.
47
48 Daniel (12 Jun 2002)
49 - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
50   CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH.  They are used to create a
51   multipart that appears as a regular file upload, but the data is provided
52   with a pointer and length.
53   
54 - Nico Baggus made the VMS version use sigsetjmp() too.
55
56 - Jörn Hartroth fixed the mingw32 build using the mm lib.
57
58 - Applied patches by Kris Kennaway that correct format string problems in
59   lib/ftp.c and lib/ldap.c.
60
61 Version 7.9.8-pre3
62
63 Daniel (11 Jun 2002)
64 - James Cone brought the idea of using sigsetjmp() in the signal handler to
65   make the time-out of name lookups to work, even when the underlying name
66   resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
67   this may be a bit drastic, and also not likely to exist on all platforms.  I
68   added careful checking for this in the configure script, even checks for it
69   being a macro (which seems to be the case in for example Linux).
70
71   sigsetjmp() seems to be mentioned in the Single Unix specification.
72
73 - Miklos Nemeth brought a patch that allows libcurl to get built with specific
74   protocols disabled. This is done by running ./configure
75   --disable-[protocol].
76
77 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
78   make precautions to not return this for range downloads.
79
80   Added test case 135 that makes an ftp range download. Had to tweak the
81   runtests.pl script a bit too.
82
83 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
84   check to prevent this.
85
86 Daniel (10 Jun 2002)
87 - Found and corrected a connect failure problem that didn't create a human
88   error text.
89
90 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
91   and comments from Götz Babin-Ebell.
92
93 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
94   failed and you reinvoked curl_easy_perform().
95
96 Daniel (5 Jun 2002)
97 - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
98   matter when you decide to remove the CURL handle.
99
100 - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
101   makes windows builds stop complaining about "weak seeding" when it in fact
102   isn't.
103
104 - Another 64bit architecture crash that was introduced in 7.9.7 was now
105   removed, as bug report #564585 clarified. This happened due to our attempts
106   to only allocate only as much memory as is actually needed for name
107   resolving (using realloc) which called for a function that could 'move' a
108   hostent struct in memory.
109
110 Version 7.9.8-pre2
111
112 Daniel (3 Jun 2002)
113 - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
114   made the CURLINFO_REQUEST_SIZE return the correct total request size. He
115   also made the win32 timers use higher resolution than before.
116
117 Daniel (29 May 2002)
118 - Renaud Chaillat made me aware of the fact that libcurl returned an error if
119   you tried to get an empty FTP file. This seemed like a wrong thing to do, so
120   now it no longer does that! I just hope that no one built anything fancy
121   upon this unexpected behavior...
122
123 Daniel (28 May 2002)
124 - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
125   specifies a path to a directory with certificates rather than a single file
126   with them all concatenated. --capath was added to the command line tool
127   for the same function.
128
129   Windows users need to pay attention that the directory should be setup with
130   the c_rehash tool of the OpenSSL package, and that creates symlinks by
131   default that need to be replaced with actual copies to work on Windows.
132
133 - Gustaf Hui provided new code that changes how curl_multi_info_read()
134   messages are stored, so that they don't have to be kept around for the multi
135   handle's entire life time. He also made it return failure codes properly
136   which it didn't do before.
137
138 Daniel (27 May 2002)
139 - Gustaf Hui pointed out that running curl_multi_perform() without doing
140   curl_multi_fdset() first was not really a working combo. I added an internal
141   check for this and have some extra select() code without timeout to make the
142   library internals work identically nevertheless. We might need to somehow
143   either document that once you've used the *_fdset() you should remain using
144   them in select() or you should blank them somehow so that libcurl won't go
145   crazy.
146
147 Version 7.9.8-pre1
148
149 Daniel (22 May 2002)
150 - James Cone brought an excellent patch, including several tests and docs!
151   CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
152   --netrc-optional was introduced as an addition to --netrc to allow the
153   command line client to take use of all that new netrc stuff.
154
155 - Bug report #558888 showed a case where libcurl re-used the previous host
156   name when a connection over a proxy was re-used but to a different target
157   host.
158
159 Daniel (21 May 2002)
160 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
161   trying to HTTP POST an empty string.
162
163 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
164
165 - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
166   CURLFORMcode instead of the previous 'int', and the various return codes are
167   now globally exported. It allows applications to better figure out what goes
168   wrong when curl_formadd() returns errors.
169
170 Daniel (20 May 2002)
171 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
172   is prefered to SSL_CTX_use_certificate_file().
173
174 Daniel (17 May 2002)
175 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
176   after my AIX fixes the other week.
177
178 - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
179   the DNS struct realloc stuff. Actually, this crash could happen on all
180   systems that made the pack_hostent() function get invoked.
181
182 - I removed several compiler warnings in the test suite's HTTP server.
183
184 Version 7.9.7
185
186 Daniel (10 May 2002)
187 - Kevin Roth adjusted the --trace-ascii output slightly.
188
189 - Paul Harrington found out that src/writeout.c needed an additional header
190   file included for AIX builds
191
192 Version 7.9.7-pre2
193
194 Daniel (7 May 2002)
195 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
196
197 - Made --trace-ascii do pretty much the same as --trace but without the hex
198   part in the output.
199
200 - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
201   cookies read from a file. This option is enforced by the curl command line
202   tool using the new -j/--junk-session-cookies option. After discussions with
203   Kevin Roth. This makes it easier to use curl to fully emulate a browser's
204   behavior, even when it comes to "session cookies". Session cookies are
205   cookies that a normal browser discards when the browser is shut
206   down. They're identified by not having any expire date/time.
207
208 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
209   this was discovered when --trace was made to crash.
210
211 - Using -v and --trace at the same time confused matters. -v is now pretty
212   much ignored when --trace or --trace-ascii is used.
213
214 - Made --trace (and --trace-ascii) support - as file name to pass output to
215   stdout instead. It makes it consistent with how other options work.
216
217 Version 7.9.7-pre1
218
219 Daniel (6 May 2002)
220 - Added multi-post.c to the examples directory. I got the basic source for
221   this from Gustaf Hui.
222
223 Daniel (3 May 2002)
224 - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
225   can be used to figure out the maximum buffer size your write callback can
226   get.
227
228 - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
229   an alias for CURLOPT_FILE. These two were added for conformity. Most other
230   callback function's userdata are provided with options using a similar name-
231   scheme.
232
233 - Added "--trace [file]" to the command line tool. It makes a very detailed
234   trace dump get stored, with a full protocol dump that includes all received
235   and transmitted data. This could be a very effective tool for debugging what
236   goes wrong. This dump includes every byte the way it is sent to/received
237   from the server. The dump is the plain-text version, so SSL transfers will
238   still be readable.
239
240 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
241   wanted it to. I fixed it.
242
243 - -D now stores all headers to the same file if multiple URLs are given on the
244   command line! Kevin Roth made me aware of that it didn't already do this!
245
246 - Gustaf Hui wrote an excellent formpost example that used the multi
247   interface.  Unfortunately, it didn't work due to several bugs in how
248   transfers were made when the multi interface was used.
249
250 Daniel (2 May 2002)
251 - Hanno Kranzhoff found out that when doing multiple transfers on the same
252   easy handle, the progress meter would show a bad "currently downloaded
253   value" when the transfer starts.
254
255 Daniel (1 May 2002)
256 - Applied another patch by Jacky Lam to make the name resolve info realloc()
257   stuff work properly.
258
259 Daniel (28 April 2002)
260 - curl_multi_info_read() is now implemented!
261
262 Daniel (27 April 2002)
263 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
264
265 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
266
267 - I cleaned up the name prefix stuff in the hash and llist modules.
268
269 - FTP responses should now be better on timing out properly. The timeout value
270   is maximum timeout for the entire request operation, but before this, the
271   timeout was used as a maximum allowed time between two reads...
272
273 Daniel (26 April 2002)
274 - Fixed the test suite http server to not use snprintf() anymore due to better
275   portability.
276
277 Daniel (25 April 2002)
278 - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
279   cause problems since the pruning is only checking the entry time, and it
280   sure could cause problems. Therefor, I've now added and changed code so that
281   this should not be a problem. Nowhere in the code will be store name
282   resolved information around so that a sunsequent DNS cache prune should
283   cause a problem. This of course called for some mild internal changes.
284
285 Daniel (23 April 2002)
286 - Improved the 'no_proxy' check, as using port numbers in the URL confused it
287   previously. Reported by Erwan Legrand in bug report #547484.
288
289 - The --interface option now works even on IPv6 enabled builds. Reported by
290   'thor'.
291
292 Daniel (22 April 2002)
293 - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
294   names are still #defined too.) Pointed out by Robert Olson.
295
296 - Jacky Lam brought code that lets the name resolve function only use as much
297   memory as it actually needs. This only works on certain operating systems,
298   but is totally transparant to all users.
299
300 Daniel (19 April 2002)
301 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
302
303 Daniel (18 April 2002)
304 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
305   experienced very big caches.
306
307 Daniel (17 April 2002)
308 - Dirk Manske patched the 301 response to work against the RFC but more like
309   common browsers do. If a POST get a 301 back, it'll switch to GET in the
310   next request (if location-following is enabled).
311
312 Daniel (16 April 2002)
313 - Dirk Manske posted a patch originally written by Ingo Wilken that introduced
314   two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
315   CURLINFO_REDIRECT_COUNT.
316
317 Daniel (15 April 2002)
318 - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
319   reflect reality better, like when the first request isn't POST and when
320   the second isn't GET... :-)
321
322 - Craig Davison pointed out that when curl_formadd()ing a file that doesn't
323   exist, libcurl doesn't return error. Now, curl_easy_perform() will return
324   CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
325
326 Version 7.9.6
327
328 Daniel (14 April 2002)
329 - Dirk Manske brought a fix that makes libcurl strip off white spaces from the
330   beginning of cookie contents.
331
332 - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
333   Moonesamy pointed out the problem, Bjorn Reese the solution.
334
335 Version 7.9.6-pre5
336
337 Daniel (12 April 2002)
338 - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
339   FTP transfers got the "connect done" time set after the initial FTP commands
340   and not directly after the TCP/IP connect as it should.
341
342   I also made the time stamp get set even if the connect itself fails, which
343   it didn't do previously.
344
345 - Jean-Philippe Barrette-LaPierre provided his patch that introduces
346   CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
347   callback to receive debug/information data. That includes headers and data
348   that is received and sent. CURLOPT_VERBOSE still controls it.
349
350   By default, there is an internal debugfunction that will make things look
351   and work as before if not changed.
352
353 Daniel (10 April 2002)
354 - Sebastien Willemijns found out that -x didn't use the default port number as
355   is documented. It does now.
356
357 - libcurl-errors.3 is a new man page attempting to document all libcurl error
358   codes
359
360 - Added two new error codes and changed the behaviour of two old ones
361   slightly:
362
363   CURLE_WRITE_ERROR
364    This error was returned *both* for errors that occured when writing
365    received data to a local file, as well as when we get problems writing data
366    to a remote server. CURLE_SEND_ERROR has now been added for the latter
367    error.
368
369   CURLE_READ_ERROR
370    This error was similarly returned *both* for errors when reading a local
371    file, as well as when getting problems when reading network data.
372    CURLE_RECV_ERROR has now been added for the latter error.
373
374  (Two test cases were adjusted accordingly.)
375
376 Daniel (9 April 2002)
377 - runtests.pl now sets the HOME variable before running curl, to prevent any
378   actual ~/.curlrc file to fool the tests!
379
380 Version 7.9.6-pre4
381
382 Daniel (8 April 2002)
383 - Michael Curtis provided new functionality for curl on some platforms. Using
384   the --environment option, curl will *set* a bunch of environment variables
385   to values. The names are the same ones as for the -w/--writeout option.
386
387   For now, this only works on the RISC OS version, as this feature relies on
388   both OS support and that it matches OS paradigms.
389
390 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
391   and 304, I edited it slightly.
392
393 Daniel (5 April 2002)
394 - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
395   when used in windows), is now loaded from the current directory if the HOME
396   environment variable isn't set (or if it is too long). I also enlarged the
397   array used to store the full file path in, to 512 bytes.
398
399 - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
400   was stupid and the change was reverted. Added test case 48 to verify the
401   functionality.
402
403 Version 7.9.6-pre3
404
405 Daniel (4 April 2002)
406 - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
407   pre-ISO compilers, like when using gcc -traditional.
408
409 Daniel (3 April 2002)
410 - Jacky Lam identified a glitch when getting headers-only, where libcurl would
411   "hang" 1 second in vain in the select() loop before returning back.
412
413 - Tor Arntsen brought a patch for multipart formposts. It turned out that the
414   "CGI_Lite Perl package" makes some bad assumptions on what letters that may
415   be used in boundary strings and thus curl could confuse it by including '+'
416   and '/'. While this is standards-compliant, we change the behavior to work
417   smoothly with existing software based on that package.
418
419 Daniel (2 April 2002)
420 - Gerhard Herre filed bug report #536238 where he pointed out a crash in
421   verbose FTP passive transfers for AIX.
422
423 - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
424   take care of all errors that SSL_read() could return.
425
426 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
427
428 Daniel (27 March 2002)
429 - T. Bharath pointed out a flaw in the connection re-use function that didn't
430   check proxy connections properly for "deadness" before they were re-used.
431
432 - Pedro Neves found out that HTTP POSTing with --data-binary did not properly
433   work under Windows as the file specified wasn't read fully binary!
434
435 Daniel (25 March 2002)
436 - Jacky Lam brought a fix that improves treatment of cookies using identical
437   domains but with leading dots properly.
438
439 Daniel (22 March 2002)
440 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
441   windows makefiles.
442
443 - Jon Dillon provided us with several good-looking curl images for
444   promotion. View them here http://curl.haxx.se/icons.html
445
446 Daniel (20 March 2002)
447 - Peter Verhas found out that CRLF replacement in uploads was not working. I
448   fixed it, and added test case 128 that verifies the functionality.
449
450 - The list formerly known as curl-main is now named curl-users and is hosted
451   by sourceforge. Susbcribe to the new list, get off the old one.
452
453 Version 7.9.6-pre2
454
455 Daniel (19 March 2002)
456 - Made -G and -I on the same command line cause an error.
457
458 - Moved the multi.h file to the "public" include directory and made it get
459   included by curl.h so that no extra include files will be necessary to use
460   it.
461
462   Added docs and man pages for the multi interface to the release archive.
463   Added the three example source codes too.
464
465   Necessary steps in my campaign to sneak in the multi interface... ;-)
466
467 - Updated the year in all copyright notices in all C and H files.
468
469 Daniel (18 March 2002)
470 - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
471   in 7.9.5... Added test case 32 for this.
472
473 Version 7.9.6-pre1
474
475 Daniel (16 March 2002)
476 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
477   contained factual errors.
478
479 - Albert Choy found and corrected a problem with the verbose output when doing
480   PASV ftp transfers. It could make libcurl crash.
481
482   Details in bug report #530562:
483   http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
484
485 Daniel (15 March 2002)
486 - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
487   the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
488   capability! That patch is now reverted.
489
490   The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
491   hosts are instead made by first checking if the stack is IPv6-enabled and if
492   not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
493
494 - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
495   as described in the man page, libcurl did not return the documented error
496   code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
497   now corrected.
498
499 Daniel (14 March 2002)
500 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
501   data from the callback.
502
503 - The GOPHER support seems to be broken. I don't think I'll even start fixing
504   it until someone else finds out... :-)
505
506 Daniel (13 March 2002)
507 - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
508   string. If such a file would be present, curl returned the size of it! Now
509   we prevent this.
510
511 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
512   blocked and thus return -1.
513
514 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
515
516 - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
517   CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
518   CURLFORM_* list proprely and unrestricted until this was the case. It was
519   also a bit peculiar to users why some options could be used in an array
520   while others couldn't.
521
522 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
523   Nico Baggus pointed them out to me.
524
525 Daniel (11 March 2002)
526 - CURLFORM_FILENAME was added. This can be set when creating a file upload
527   part, to set the 'filename' field to a custom value. If this isn't used,
528   the actually used filename will be included instead (as libcurl always has
529   done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
530   too, and allows constructs such as:
531
532     -F 'name=@filename;filename=/dev/null'
533
534   and this can be combined with type= too, in a manner similar to:
535
536    -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
537
538   Test case 39 was added to verify this functionality.
539
540 - The struct formerly known as HttpPost is now named curl_httppost to properly
541   use the curl name space. I added a #define for the old name to make existing
542   programs compile even when this new include file is used.
543
544 Daniel (8 March 2002)
545 - Clifford also discovered that if the client code failed early, as when doing
546   "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
547   on some systems.
548
549 - Clifford Wolf provided a patch that made --progress-bar work again.
550
551 - I closed bug report #527032 by making sure that we add a newline after a
552   transfer when --progress-bar has been used. Before, without the newline, it
553   made the subsequent text come out wrong.
554
555 Version 7.9.5
556
557 Daniel (7 March 2002)
558 - Added docs/KNOWN_BUGS to the release archive.
559
560 Daniel (6 March 2002)
561 - Kevin Roth corrected a flaw in the curl client globbing code that made it
562   mess up backslashes. This was most notable on windows (cygwin) machines when
563   using file://.
564
565 - Brad provided another fix for building outside the source-tree.
566
567 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
568
569 Daniel (5 March 2002)
570 - I noticed that the typedef in curl.h for the progress callback prototype was
571   wrong and thus applications that used it would not get the proper input
572   data. It used size_t where the implementation actually uses doubles!
573
574   I wish I could blame someone else, but this was my fault. Again.
575
576 Version 7.9.5-pre6
577
578 Daniel (4 March 2002)
579 - Cut off the changes done during 2001 from this changelog file and put them
580   in a separate file (CHANGES.2001), available from CVS of course.
581
582 - I removed the multi directory. The example sources were moved to the
583   docs/examples directory where they belong.
584
585 - Wrote 7 new man pages for the current functions in the new multi interface.
586   They're all still pretty basic, but we can use them as a start and add more
587   contents to them when we figure out what to write. The large amount of man
588   pages for libcurl now present made me decide to put them in a new separate
589   subdirectory in the docs directory. Named libcurl.
590
591 - Giuseppe Corbelli provided a template file for the EPM package manager, it
592   gets generated nicely by the configure script now.
593
594 Version 7.9.5-pre5
595
596 Daniel (1 March 2002)
597 - Moved the memanalyze.pl script into the tests/ dir and added it to the
598   release archives. It was previously only present in the CVS tree.
599
600 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
601   it caused crashes!
602
603 - Nico Baggus added more error codes to the VMS stuff.
604
605 - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
606   option. It is just another FTP quote option that allows the user to specify
607   a list of FTP commands to issue *just before* the transfer command (RETR or
608   STOR etc). It has turned up a few systems that really need this.
609
610   The curl command line tool can also take advantage of this by prefixing the
611   quote commands with a plus (+) in similar style that post transfer quote
612   commands are specified.
613
614   This is not yet documented. There is no test case for this yet.
615
616 Daniel (28 February 2002)
617 - Ralph Mitchell made some serious efforts and put a lot of sweat in setting
618   up scripts and things for me to be able to repeat his problems, and I
619   finally could.  I found a problem with the header byte counter that wasn't
620   increased properly and thus we could return CURLE_GOT_NOTHING when we in
621   fact had received data.
622
623 Daniel (27 February 2002)
624 - I had to revert the non-space parsing cookie fix I posted to the mailing
625   list. Expire dates do have spaces and still need to get parsed properly!
626   Instead we just ignore trailing white space and it seems to work...
627
628 Daniel (26 February 2002)
629 - Made the cookie property 'Max-Age' work, just since we already tried to
630   support it, it is better to do it right. No one uses this anyway.
631
632 - The cookie parser could crash if a really weird (illegal) cookie line was
633   received. I also made it better discard really oddly formatted lines better.
634
635   Made the cookie jar store the second field from the left using the syntax
636   that Netscape and Mozilla probably like. Curl itself ignores it.
637
638   Added test case 31 for these cases.
639
640   Clay Loveless' email regarding some cookie issues started my cleanup.
641
642 - Kevin Roth pointed out that my automake fiddles broke the ability to build
643   outside the source-tree and I posted a patch to the mailing list that brings
644   this ability back.
645
646 Version 7.9.5-pre4
647
648 Daniel (25 February 2002)
649 - Fiddled with the automake files to make all source files in the lib
650   directory not have ../src in the include path, and the src sources shouldn't
651   have ../lib!
652
653 - All 79 test cases ran OK under Linux and Solaris using the new HTTP server
654   in the test suite. The new HTTP server was first donated by Georg Horn and
655   subsequently modified to work with the test suite. It is currently still not
656   portable enough to run on "all over" but this is a start and I can run all
657   curl tests on my machines. This is an important requirement for the upcoming
658   public release.
659
660 - Using -d and -I on the same command line now reports an error, as it implies
661   two different HTTP requests that can't be mixed.
662
663 - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
664   support %{content_type} to get the content type of the recent download.
665
666 - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
667   and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
668   out if we could include winsock.h which turns out not to be a wise choice to
669   do on cygwin since it has the file but can't include it!
670
671 Daniel (22 February 2002)
672 - Added src/config-vms.h to the release archive.
673
674 - Fixed the connection timeout value again, the change from February 18 wasn't
675   complete.
676
677 Version 7.9.5-pre3
678
679 Daniel (21 February 2002)
680 - Kevin Roth and Andrés García both found out that lib/config.h.in was missing
681   in the pre-release archive and thus the configure script failed.
682
683 Version 7.9.5-pre2
684
685 Daniel (20 February 2002)
686 - Andrés García provided a solution to bug report #515228. the total time
687   counter was not set correctly when -I was used during some conditions (all
688   headers were read in one single read).
689
690 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
691   compile nicely on VMS.
692
693 Daniel (19 February 2002)
694 - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
695   getaddrinfo() calls, he could speed up some name resolving calls with an
696   order of magnitudes on his Redhat Linux 7.2.
697
698 - Philip Gladstone found a second INADDR_NONE problem where we used long
699   intead of in_addr_t which caused 64bit problemos. We really shouldn't define
700   that on two different places.
701
702 Daniel (18 February 2002)
703 - Philip Gladstone found a problem in how HTTP requests were sent if the
704   request couldn't be sent all at once.
705
706 - Emil found and corrected a bad connection timeout comparison that made curl
707   use the longest of connect-timeout and timout as a timeout value, instead of
708   the shortest as it was supposed to!
709
710 - Aron Roberts provided updated information about LDAP URL syntax to go into
711   the manual as a replacement for the old references.
712
713 Daniel (17 February 2002)
714 - Philip Gladstone pointed out two missing include files that made curl core
715   dump on 64bit architectures. We need to pay more attention on these details.
716   It is *lethal* to for example forget the malloc() prototype, as 'int' is
717   32bit and malloc() must return a 64bit pointer on these platforms.
718
719 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
720   the same handle using a proxy.
721
722 Daniel (8 February 2002)
723 - Hanno L. Kranzhoff accurately found out that disabling the Expect: header
724   when doing multipart formposts didn't work very well. It disabled other
725   parts of the request header too, resulting in a broken header. When I fixed
726   this, I also noticed that the Content-Type wasn't possible to disable. It is
727   now, even though it probably is really stupid to try to do this (because of
728   the boundary string that is included in the internally generated header,
729   used as form part separator.)
730
731 Daniel (7 February 2002)
732 - I moved the config*.h files from the root directory to the lib/ directory.
733
734 - I've added the new test suite HTTP server to the CVS repository, It seems to
735   work pretty good now, but we must make it get used by the test scripts
736   properly and then we need to make sure that it compiles, builds and runs on
737   most operating systems.
738
739 Version 7.9.5-pre1
740
741 Daniel (6 February 2002)
742 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
743
744 - Mr Larry Fahnoe found a problem with formposts and I managed to track down
745   and patch this bug. This was actually two bugs, as the posted size was also
746   said to be two bytes too large.
747
748 - Brent Beardsley found out and brought a correction for the
749   CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
750   accidentaly broke Giaslas Georgios' patch.
751
752 Daniel (5 February 2002)
753 - Kevin Roth found yet another SSL download problem.
754
755 Version 7.9.4
756
757 - no changes since pre-release
758
759 Version 7.9.4-pre2
760
761 Daniel (3 February 2002)
762 - Eric Melville provided a few spelling corrections in the curl man page.
763
764 Daniel (1 February 2002)
765 - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
766   uses gmtime_r() on all hosts that have it.
767
768 Daniel (31 January 2002)
769 - An anonymous bug report identified a problem in the DNS caching which made it
770   sometimes allocate one byte too little to store the cache entry in. This
771   happened when the port number started with 1!
772
773 - Albert Chin provided a patch that improves the gethostbyname_r() configure
774   check on HP-UX 11.00.
775
776 Version 7.9.4-pre1
777
778 Daniel (30 January 2002)
779 - Georg Horn found another way the SSL reading failed due to the non-blocking
780   state of the sockets! I fixed.
781
782 Daniel (29 January 2002)
783 - Multipart formposts now send the full request properly, including the CRLF.
784   They were previously treated as part of the post data.
785
786 - The upload byte counter bugged.
787
788 - T. Bharath pointed out that we seed SSL on every connect, which is a time-
789   consuming operation that should only be needed to do once. We patched
790   libcurl to now only seed on the first connect when unseeded. The seeded
791   status is global so it'll now only happen once during a program's life time.
792
793   If the random_file or egdsocket is set, the seed will be re-made though.
794
795 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
796   curl_easy_getinfo() read the content-type from the previous request.
797
798 Daniel (28 January 2002)
799 - Kjetil Jacobsen found a way to crash curl and after much debugging, it
800   turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
801   name resolving.
802
803 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
804   reentrant!
805
806 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
807   CURLOPT_POSTFIELDS. You can now!
808
809 Daniel (25 January 2002)
810 - Krishnendu Majumdar pointed out that the header length counter was not reset
811   between multiple requests on the same handle.
812
813 - Pedro Neves rightfully questioned why curl always append \r\n to the data
814   that is sent in HTTP POST requests. Unfortunately, this broke the test suite
815   as the test HTTP server is lame enough not to deal with this... :-O
816
817 - Following Location: headers when the connection didn't close didn't work as
818   libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
819   the restructured internals. 'Frank' posted a bug report about this.
820
821 Daniel (24 January 2002)
822 - Kevin Roth very quickly spotted that we wrongly installed the example
823   programs that were built in the multi directory, when 'make install' was
824   used. :-/
825
826 Version 7.9.3
827
828 Daniel (23 January 2002)
829 - Andrés García found a persistancy problem when doing HTTP HEAD, that made
830   curl "hang" until the connection was closed by the server. This problem has
831   been introduced in 7.9.3 due to internal rewrites, this was not present in
832   7.9.2.
833
834 Version 7.9.3-pre4
835
836 Daniel (19 January 2002)
837 - Antonio filed bug report #505514 and provided a fix! When doing multipart
838   formposts, libcurl would include an error text in the actual post if a
839   specified file wasn't found. This is not libcurl's job. Instead we add an
840   empty part.
841
842 Daniel (18 January 2002)
843 - Played around with stricter compiler warnings for gcc (when ./configure
844   --enable-debug is used) and changed some minor things to stop the warnings.
845
846 - Commented out the 'long long' and 'long double' checks in configure.in, as
847   we don't currently use them anyway and the code in lib/mprintf.c that use
848   them causes warnings.
849
850 - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
851   to correct them. Two compiler warnings were removed as well.
852
853 - Andrés García fixed two minor mingw32 building problems.
854
855 Version 7.9.3-pre3
856
857 Daniel (17 January 2002)
858 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
859   friends.
860
861 - Richard Archer brought back the ability to compile and build with OpenSSL
862   versions before 0.9.5.
863   [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
864
865 - The DNS cache code didn't take the port number into account, which made it
866   work rather bad on IPv6-enabled hosts (especially when doing passive
867   FTP). Sterling fixed it.
868
869 Daniel (16 January 2002)
870 - Georg Horn could make a transfer time-out without error text. I found it and
871   corrected it.
872
873 - SSL writes didn't work, they return an uninitialized value that caused
874   havoc all over. Georg Horn experienced this.
875
876 - Kevin Roth patched the curl_version() function to use the proper OpenSSL
877   function for version information. This way, curl will report the version of
878   the SSL library actually running right now, not the one that had its headers
879   installed when libcurl was built. Mainly intersting when running with shared
880   OpenSSL libraries.  
881
882 Version 7.9.3-pre2
883
884 Daniel (16 January 2002)
885 - Mofied the main transfer loop and related stuff to deal with non-blocking
886   sockets in the upload section. While doing this, I've now separated the
887   connection oriented buffers to have one for downloads and one for uploads
888   (as two can happen simultaneously). I also shrunk the buffers to 20K
889   each. As we have a scratch buffer twice the size of the upload buffer, we
890   arrived at 80K for buffers compared with the previous 150K.
891
892 - Added the --cc option to curl-config command as it enables so very cool
893   one-liners. Have a go a this one, building the simple.c example:
894
895         $ `curl-config --cc --cflags --libs` -o example simple.c
896
897 Daniel (14 January 2002)
898 - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
899   only need to address all writes (send) too and then I'm ready for another
900   pre-release...
901
902 - Stoned Elipot patched the in_addr_t configure test to make it work better on
903   more platforms.
904
905 Daniel (9 January 2002)
906 - Cris Bailiff found out that filling up curl's SSL session cache caused a
907   crash!
908
909 - Posted the curl questionnaire on the web site. If you haven't posted your
910   opinions there yet, go there and do it now while it is still there:
911
912         http://curl.haxx.se/q/
913
914 - Georg Horn quickly found out that the SSL reading no longer worked as
915   supposed since the switch to non-blocking sockets. I've made a quick patch
916   (for reading only) but we should improve it even further.
917
918 Version 7.9.3-pre1
919
920 Daniel (7 January 2002)
921 - I made the 'bool' typedef use an "unsigned char". It makes it the same on
922   all platforms, no matter what the platform thinks the default format for
923   char is. This was noticed since we made a silly comparison involving such a
924   bool variable, and only one compiler/platform combination (on Debian Linux)
925   complained about it (that happened to have its char unsigned by default).
926
927 - Bug report #495290 identified a cookie parsing problem that was corrected.
928   When a Set-Cookie: line is received without a trailing semicolon, libcurl
929   didn't read the last "name=value" pair of the line, leading to confusions...
930
931 - Sterling committed his updated DNS cache code.
932
933 - I worked with Georg Horn and comments from Götz Babin-Ebell and switched
934   curl's socket operations completely over to non-blocking for the entire
935   operation (previously we used non-blocking only for the connection phase).
936   We had to do this to make the SSL connection phase timeout properly without
937   the use of signals. A little extra code to deal with this was added.
938
939 - T. Bharath pointed out a slightly obscure cookie engine flaw.
940
941 - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
942   204-replies never provides a response-body. This resulted in bad persistant
943   behavior when 204 was received.
944
945 Daniel (5 January 2002)
946 - SM updated the VC++ library Makefiles for the new source files.
947
948 Daniel (4 January 2002)
949 - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
950   two places in the source code). One happened with VERBOSE set on connects,
951   and the other when VERBOSE was on and krb4 over nat was used... I honestly
952   don't think anyone has suffered from these mistakes.
953
954 - I replaced a lot of silly occurances of printf() to instead use the more
955   appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
956   affected.
957
958 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
959   sparc on solaris 8).
960
961 - After discussions on the libcurl list with Raoul Cridlig, I just made FTP
962   response lines get passed to the header callback if such a one is
963   registered. It'll make it possible for any application to get all the
964   responses an FTP server sends to libcurl.
965
966 Daniel (3 January 2002)
967 - Sterling Hughes brought a few buckets of code. Now, libcurl will
968   automatically cache DNS lookups and re-use the previous results first if any
969   such is available. It greatly improves speed when doing many repeated
970   operations to the same host.
971
972 - As the test case uses --include and then --head, I had to modify src/main.c
973   to deal with this situation slightly better than previously. When done, we
974   have 100% good tests again in the main branch.
975
976 Daniel (2 January 2002)
977 - Made test case 25 run again in the multi-dev branch. But it seems that the
978   changes done on dec-20 made test case 104 cease to work (in both branches).
979
980 - Philip Gladstone pointed out a few portability problems in the source code
981   that didn't compile on 64-bit sparcs using Sun's native