two ipv6 fixes
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _     
2                               ___| | | |  _ \| |    
3                              / __| | | | |_) | |    
4                             | (__| |_| |  _ <| |___ 
5                              \___|\___/|_| \_\_____|
6
7                                History of Changes
8
9 Daniel (23 September 2001)
10 - Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
11   when FTP RETR failed.
12
13 - Made the FTP upload tests run fine on machines with IPv6 enabled.
14
15 Version 7.9-pre8
16
17 Daniel (19 September 2001)
18 - Vojtech Minarik set up a special-purpose test server and provided me with
19   test certificates in order for me to repeat the bug reports #440068 and
20   #440373. It turned out we didn't check all the error codes properly. We do
21   now, and connecting with a unacceptable certificate will make libcurl fail
22   to connect with an error code returned.
23
24 - Ramana Mokkapati found a case when the Location: following code did wrong.
25   I wrote a test case for this (45).
26
27 Version 7.9-pre7
28
29 Daniel (17 September 2001)
30 - Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
31   winsock 2.0.
32
33 Version 7.9-pre6
34
35 - libtool 1.4.2 is now in use!
36
37 Version 7.9-pre5
38
39 Daniel (14 September 2001)
40 - Added another 14 ftp tests.
41
42 Daniel (13 September 2001)
43 - Added curl_easy_duphandle() to the easy.h header file. It has now been
44   tested and proved to work in a real-world tests by T Bharath. We still need
45   to write up some docs for this function.
46
47 - Added four more ftp tests to the test suite.
48
49 Daniel (12 September 2001)
50 - CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
51   --ciphers. Use them to specify a list of ciphers to use in the SSL
52   connection.
53
54 - T. Bharath found a memory leak in libcurl's windows version. It turned out
55   to be the new duphandle() that didn't quite work yet.
56
57 Version 7.9-pre4
58
59 Daniel (11 September 2001)
60 - Added verbose output for SSL connections that output the server
61   certificate's start and expire dates. As suggested by Paul Harrington.
62
63 - Heikki Korpela found problems in the perl ftp server used for the test
64   suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
65   made, but nothing really certain.
66
67 - T. Bharath has experienced problems with libcurl's stack usage on windows
68   and works on reducing it.
69
70 Daniel (10 September 2001)
71 - Cris Bailiff fixed the perl interface. It stopped working since the changed
72   behavior with WRITEHEADER and NULL pointers.
73
74 - The "output cookies" function could dump core if no cookies were enabled.
75
76 Daniel (7 September 2001)
77 - SM pointed out that the SSL code didn't compile any longer if SSL was
78   disabled... Also, we needed to correct the #include for the utime stuff on
79   windows.
80
81 Daniel (6 September 2001)
82 - T. Bharath pointed out a flaw in the SSL session cache code that made it
83   sometimes read from a NULL pointer.
84
85 Version 7.9-pre3
86
87 Daniel (3 September 2001)
88 - Added the -R/--remote-time option, that uses the remote file's datestamp to
89   set the local file's datestamp. Thus, when you get a remote file your local
90   file will get the same time and date. Note that this only works when you use
91   -o or -O.
92
93 - Installed libtool 1.4.1, libtoolized and everything.
94
95 Daniel (1 September 2001)
96 - Heikki Korpela pointed out that I did not ship the proper libtool stuff in 
97   the pre-releases, even though that was my intention. libtoolize has now
98   been re-run.
99
100 - Heikki also patched away the bad use of 'make -C' in the test suite
101   makefile. make -C is not very portable and is now banned from here.
102
103 Version 7.9-pre2
104
105 Daniel (31 August 2001)
106 - I just made a huge internal struct rehaul, and all the big internally used
107   structs have been renamed, redesigned and stuff have been moved around a bit
108   to make the source easier to follow, more logically grouped and to hopefully
109   decrease future bugs. I also hope that this will make new functions to get
110   easier to add, and make it less likely that we have bugs left like the URL-
111   free bug from August 23.
112
113 Version 7.9-pre1
114
115 Daniel (29 August 2001)
116 - The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
117   that to specify the file name in which you want to have all cookies curl
118   knows of, dumped to. It'll be written using the netscape cookie format.
119
120   This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
121   which in turn dumps this information when curl_easy_cleanup() is invoked.
122   There might be reasons to re-consider my choice of putting it there. Perhaps
123   it is better placed to get done just before *_perform() is done. It is all
124   of course depending on how you guys want to use this feature...
125
126 - Added ftpupload.c in the source examples section, based on source code posted
127   by Erick Nuwendam.
128
129 Daniel (28 August 2001)
130 - Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
131   on OpenBSD and hopefully on FreeBSD as well!
132
133 - Georg Huettenegger modified the curl_formadd() functionality slightly, and
134   added support for error code 417 when doing form post and using the Expect:
135   header. Great work!
136
137 - Made some tests with cached SSL session IDs, and they seem to work. There
138   should be a significant speed improvement in the SSL connection phase, but
139   in my tiny tests it just isn't possible to notice any difference. Like other
140   caching in libcurl, you must reuse the same handle for the caching to take
141   effect. SSL session ID caching is done on a per host-name and destination
142   port number basis.
143
144   Set verbose, and you'll get informational tests when libcurl detects and
145   uses a previous SSL session ID.
146
147 - Upgraded to automake 1.5 on my development/release machine.
148
149 Daniel (27 August 2001)
150 - Slowly started writing SSL session ID caching code
151
152 Daniel (24 August 2001)
153 - T. Bharath removed compiler warnings on windows and updated the MS project
154   files.
155
156 - Kevin Roth reported two kinds of command line constructs with the new -G that
157   curl didn't really deal with the way one would like.
158
159 - Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
160   own portable version named strequal() that should be used!
161
162 - Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
163   debug object modules causing confusions.
164
165 Daniel (23 August 2001)
166 - T. Bharath accurately found a libcurl bug that would happen when doing a
167   second invoke of curl_easy_perform() with a new URL when the previous invoke
168   followed a Location: header.
169
170 - Started the improvement work on the cookie engine:
171   - Now keeps cookies in the same order as the cookie file
172   - A write to the possibly static string was removed
173   - Added a function that can output all cookies
174   - Now supports reading multiple cookie files
175
176 - Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.
177
178 - Split up the monster function in lib/ftp.c to use more smallish functions to
179   increase readability and maintainability.
180
181 Daniel (21 August 2001)
182 - Georg Huettenegger's big patch was applied. Now we have:
183   o "Expect: 100-continue" support. We will from now on send that header in
184     all rfc1867-posts, as that makes us abort much faster when the server
185     rejects our POST. Posting without the Expect: header is still possible in
186     the standard replace-internal-header style.
187   o curl_formadd() is a new formpost building function that is introduced to
188     replace the now deprecated curl_formparse() function. The latter function
189     will still hang around for a while, but the curl_formadd() is the new way
190     and correct way to build form posts.
191   o Documentation has been updated to reflect these changes
192
193   These changes are reason enough to name the next curl release 7.9...
194
195 - We now convert man pages to HTML pages and include them in the release
196   archive. For the pleasure of everyone without nroff within reach.
197
198 - Andrés García's suggested flushing of the progress meter output stream was
199   added. It should make the progress meter look better on Windows.
200
201 - Troy Engel pointed out a mistake in the configure script that made it fail
202   on many Red Hat boxes!
203
204 Daniel (20 August 2001)
205 - We need an updated libtool to make a better build environment for OpenBSD
206   as well as FreeBSD
207
208 Version 7.8.1
209
210 Daniel (20 August 2001)
211 - Brad pointed out that we ship two extra libtool files in the tarballs that
212   we really don't need to! Removing them makes the gz-archive about 60K
213   smaller!
214
215 - Albert Chin brought fixes for the configure script to detect socklen_t
216   properly as well as moving lots of our custom autoconf macros to
217   acinclude.m4.
218
219 Daniel (19 August 2001)
220 - Moonesamy improved his -G feature for host names only URLs...
221
222 Daniel (17 August 2001)
223 - Finally cleaned up the kerberos code to use Curl_ prefixes on all global
224   symbols and to not use global variables.
225
226 Version 7.8.1-pre6
227
228 Daniel (16 August 2001)
229 - S. Moonesamy added the -G option to curl, that converts the data specified
230   with -d to a GET request. Default action when using -d is POST. When -G is
231   used, the -d specified data will be appended to the URL with a '?'
232   separator. As suggested previously by Kevin Roth.
233
234 - curl-config --libs should now display all linker options required to link
235   with libcurl. It includes the path and options for libcurl itself.
236   curl-config --cflags displays the compiler option(s) needed to compile
237   source files that use libcurl functions. Basically, that sets the include
238   path correct.
239
240 Daniel (15 August 2001)
241 - Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
242   were parsed and used. (RFC2732-format)
243
244 - Bug #12733 over on php.net identified a problem in libcurl that made it core
245   dump if you used CURLOPT_POST without setting any data to post with
246   CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
247   now equals setting it to no data at all.
248
249 - Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
250   properly when used for multiple URLs on a single command line. Indeed, the
251   variable was not reset between the requests. This is now fixed.
252
253 - David James fixed the Borland makefile so that libcurl still compiles and
254   builds with that compiler.
255
256 Daniel (14 August 2001)
257 - Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.
258
259 - An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
260   windows users to curl_global_init(), that makes libcurl init the winsock
261   stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
262   with this is a comfortable shortcut to fame.
263
264 Version 7.8.1-pre5
265
266 Daniel (14 August 2001)
267 - Nico Baggus provided more feedback from his VMS porting efforts and a few
268   minor changes were necessary.
269
270 - I modified configure.in so that --enable-debug sets more picky gcc options.
271   I then removed almost all the new warnings that appeared, and by doing so I
272   corrected the size_t-treated-as-signed problem that has been discussed on
273   the mailing list previously. I also removed a bunch of the just recently
274   added #ifdef VMS lines.
275
276 - I removed the use of a global variable in the SSL code. It was once
277   necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
278   (hopefully) still work if libcurl is built against an ancient version of
279   OpenSSL.
280
281 Daniel (13 August 2001)
282 - Peter Todd posted a patch that now allows non-file rc1867-style form posts
283   to be larger than 4K.
284
285 Daniel (10 August 2001)
286 - S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile
287
288 Daniel (9 August 2001)
289 - The redirected error stream was closed before the curl_easy_cleanup() call
290   was made, and when VERBOSE was enabled, the cleanup function tried to use
291   the stream. It could lead to a segmentation fault. Also, the stream was
292   closed even if we looped to get more files.  Corrects Dustin Boswell's bug
293   report #441610
294
295 - Now generates the release configure script with autoconf 2.52
296
297 Version 7.8.1-pre4
298
299 Daniel (8 August 2001)
300 - curl -E uses a colon to separate a file name from a passphrase. This turned
301   out really bad for the windows people who wants to include a drive letter in
302   the file name like "c:\cert.pem". There's now a win32 work-around
303   implemented that tries work around that, when the colon seems to be used for
304   this kind of construct.
305
306 - Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
307   verify the server's CN field when talking https://. If --cacert is not used,
308   any failures in matching is only displayed as information (-v).
309
310 Daniel (7 August 2001)
311 - Wrote up nine more test cases, more or less converted from the former test
312   suite.
313
314 Daniel (6 August 2001)
315 - Heikki Korpela posted a patch that makes 'curl-config --libs' include the
316   directory in which libcurl itself is installed in. While this wasn't my
317   initial intention with this option, it makes sense and makes linking with
318   libcurl easier.
319
320 - Stefan Ulrich pointed out to us that other tools and libraries treat file://
321   URLs with only one slash after the host name slighly different than libcurl
322   does. Since all the others seem to agree, we better follow them.
323
324 - Nico Baggus provided us with a huge set of fixes to make curl compile and
325   build under OpenVMS.
326
327 Version 7.8.1-pre3
328
329 Daniel (6 August 2001)
330 - Jonathan Hseu noticed that you couldn't get a header callback unless you
331   set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
332   data. This is now fixed.
333
334 Daniel (5 August 2001)
335 - Sergio Ballestrero provided a patch for reading responses from NCSA httpd
336   1.5.x servers, as they return really screwed up response headers when asked
337   for with HTTP 1.1.
338
339 - curl_escape() no longer treats already encoded characters in the input
340   string especially.
341
342 Daniel (3 August 2001)
343 - I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
344   avoid the BSD annoucement clause of the license in the former file.
345
346 - Andrew Francis provided a new version of base64.c to work around the license
347   boiler plate that came with the previous one. I patched it, but the glory
348   should go to Andrew for his heads up.
349
350 - Tomasz Lacki noticed that when you do repeated transfers with libcurl you
351   couldn't always reliably change HTTP request. This has now been fixed and a
352   new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
353   requestr (back) to GET.
354
355 - Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
356   release archives. It should be now.
357
358 Daniel (2 August 2001)
359 - Frank Keeney pointed out a manual mistake for certificate convertions.
360
361 - Tomasz Lacki pointed out a problem in the transfer loop that could make the
362   select() loop use far too much CPU.
363
364 - Pawel A. Gajda pointed out an output mistake done when using libcurl's
365   progress callback.
366
367 Daniel (29 June 2001)
368 - Naveen Noel noticed that the Borland library makefile wasn't updated.
369
370 - Nic Roets brought a fix for the certificate verification when using SSL.
371
372 Daniel (27 June 2001)
373 - Made the FTP tests run OK even on machines running curl IPv6-enabled.
374
375 - Troy Engel corrected some RPM package details.
376
377 Version 7.8.1-pre2
378
379 Daniel (25 June 2001)
380 - Björn Stenberg correctly identified a problem that occurred when downloading
381   several files with curl, and using resume. The first file's resume index was
382   then used for all files, resulting in weird results...
383
384 - Anton Kalmykov provided a fix that makes curl work with form field names
385   with spaces like when -F is used.
386
387 Version 7.8.1-pre1
388
389 Daniel (20 June 2001)
390 - Mike Bytnar provided a fine report that proved that the --with-ssl option
391   for configure needed tweaking. It no longer searches the default directories
392   for OpenSSL libs or directories when a specified path is given.
393
394 Daniel (19 June 2001)
395 - When an FTP transfer is cut off during transfer, curl could present a truly
396   garbaged error message and in worst case dump core. Thanks to detailed
397   reports from Shawn Poulson we nailed this.
398
399 Daniel (12 June 2001)
400 - Salvador Dávila provided a fix for FTP range downloads.
401
402 - Added a few more test cases from the former test suite to the new file
403   format. We're now at a total of 26 tests.
404
405 Daniel (11 June 2001)
406 - libcurl's version-info was wrong, as noted by both Domenico Andreoli and
407   David Odin.
408
409 Daniel (7 June 2001)
410 - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def
411
412 - I made SSL certificate failure messages to be more detailed.
413
414 Version 7.8
415
416 Daniel (7 June 2001)
417 - SDavila provided a resumed download fix.
418
419 Version 7.8-pre4
420
421 Daniel (1 June 2001)
422 - Sterling provided some new PHP examples.
423
424 - Changed the CVS hierarchy and the older checkout instruction does no longer
425   work. We moved the entire source code into a CVS module named 'curl'.
426
427 Daniel (31 May 2001)
428 - CURLOPT_MUTE does not exist anymore. It is still present in the include file
429   to not cause compiler errors for applications using it, but it isn't used
430   anywhere in the library.
431
432 Version 7.8-pre3
433
434 Daniel (31 May 2001)
435 - Once and for all fixed the _REENTRANT mess for Solaris compiles to present
436   less warnings.
437
438 - Sterling Hughes tirelessly points out and corrects my mistakes...! So,
439   curl_global_init() now lets the argument flags *SET* what parts to
440   init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all
441   known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely
442   necessary. Man page updated accordingly.
443
444 - Fixed the strtok.h include file as it wouldn't compile on all platforms!
445
446 Daniel (30 May 2001)
447 - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were
448   set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE
449   option is subject for complete removal...
450
451 Version 7.8-pre2
452
453 Daniel (30 May 2001)
454 - Cris Bailiff wrote a makefile for building Solaris packages.
455
456 - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and
457   we discussed and added a few CURL_GLOBAL_* flags in include/curl.h
458
459 - Kjetil Jacobsen privately announced his python interface to libcurl,
460   available at http://pycurl.sourceforge.net/
461
462 Daniel (29 May 2001)
463 - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread-
464   safe function. Now configure checks for a thread-safe version, and
465   lib/strtok.c offers one for the systems that don't come with one included!
466
467 - Mettgut Jamalla correctly pointed out that the -# progress bar was written
468   to stderr even though --stderr redirection was used. This is now corrected.
469
470 - I moved out the list of contributors from the curl.1 man page and made a
471   separate docs/THANKS file. It makes the list easier to find, and made it
472   easier for me to make a separate web page with that same information.
473
474   I really do want all you guys mentioned in there to feel you get the credit
475   you deserve.
476
477 - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake
478
479 Version 7.8-pre1
480
481 Daniel (28 May 2001)
482 - curl-config now supports '--vernum' that outputs a plain hexadecimal version
483   of the libcurl version number (using 8 bits for each 3 numbers). Version
484   7.7.4 appears as 070704
485
486 - Wrote man pages for curl_global_init and curl_global_cleanup...
487
488 - T. Bharath brought news about the usage of the OpenSSL interface that was
489   not previously taken into consideration and thus caused libcurl to leak
490   memory.  The only somewhat sane approach to fix this dilemma, is adding two
491   two new functions curl_global_init() and curl_global_cleanup() that should
492   be called *ONCE* by the application using libcurl. The init should be done
493   only at startup, no matter how many threads the application is gonna use,
494   and the cleanup should be called when the application has finished using
495   libcurl completely.
496
497   *** UPGRADE NOTICE ***
498
499   If you write applications using libcurl, you really want to use the two
500   functions mentioned above !!!
501
502   I can't say I think this is a very beautiful solution, but as OpenSSL
503   insists on making lots of stuff on a "global" scope, we're forced to walk
504   the path they point us to.
505
506 - Moving more test cases into the new file format.
507
508 Version 7.7.4-pre3
509
510 Daniel (23 May 2001)
511 - Introduced a new file format for storing test cases, and thus I had to
512   modify all the perl test scripts and more (I added a new one). I have not
513   "ported" all the old test cases to the new format yet, but it'll come.
514
515   The main advantage of this new format is that all test data for each test
516   case is stored in a single file. It gives a better overview for each test
517   case and a lot less files.
518
519 - Andrés García brought a fix for the netscape/mozilla cookie file parsing
520   function, as it turns out it doesn't always store the path!
521
522 Daniel (22 May 2001)
523 - As was reported anonymously, when FAILONERROR was used, the httpcode was
524   not stored properly and thus wasn't possibly to read after a transfer with
525   the curl_easy_getinfo() function. This is now corrected.
526
527 - Installed and made use of the following tool versions:
528     autoconf 2.50
529     libtool 1.4
530     automake 1.4-p1
531
532   I wouldn't recommend any developer to try to generate things with older
533   versions than these. Building from CVS will probably more or less require
534   at least these versions.
535
536   As a result of this, the configure script grew to more than double its
537   previous size!
538
539   Arkadiusz Miskiewicz helped me by pointing out I had to remove my
540   acinclude.m4 file before I could get it working!
541
542 Daniel (21 May 2001)
543 - I made ftps:// work. Added test case 400 to the release archive, as the
544   first ftps:// test case. Requires stunnel.
545
546 - Also made the test cases that runs ssl tests not run if libcurl isn't built
547   with ssl support.
548
549 Daniel (19 May 2001)
550 - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they
551   are actually needed. Albert Chin's and Domenico Andreoli's suggestions
552   helped out.
553
554 Version 7.7.4-pre2
555
556 Daniel (18 May 2001)
557 - Nicer configure-check for the OpenSSL headers, which then sets the proper
558   variable to have curl-config be good. (Albert Chin provided the fix)
559
560 - For systems that don't have theiw own 'strlcat()' libcurl provides its own.
561   It was now renamed to prevent collides with other libs. (After discussions
562   with Sterling Hughes and the implications this had on PHP builds.)
563
564 Daniel (17 May 2001)
565 - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that
566   turned out to be a problem with the debian-built 7.7.3-package that
567   contained files from the 7.7.2 release!
568
569 - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to
570   make programs that use it, not fail when compiling against this version of
571   libcurl.
572
573 Daniel (14 May 2001)
574 - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent
575   connections.
576
577 Version 7.7.4-pre1
578
579 Daniel (14 May 2001)
580 - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl.
581
582 - Added the first HTTPS test to the test suite in the release archive.
583
584 Daniel (12 May 2001)
585 - Jukka Pihl suggested that if (lib)curl is told to verify the peer's
586   certificate and the peer can't be verified, it should fail and return a
587   proper error code. I added a brand new error code named
588   CURLE_SSL_PEER_CERTIFICATE for this purpose.
589
590 Daniel (11 May 2001)
591 - As was discussed with Frederic Lepied a while ago, I now made libcurl not
592   return error even though no data was transfered on upload/download resume
593   when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed
594   from the header file to make any implemenator that uses that to be aware of
595   the fact that it can't be returned anymore!
596
597 - Improved general header-parsing to better allow white spaces and more.
598
599 - Rodney Simmons proved the fix I did yesterday was bad and I had to post
600   another one.
601
602 - Ingo Wilken patched away two redirect problems more!
603   
604 Daniel (10 May 2001)
605 - Cris Bailiff correctly noted that the space-after-header problem with
606   Location: is present on several other places in the libcurl sources.
607
608 - Ingo Wilken patched away a problem libcurl had when following Location:
609   headers with an extra space after the colon.
610
611 - Rodney Simmons found out that multiple FTP transfers did not treat relative
612   directories correctly.
613
614 Daniel (9 May 2001)
615 - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line),
616   makes curl use the non-standard ftp command "SIZE". If it failed, libcurl
617   returned error. Starting now, it just don't output the file size instead.
618   Anonymous bug report.
619
620 - stunnel.pm was accidentally left out from the release archive, it is now
621   added (stunnel is needed to run the https-tests in the test suite)
622   
623 Daniel (7 May 2001)
624 - Corrected two minor compiler warnings due to the FILE * to void * conversion
625   that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
626   filed a bug report on this.
627
628 Version 7.7.3
629
630 Daniel (4 May 2001)
631 - All callback functions now take 'void *' instead of 'FILE *'. This is made
632   this way to make it more obvious to people that anything can be passed to
633   them (by using the apropriate option). After discussions with Sterling
634   Hughes.
635
636 Daniel (3 May 2001)
637 - Cris Bailiff fixed a chunked transfer encoding problem with persistent
638   connection that made libcurl fail if the persistent connection used mixed
639   chunked and non-chunked transfers.
640
641 - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be
642   treated as content-length 0 replies but would cause a "hang" until the
643   server timed-out and closed the connection.
644
645 - Brad Burdick found a minor problem in the docs/examples/Makefile.am
646
647 Daniel (27 April 2001)
648 - Updated the INTERALS document again. It was lagging a bit. I think I made it
649   more easy to follow now as well.
650
651 - Brad Burdick found a problem with persistent connections when curl received
652   a "Content-Length: 0" header.
653
654 - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl
655   compiled/built on win32. It seems to work for unixes though!
656
657 - Dave Hamilton reported weird problems with CURL/PHP that I really can't
658   explain at the moment. I'm hoping on some help from the PHP crew.
659
660 Daniel (26 April 2001)
661 - I rewrote the FTP command response function. I had to do it to make ftps
662   work, as the OpenSSL read()-function didn't work the same way the normal
663   unix read() does, but it was also a huge performance boost. Previously the
664   function read one byte at a time, now it reads very large chunks, and it
665   makes a notable speed difference.
666
667 Daniel (25 April 2001)
668 - Connection re-use when not using a proxy didn't work properly for
669   non-default port numbers.
670
671 Daniel (24 April 2001)
672 - I've noticed that FTPS doesn't work. We attempt to use ssl even for the
673   data transfer, which causes the transfer to 'hang'... We need to fix this.
674
675 - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on
676   the alredy written perl servers easily.
677
678 Daniel (23 April 2001)
679 - The OpenSSL version string recently modified didn't zero terminate one
680   of the generated strings properly, which could lead to a crash or simply
681   weird version string output!
682
683 Version 7.7.2
684
685 Daniel (22 April 2001)
686 - Rosimildo da Silva updated the Makefiles for Borland/Windows.
687
688 - Eric Rautman pointed out a problem with persistent connections that would
689   lead to broken Host: headers in the second HTTP request.
690
691 Daniel (20 April 2001)
692 - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote
693   a 'libcurl overview' man page.
694
695 - Spell-fixed some documents.
696
697 - S. Moonesamy corrected mistakes in the man page.
698
699 - Cris Bailiff fixed the curl_slists options in the perl interface, present
700   separately in the Curl::easy 1.1.4 package.
701
702 Daniel (19 April 2001)
703 - Linus Nielsen Feltzing removed the decimals from the size variables in the
704   --write-out output. We hardly ever get fraction of bytes! :-)
705
706 Version 7.7.2-pre1
707
708 Daniel (19 April 2001)
709
710 - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro.
711
712 Daniel (18 April 2001)
713 - Input from Michael Mealling made me add --feature to curl-config. It
714   displays a list of features that have been built-in in the current
715   libcurl. The currently available features that can be listed are: SSL, KRB4
716   and IPv6.
717
718 - I committed Cris and Georg's perl interface work. They've got callbacks
719   working and options that receives those slist pointers.
720
721 - Puneet Pawaia detected a problem with resumed downloads that use persistent
722   connections and I made a rather large writeup to correct this. It is
723   important that all session-data is stored in the connectdata struct and not
724   in the main struct as this previously did.
725
726 Daniel (17 April 2001)
727 - Frederic Lepied fixed a ftp resumed download problem and introduced a new
728   error code that lets applications be able to detect when a resumed download
729   actually didn't download anything since the whole file is already present.
730   Should this return OK instead?
731
732 - I added 'curl-config.in' to the root dir and configure script. Now, a
733   curl-config script is made when curl is built. The script can be used to
734   figure out compile time options used when libcurl was built, which in turn
735   should be options YOU should use to build applications that use libcurl.
736
737   This *-config style is not a new idea, but something that has been used
738   successfully in other (library based) projects.
739
740 - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone
741   for the If-Modified-Since style headers.
742
743 - Georg Schwarz pointed out an extra needed #include file needed in src/main.c
744   for curl to build on Ultrix.
745
746 Daniel (11 April 2001)
747 - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use
748   of the environment variable HTTP_PROXY in uppercase may become a security
749   hazard when people use libcurl in a server/cgi situation where the server
750   sets the HTTP_*-variables according to incoming headers in the HTTP
751   request. Thus, a "Proxy:"-header would set that environment variable!
752
753   Then, invoking curl_easy_perform() without having an URL set caused a crash.
754
755 - S. Moonesamy brought a patch that make curl use non-blocking connects on
756   windows when connection timeout is set, as it allows windows users to set
757   that timeout!
758
759 - Hirotaka Matsuyuki wrote a Ruby interface to libcurl!
760
761 - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface.
762
763 - I've written a first shot at a Java interface to libcurl. Many thanks to
764   Daniel Marell for tirelessly answering to all my basic Java questions. It
765   works, but it is still very basic.
766
767 Daniel (10 April 2001)
768 - The progress display could get silly when doing multiple file transfers, as
769   it wasn't properly reset between transfers!
770
771 - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made
772   me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback
773   function for writing headers. Previously you could only set a different FILE
774   * when headers are written from within libcurl.
775
776 Daniel (7 April 2001)
777 - Andrés García fixed a problem in curl_escape() and pointed out a flaw in
778   the curl_easy_setopt man page.
779
780 Daniel (6 April 2001)
781 - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure
782   change their version define format often...
783
784 - curl_formfree() now accepts a NULL pointer without crashing!
785
786 Version 7.7.1
787
788 Daniel (3 April 2001)
789 - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to
790   read bad memory during situations when an (ftp) connection attempt failed.
791   Also, the lib/Makefile.vc6 was corrected.
792
793 - More investigations in the Location: following code made me realize that
794   it was not clean enough to work transparantly with persistent and non-
795   persistent connections. I think I've fixed it now.
796
797 Daniel (29 March 2001)
798 - Georg Horn mailed me some corrections for the Curl::easy perl interface.
799
800 - Experimental ftps:// support added. It is basically FTP over SSL for the
801   control connection. It still makes all data transfers going over unencrypted
802   connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used
803   that to verify the functionality.
804
805 Daniel (27 March 2001)
806 - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried
807   to get a file from a site and it fails, the SIGALRM would still be sent
808   after the timeout-time, quite inexpectedly!
809
810 - I added an ftp transfer example to docs/examples/ and I also wrote a tiny
811   example makefile that can be used as a start when building one of the
812   examples.
813
814 Version 7.7.1-beta1
815
816 Daniel (26 March 2001)
817 - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0
818   connections (when the server replied a Connection: Keep-Alive) and this
819   problem was not properly dealt with in 7.7 either. A patch was posted to the
820   curl-and-php mailing list.
821
822 Daniel (24 March 2001)
823 - Colin Watson reported about a problem and brought a patch that corrected it,
824   which was about the man page and lines starting with a single quote (') in a
825   way that gnroff doesn't like.
826
827 Daniel (23 March 2001)
828 - Peter Bray reported correctly that the root makefile used make instead of
829   $(MAKE) for the test target.
830
831 - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not
832   curl_setopt() which was removed in 7.7!
833
834 - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ).
835
836 - When following a Location:, libcurl would sometimes write to the URL string
837   in a way it shouldn't. As the pointer is passed-in to libcurl from an
838   application, we can't be allowed to write to it. The particular bug report
839   from 'nk' that brought this up was because he had a read-only URL that then
840   caused a libcurl crash!
841
842 - No longer reads HEAD responses longer than to the last header. Previously,
843   curl would read the full reply if the connection was a "close" one.
844
845 - libcurl did re-use connections way too much. Doing "curl
846   http://www.{microsoft,ibm}.com" would make it re-use the connection which
847   made the second request return very odd results.
848
849 Daniel (22 March 2001)
850 - Edin Kadribasic made me aware that curl should not re-send POST requests
851   when following 302-redirects. I made 302 work like 303 which means curl uses
852   GET in the following request(s).
853
854 - libcurl now reset the "followed-location" counter on each invoke of
855   curl_easy_perform() as it otherwise would sum up all redirects on the same
856   connection and thus could reach the maxredirs counter wrongly.
857
858 - Jim Drash suggested curl_escape() should not re-encode what already looks
859   like an encoded sequence and I think that's a fair suggestion.
860
861 Version 7.7
862
863 Daniel (22 March 2001)
864 - The configure script now fails with an error message if gethostbyname_r() is
865   detected but it couldn't figure out how to invoke it (what amount of
866   arguments it is supposed to get). Reports from Andrés García made me aware
867   of this need.
868
869 - Talking with Jim Drash made me finally put the curl_escape and curl_unescape
870   functions in the curl.h include file and write man pages for them. The
871   escape function was modified to use the same interface as the unescape one
872   had.
873
874 - No bug reports at all on the latest betas. Release time coming up.
875
876 Version 7.7-beta5
877
878 Daniel (19 March 2001)
879 - Georg Ottinger reported problems with using -C together with -L in the sense
880   that the -C info got lost when it was redirected. I could not repeat this
881   problem on the 7.7 branch why I leave this for the moment. Test case 39 was
882   added to do exactly this, and it seems to do right.
883
884 - Christian Robottom Reis reported how his 7.7 beta didn't successfully do
885   form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header
886   engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT
887   and POST operations that I need to add support for. Section 8.2.3 in RFC2616
888   has all the details. Seems to work now!
889
890 Daniel (16 March 2001)
891 - After having experienced another machine break-down, we're back.
892
893 - Georg Horn's perl interface Curl::easy is now included in the curl release
894   archive. The perl/ directory is now present. Please help me with docs,
895   examples and updates you think fit.
896
897 - Made a new php/ directory in the release archive and moved the PHP examples
898   into a subdirectory in there. Not much PHP info yet, but I plan to. Please
899   help me here as well!
900
901 - Made libcurl return error if a transfer is aborted in the middle of a
902   "chunk". It actually enables libcurl to discover premature transfer aborts
903   even if the Content-Length: size is unknown.
904
905 Daniel (15 March 2001)
906 - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT
907   option in libcurl. It limits the time curl is allowed to spend in the
908   connection phase. This differs from -m/--max-time that limits the entire
909   file transfer operation. Requested by Larry Fahnoe and others.
910
911   I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the
912   item from the TODO.
913
914 Version 7.7-beta4
915
916 Daniel (14 March 2001)
917 - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely
918   again when ENABLE_IPV6 is set.
919
920   I need to remake things in the test suite. I can't test the FTP parts with
921   curl built for IPv6 as it uses a different set of FTP commands then!
922
923 - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was
924   a report meant for our project. Anyway, it said the .netrc parsing didn't
925   work as supposed, and as I agreed with Lars, I made the netrc parser use
926   getpwuid() to figure out the home directory of the effective user and try
927   that netrc. It still uses the environment variable HOME for those that don't
928   have that function or if the user doesn't return valid pwd info.
929
930 - Edin Kadribaic posted a bug report where he got a crash when a fetch with
931   user+password in the URL followed a Location: to a second URL (absolute,
932   without name+password). This bug has been around for a long while and
933   crashes due to a read at address zero. Fixed now. Wrote test case 38, that
934   tests this.
935
936 - Modified the test suite's httpserver slightly to append all client request
937   data to its log file so that the test script now better can verify a range
938   of requests and not only the last one, as it did previously.
939
940 - Updated the curl man page with --random-file and --egd-file details.
941
942 Version 7.7-beta3
943
944 Daniel (14 March 2001)
945 - Björn Stenberg provided similar fixes as Jörn did and some additional patches
946   for non-SSL compiles.
947
948 - I increased the interface number for libcurl as I've removed the low level
949   functions from the interface. I also took this opportunity to rename the
950   Curl_strequal function to curl_strequal and Curl_strnequal to
951   curl_strnequal, as they're public libcurl functions (even if they're still
952   undocumented).
953
954   This will make older programs not capable of using the new libcurl with
955   just a drop-in replacement.
956
957 - Jörn Hartroth updated stuff for win32 compiles:
958   o config-win32.h was fixed for socklen_t
959   o lib/ssluse.c had a bad #endif placement
960   o lib/file.c was made to compile on win32 again
961   o lib/Makefile.m32 was updated with the new files
962   o lib/libcurl.def matches the current interface state
963
964 Daniel (13 March 2001)
965 - It only took an hour or so before Jörn Hartroth found a problem in the
966   chunked transfer-encoding. Given his fine example-site, I could easily spot
967   the problem and when I re-read the spec (the part I have pasted in the top
968   of the http_chunks.h file), I realized I had made my state-machine slightly
969   wrong and didn't expect/handle the trailing CRLF that comes after the data
970   in each chunk (and those extra two bytes sure feel wasted).
971
972   Had to modify test case 34 to match this as well.
973
974 Version 7.7-beta2
975
976 Daniel (13 March 2001)
977 - Added the policy stuff to the curl_easy_setopt man page for the two supported
978   policies.
979
980 - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies
981   CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now
982   supported, and the "least recently used" is used as default if no policy
983   is chosen.
984
985 Daniel (12 March 2001)
986 - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
987   SSL random engine. The random seeding support was also brought to the curl
988   client with the new options --random-file <file> and --egd-file <file>. I
989   need some people to really test this to know they work as supposed. Remember
990   that libcurl now informs (if verbose is on) if the random seed is considered
991   weak (HTTPS connections).
992
993 - Made the chunked transfer-encoding engine detected bad formatted data length
994   and return error if so (we can't possibly extract sensible data if this is
995   the case). Added a test case that detects this. Number 36. Now there are 60
996   test cases.
997
998 - Added 5 new libcurl options to curl/curl.h that can be used to control the
999   persistent connection support in libcurl. They're also documented (fairly
1000   thoroughly) in the curl_easy_setopt.3 man page. Three of them are now
1001   implemented, although not really tested at this point... Anyway, the new
1002   implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT,
1003   CURLOPT_FORBID_REUSE. The ones still left to write code for are:
1004   CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION.
1005
1006 - Made curl (the actual command line tool) use the new libcurl 7.7 persistent
1007   connection support by re-using the same curl handle for every specified file
1008   transfer and after some more test case tweaking we have 100% test case OK.
1009   I made some test cases return HTTP/1.0 now to make sure that works as well.
1010
1011 - Had to add 'Connection: close' to the headers of a bunch of test cases so
1012   that curl behaves "old-style" since the test http server doesn't do multiple
1013   connections... Now I get 100% test case OK.
1014
1015 - The curl.haxx.se site, the main curl mailing list and my personal email are
1016   all dead today due to power blackout in the area where the main servers are
1017   located. Horrible.
1018
1019 - I've made persistance work over a squid HTTP proxy. I find it disturbing
1020   that it uses headers that aren't present in any HTTP standard though
1021   (Proxy-Connection:) and that makes me feel that I'm now on the edge of what
1022   the standard actually defines. I need to get this code excercised on a lot
1023   of different HTTP proxies before I feel safe.
1024
1025   Now I'm facing the problem with my test suite servers (both FTP and HTTP)
1026   not supporting persistent connections and libcurl is doing them now. I have
1027   to fix the test servers to get all the test cases do OK.
1028
1029 Daniel (8 March 2001)
1030 - Guenole Bescon reported that libcurl did output errors to stderr even if
1031   MUTE and NOPROGRESS was set. It turned out to be a bug and happens if
1032   there's an error and no ERRORBUFFER is set. This is now corrected.
1033
1034 Version 7.7-beta1
1035
1036 Daniel (8 March 2001)
1037 - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've
1038   added two source files and I've run some test downloads that look fine.
1039
1040 - HTTP HEAD works too, even on 1.1 servers.
1041
1042 Daniel (5 March 2001)
1043 - The current 57 test cases now pass OK. It would suggest that libcurl works
1044   using the old-style with one connection per handle. The test suite doesn't
1045   handle multiple connections yet so there are no test cases for this.
1046
1047 - I patched the telnet.c heavily to not use any global variables anymore. It
1048   should make it a lot nicer library-wise.
1049
1050 - The file:// support was modified slightly to use the internal connect-first-
1051   then-do approach.
1052
1053 Daniel (4 March 2001)
1054 - More bugs erased.
1055
1056 Version 7.7-alpha2
1057
1058 Daniel (4 March 2001)
1059 - Now, there's even a basic check that a re-used connection is still alive
1060   before it is assumed so. A few first tests have proven that libcurl will
1061   then re-connect instead of re-use the dead connection!
1062
1063 Daniel (2 March 2001)
1064 - Now they work intermixed as well. Major coolness!
1065
1066 - More fiddling around, my 'tiny' client I have for testing purposes now has
1067   proved to download both FTP and HTTP with persistent connections. They do
1068   not work intermixed yet though.
1069
1070 Daniel (1 March 2001)
1071 - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that
1072   curl_slist_append() should take a const char * as second argument. It does
1073   now.
1074
1075 Daniel (22 February 2001)
1076 - The persistent connections start to look good for HTTP. On a subsequent
1077   request, it seems that libcurl now can pick an already existing connection
1078   if a suitable one exists, or it opens a new one.
1079
1080 - Douglas R. Horner mailed me corrections to the curl_formparse() man page
1081   that I applied.
1082
1083 Daniel (20 February 2001)
1084 - Added the docs/examples/win32sockets.c file for our windows friends.
1085
1086 - Linus Nielsen Feltzing provided brand new TELNET functionality and
1087   improvements:
1088
1089   * Negotiation is now passive. Curl does not negotiate until the peer does.
1090   * Possibility to set negotiation options on the command line, currently only
1091     XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
1092   * Now sends the USER environment variable if the -u switch is used.
1093   * Use -t to set telnet options (Linus even updated the man page, awesome!)
1094
1095 - Haven't done this big changes to curl for a while. Moved around a lot of
1096   struct fields and stuff to make multiple connections get connection specific
1097   data in separate structs so that they can co-exist in a nice way. See the
1098   mailing lists for discussions around how this is gonna be implemented. Docs
1099   and more will follow.
1100
1101   Studied the HTTP RFC to find out better how persistent connections should
1102   work. Seems cool enough.
1103
1104 Daniel (19 February 2001)
1105 - Bob Schader brought me two files that help set up a MS VC++ libcurl project
1106   easier. He also provided me with an up-to-date libcurl.def file.
1107
1108 - I moved a bunch of prototypes from the public <curl/curl.h> file to the
1109   library private urldata.h. This is because of the upcoming changes. The
1110   low level interface is no longer being planned to become reality.
1111
1112 Daniel (15 February 2001)
1113 - CURLOPT_POST is not required anymore. Just setting the POST string with
1114   CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
1115   libcurl already works this way, i.e they require only the parameter to
1116   switch on a feature so I think this works well with the rest. Setting a NULL
1117   string switches off the POST again.
1118
1119 - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
1120   Reese helped me define a way how to incorporate persistent connections into
1121   libcurl in a very smooth way. If done right, no change may have to be made
1122   to older programs and they will just start using persistent connections when
1123   applicable!
1124
1125 Daniel (13 February 2001)
1126 - Changed the word 'timeouted' to 'timed out' in two different error messages.
1127   Suggested by Larry Fahnoe.
1128
1129 Version 7.6.1
1130
1131 Daniel (9 February 2001)
1132 - Frank Reid and Cain Hopwood provided information and research around a HTTPS
1133   PUT/upload problem we seem to have. No solution found yet.
1134
1135 Daniel (8 February 2001)
1136 - An interesting discussion is how to specify an empty password without having
1137   curl ask for it interactively? The current implmentation takes an empty
1138   password as a request for a password prompt. However, I still want to
1139   support a blank user field. Thus, today if you enter "-u :" (without user
1140   and password) curl will prompt for the password. Tricky. How would you
1141   specify you want the prompt otherwise?
1142
1143 - Made the netrc parse result possible to use for other protocols than FTP and
1144   HTTP (such as the upcoming TELNET fixes).
1145
1146 - The previously mentioned "MSVC++ problems" turned out to be a non-issue.
1147
1148 - Added a HTTP file upload code example in the docs/examples/ section on
1149   request.
1150
1151 - Adjusted the FTP response fix slightly.
1152
1153 Version 7.6.1-pre3
1154
1155 Daniel (7 February 2001)
1156 - S. Moonesamy found a flaw in the response reading function for FTP that
1157   could make libcurl not get out of the loop properly when it should, if
1158   libcurl got -1 returned when reading the socket.
1159
1160 - I found a similar mistake in http.c when using a proxy and reading the
1161   results from the proxy connection.
1162
1163 Daniel (6 February 2001)
1164 - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set
1165   for the debug build to work.
1166
1167 - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver
1168   brought up yesterday.
1169
1170 Daniel (5 February 2001)
1171 - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to
1172   a bunch of different areas within libcurl.
1173
1174 - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with
1175   the 'static' keyword on a number of libcurl functions. I might need to add a
1176   patch that redefines static when libcurl is compiled with that compiler.
1177   How do I know when VC++ compiles, anyone?
1178
1179 Daniel (4 February 2001)
1180 - curl_getinfo() was extended with two new options:
1181   CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They
1182   return the full assumed content length of the transfer in the given
1183   direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length:
1184   size of a HTTP download. Added descriptions to the man page as well. This
1185   was done after discussions with Bob Schader.
1186
1187 Daniel (3 February 2001)
1188 - Ingo Ralf Blum provided another fix that makes curl build under the more
1189   recent cygwin installations. It seems they've changed the preset defines to
1190   not include WIN32 anymore.
1191
1192 Version 7.6.1-pre2
1193
1194 Daniel (31 January 2001)
1195 - Curl_read() and curl_read() now return a ssize_t for the size, as it had to
1196   be able to return -1. The telnet support crashed due to this and there was a
1197   possibility to weird behavior all over. Linus Nielsen Feltzing helped me
1198   find this.
1199
1200 - Added a configure.in check for a working getaddrinfo() if IPv6 is requested.
1201   I also made the configure script feature --enable-debug which sets a couple
1202   of compiler options when used. It assumes gcc.
1203
1204 Daniel (30 January 2001)
1205 - I finally took a stab at the long-term FIXME item I've had on myself, and
1206   now libcurl will properly work when doing a HTTP range-request that follows
1207   a Location:. Previously that would make libcurl fail saying that the server
1208   doesn't seem to support range requests.
1209
1210 Daniel (29 January 2001)
1211 - I added a test case for the HTTP PUT resume thing (test case 33).
1212
1213 Version 7.6.1-pre1
1214
1215 Daniel (29 January 2001)
1216 - Yet another Content-Range change. Ok now? Bob Schader checks from his end 
1217   and it works for him.
1218
1219 Daniel (27 January 2001)
1220 - So the HTTP PUT resume fix wasn't good. There should appearantly be a
1221   Content-Range header when resuming a PUT.
1222
1223 - I noticed I broke the download-check that verifies that a resumed HTTP
1224   download is actually resumed. It got broke because my new 'httpreq' field
1225   in the main curl struct. I should get slapped. I added a test case for
1226   this now, so I won't be able to ruin this again without noticing.
1227
1228 - Added a test case for content-length verifying when downloading HTTP.
1229
1230 - Made the progress meter title say if the transfer is being transfered. It
1231   makes the output slightly better for resumes.
1232
1233 - When dealing with Location: and HTTP return codes, libcurl will not attempt
1234   to follow the spirit of RFC2616 better. It means that when POSTing to a
1235   URL that is being following to a second place, the standard will judge on
1236   what to do. All HTTP codes except 303 and 305 will cause curl to make a
1237   second POST operation. 303 will make a GET and 305 is not yet supported.
1238
1239   I also wrote two test cases for this POST/GET/Location stuff.
1240
1241 Version 7.6
1242
1243 Daniel (26 January 2001)
1244 - Lots of mails back and forth with Bob Schader finally made me add a small
1245   piece of code in the HTTP engine so that HTTP upload resume works. You can
1246   now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT
1247   the ending part of the file starting at given offet to the specified URL.
1248
1249 Version 7.6-pre4
1250
1251 Daniel (25 January 2001)
1252 - I took hold of Rick Jones' question why we don't use recv() and send() for
1253   reading/writing to the sockets and I've now modified the sread() and
1254   swrite() macros to use them instead. If nothing else, they could be tested
1255   in the next beta-round coming right up.
1256
1257 - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied
1258   his research results in how to fix this. It turns out we have to invoke the
1259   function several times in some cases. The same goes for the SSL_write().
1260
1261   I made some rather drastic changes all over libcurl to make all writes and
1262   reads get done on one single place so that this repeated-attempts thing
1263   would only have to be implemented at one point.
1264
1265 - Rick Jones spotted that the 'total time' counter really didn't measure the
1266   total time very accurate on subsecond levels.
1267
1268 - Johan Nilsson pointed out the need to more clearly specify that the timeout
1269   value you set for a download is for the *entire* download. There's currently
1270   no option available that sets a timeout for the connection phase only.
1271
1272 Daniel (24 January 2001)
1273 - Ingo Ralf Blum submitted a series of patches required to get curl to compile
1274   properly with cygwin.
1275
1276 - Robert Weaver posted a fix for the win32 section of the curl_getenv() code
1277   that corrected a potential memory leak.
1278
1279 - Added comments in a few files in a sudden attempt to make the sources more
1280   easy to read and understand!
1281
1282 Daniel (23 January 2001)
1283 - Added simple IPv6 detection in the configure script and made the version
1284   string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be
1285   set if curl is compiled with IPv6 support enabled.
1286
1287 - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when
1288   IPv6 gets enabled soon, we can use URLs like '[0::1]:80'...
1289
1290 - Made the URL globbing in the client possible to fail silently if there's an
1291   error in the globbing. It makes it almost intuitive, so when you don't
1292   follow the syntax rules, globbing is simply switched off and the raw string
1293   is used instead.
1294
1295   I still think we'll get problems with IPv6-style IP-addresses when we *want*
1296   globbing on parts of the URL as the initial part of the URL will for sure
1297   seriously confuse the globber.
1298
1299 Daniel (22 January 2001)
1300 - Björn Stenberg supplied a progress meter patch that makes it look better even
1301   during slow starts. Previously it made some silly assumptions...
1302
1303 - Added two FTP tests for -Q and -Q - stuff since it was being discussed on
1304   the mailing list. Had to correct the ftpserver.pl too as it bugged slightly.
1305
1306 Daniel (19 January 2001)
1307 - Made the Location: parsers deal with any-length URLs. Thus I removed the last
1308   code that restricts the length of URLs that curl supports.
1309
1310 - Added a --globoff test case (#28) and it quickly identified a memory problem
1311   in src/main.c that I took care of.
1312
1313 Version 7.6-pre3
1314
1315 Daniel (17 January 2001)
1316 - Made the two former files lib/download.c and lib/highlevel.c become the new
1317   lib/transfer.c which makes more sense. I also did the rename from Transfer()
1318   to Curl_Transfer() in the other source files that use the transfer function
1319   in the spirit of using Curl_ prefix for library-scoped global symbols.
1320
1321 Daniel (11 January 2001)
1322 - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[]
1323   letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly
1324   mention these letters to be escaped. This was posted as a feature request by
1325   Jorge Gutierrez and as a bug by Terry.
1326
1327 - Short options to curl that requires parameters can now be specified without
1328   having the option and its parameter space separated. -ofile works as good as
1329   -o file. -m20 is equal to -m 20. Do note that this goes for single-letter
1330   options only, verbose --long-style options still must be separated with
1331   space from their parameters.
1332
1333 Daniel (8 January 2001)
1334 - Francis Dagenais reported that the SCO compiler still fails when compiling
1335   curl due to that getpass_r() prototype. I've now put it around #ifndef
1336   HAVE_GETPASS_R in an attempt to please the SCO systems.
1337
1338 - Made some minor corrections to get the client to cleanup properly and I made
1339   the separator work again when getting multiple globbed URLs to stdout.
1340
1341 - Worked with Loic Dachary to get the make dist and make distcheck work
1342   correctly. The 'maketgz' script is now using the automake generated 'make
1343   dist' when creating release archives. Loic successfully made 'make rpms'
1344   automatically build RPMs!
1345
1346 Loic Dachary (6 January 2001)
1347 - Automated generation of rpm packages, no need to be root.
1348
1349 - make distcheck generates a proper distribution (EXTRA_DIST
1350   in all Makefile.am modified to match FILES).
1351
1352 Daniel (5 January 2001)
1353 - Huge client-side hack: now multiple URLs are supported. Any number of URLs
1354   can be specified on the command line, and they'll all be downloaded. There
1355   must be a corresponding -o or -O for each URL or the data will be written to
1356   stdout. This needs more testing, time to release a 7.6-pre package.
1357
1358 - The krb4 support was broken in the release. Fixed now.
1359
1360 - Huge internal symbol rename operation. All non-static but still lib-internal
1361   symbols should now be prefixed with 'Curl_' to prevent collisions with other
1362   libs. All public symbols should be prefixed with 'curl_' and the rest should
1363   be static and thus invisible to the outside world. I updated the INTERNALS
1364   document to say this as well.
1365
1366 Version 7.5.2
1367
1368 Daniel (4 January 2001)
1369 - As Kevin P Roth suggested, I've added text to the man page for every command
1370   line option and what happens when you specify that option more than
1371   once. That hasn't been exactly crystal clear before.
1372
1373 - Made the configure script possible to run from outside the source-tree. For
1374   odd reasons I can't build curl properly outside though. It has to do with
1375   curl's dependencies on libcurl...
1376
1377 - Cut off all older (dated 1999 and earlier) CHANGES entries from this file.
1378   The older piece is named CHANGES.0 and is added to the CVS repository in
1379   case anyone would need it.
1380
1381 - I added another file 'CVS-INFO' to the CVS. It contains information about
1382   files in the CVS that aren't included in release archives and how to build
1383   curl when you get the sources off CVS.
1384
1385 - Updated CONTRIBUTE and FAQ due to the new license.
1386
1387 Daniel (3 January 2001)
1388 - Renamed README.libcurl to LIBCURL
1389
1390 - Changed headers in all sources files to the new dual license concept of
1391   curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated
1392   accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the
1393   release archive.