The error buffer was not getting filled when Curl_wait_for_resolv() fails.
[platform/upstream/curl.git] / CHANGES.2000
1 Daniel (30 December 2000)
2 - Made all FTP commands get sent with the trailing CRLF in one single write()
3   as splitting them up seems to confuse at least some firewalls (FW-1 being
4   one major).
5
6 Daniel (19 December 2000)
7 - Added file desrciptor and FILE handle leak detection to the memdebug system
8   and thus I found and removed a file descriptor leakage in the ftp parts
9   that happened when you did PORTed downloads.
10
11 - Added an include <stdio.h> in <curl/curl.h> since it uses FILE *.
12
13 Daniel (12 December 2000)
14 - Multiple URL downloads with -O was still bugging. Not anymore I think or
15   hope, or at least I've tried... :-O
16
17 - Francois Petitjean fixed another -O problem
18
19 Version 7.5.1
20
21 Daniel (11 December 2000)
22 - Cleaned up a few of the makefiles to use unix-style newlines only. As Kevin
23   P Roth found out, at least one CVS client behaved wrongly when it found
24   different newline conventions within the same file.
25
26 - Albert Chin-A-Young corrected the LDFLAGS use in the configure script for
27   the SSL stuff.
28
29 Daniel (6 December 2000)
30 - Massimo Squillace correctly described how libcurl could use session ids when
31   doing SSL connections.
32
33 - James Griffiths found out that curl would crash if the file you specify with
34   -o is shorter than the URL! This took some hours to fully hunt down, but it
35   is fixed now.
36
37 Daniel (5 December 2000)
38 - Jaepil Kim sent us makefiles that build curl using the free windows borland
39   compiler. The root makefile now accepts 'make borland' to build curl with
40   that compiler.
41
42 - Stefan Radman pointed out that the test makefiles didn't use the PERL
43   variable that the configure scripts figure out. Actually, you still need
44   perl in the path for the test suite to run ok.
45
46 - Rich Gray found numerous portability problems:
47   * The SCO compiler got an error on the getpass_r() prototype in getpass.h
48     since the curl one differed from the SCO one
49   * The HPUX compiler got an error because of how curl did the sigaction
50     stuff and used a define HPUX doesn't have (or need).
51   * A few more problems remain to be researched.
52
53 - Paul Harrington experienced a core dump using https. Not much details yet.
54
55 Daniel (4 December 2000)
56 - Jörn Hartroth fixed a problem with multiple URLs and -o/-O.
57
58 Version 7.5
59
60 Daniel (1 December 2000)
61 - Craig Davison gave us his updates on the VC++ makefiles, so now curl should
62   build fine with the Microsoft compiler on windows too.
63
64 - Fixed the libcurl versioning so that we don't ruin old programs when
65   releasing new shared library interfaces.
66
67 Daniel (30 November 2000)
68 - Renamed docs/README.curl to docs/MANUAL to better reflect what the document
69   actually contains.
70
71 Daniel (29 November 2000)
72 - I removed a bunch of '#if 0' sections from the code. They only make things
73   harder to follow. After all, we do have all older versions in the CVS.
74
75 Version 7.5-pre5
76
77 Daniel (28 November 2000)
78 - I filled in more error codes in the man page error code list that had been
79   lagging.
80
81 - James Griffiths mailed me a fine patch that introduces the CURLOPT_MAXREDIRS
82   libcurl option. When used, it'll prevent location following more than the
83   set number of times. It is useful to break out of endless redirect-loops.
84
85 Daniel (27 November 2000)
86 - Added two test cases for file://.
87
88 Daniel (22 November 2000)
89 - Added the libcurl CURLOPT_FILETIME setopt, when set it tries to get the
90   modified time of the remote document. This is a special option since it
91   involves an extra set of commands on FTP servers. (Using the MDTM command
92   which is not in the RFC959)
93
94   curl_easy_getinfo() got a corresponding CURLINFO_FILETIME to get the time
95   after a transfer. It'll return a zero if CURLOPT_FILETIME wasn't used or if
96   the time wasn't possible to get.
97
98   --head/-I used on a FTP server will now present a 'Last-Modified:' header
99   if curl could get the time of the specified file.
100
101 - Added the option '--cacert [file]' to curl, which allows a specified PEM
102   file to be used to verify the peer's certificate when doing HTTPS
103   connections. This has been requested, rather recently by Hulka Bohuslav but
104   others have asked for it before as well.
105
106 Daniel (21 November 2000)
107 - Numerous fixes the test suite has brought into the daylight:
108
109    * curl_unescape() could return a too long string
110    * on ftp transfer failures, there could be memory leaks
111    * ftp CWD could use bad directory names
112    * memdebug now uses the mprintf() routines for better portability
113    * free(NULL) removed when doing resumed transfers
114
115 - Added a bunch of test cases for FTP.
116
117 - General cleanups to make less warnings with gcc -Wall -pedantic.
118
119 - I made the tests/ftpserver.pl work with the most commonly used ftp
120   operations. PORT, PASV, RETR, STOR, LIST, SIZE, USER, PASS all work now. Now
121   all I have to do is integrate the ftp server doings in the runtests.pl
122   script so that ftp tests can be run the same way http tests already run.
123
124 Daniel (20 November 2000)
125 - Made libcurl capable of dealing with any-length URLs. The former limit of
126   4096 bytes was a bit annoying when people wanted to use curl to really make
127   life tough on a web server. Now, the command line limit is the most annoying
128   but that can be circumvented by using a config file.
129
130   NOTE: there is still a 4096-byte limit on URLs extracted from Location:
131   headers.
132
133 - Corrected the spelling of 'resolve' in two error messages.
134
135 - Alexander Kourakos posted a bug report and a patch that corrected it! It
136   turned out that lynx and wget support lowercase environment variable names
137   where curl only looked for the uppercase versions. Now curl will use the
138   lowercase versions if they exist, but if they don't, it'll use the uppercase
139   versions.
140
141 Daniel (17 November 2000)
142 - curl_formfree() was added. How come no one missed that one before? I ran the
143   test suite with the malloc debug enabled and got lots of "nice" warnings on
144   memory leaks. The most serious one was this. There were also leaks in the
145   cookie handling, and a few errors when curl failed to connect and similar
146   things. More tests cases were added to cover up and to verify that these
147   problems have been removed.
148
149 - Mucho updated config file parser (I'm dead tired of all the bug reports and
150   weird behaviour I get on the former one). It works slightly differently now,
151   although I doubt many people will notice the differences. The main
152   difference being that if you use options that require parameters, they must
153   both be specified on the same line. With this new parser, you can also
154   specify long options without '--' and you may separate options and
155   parameters with : or =. It makes a config file line could look like:
156
157         user-agent = "foobar and something"
158
159   Parameters within quotes may contain spaces. Without quotes, they're
160   expected to be a single non-space word.
161
162   Had to patch the command line argument parser a little to make this work.
163
164 - Added --url as an option to allow the URL to be specified this way. It makes
165   way nicer config files. The previous way of specifying URLs in the config
166   file doesn't work anymore.
167
168 Daniel (15 November 2000)
169 - Using certain characters in usernames or passwords for HTTP authentication
170   failed. This was due to the mprintf() that had a silly check for letters,
171   and if they weren't isprint() they weren't outputed "as-is". This caused
172   passwords and usernames using '§' (for example) to fail.
173
174 Version 7.4.2
175
176 Daniel (15 November 2000)
177 - 'tests/runtests.pl' now sorts the test cases properly when 'all' is used.
178
179 Daniel (14 November 2000)
180 - I fell over the draft-ietf-ftpext-mlst-12.txt Internet Draft titled
181   "Extensions to FTP" that contains a defined way how the ftp command SIZE
182   could be assumed to work.
183
184 - Laurent Papier posted a bug report about using "-C -" and FTP uploading a
185   file that isn't prsent on the server. The server might then return a 550 and
186   curl will fail. Should it instead as Laurent Papier suggests, start
187   uploading from the beginning as a normal upload?
188
189 Daniel (13 November 2000)
190 - Fixed a crash with the followlocation counter.
191
192 - While writing test cases for the test suite, I discovered an old limitation
193   that prevented -o and -T to be used at the same time. I removed this
194   immediately as this has no relevance in the current libcurl.
195   
196 - Chris Faherty fixed a free-twice problem in lib/file.c
197
198 - I fixed the perl http server problem in the test suite.
199
200 Version 7.4.2 pre4
201
202 Daniel (10 November 2000)
203 - I've (finally) started working on the curl test suite. It is in the new
204   tests/ directory. It requires sh and perl. There's a TCP server in perl and
205   most of the other stuff running a pretty simple shell script.
206
207   I've only made four test cases so far, but it proves the system can work.
208
209 - Laurent Papier noticed that curl didn't set TYPE when doing --head checks
210   for sizes on FTP servers. Some servers seem to return different sizes
211   depending on whether ASCII or BINARY is used!
212
213 - Laurent Papier detected that if you appended a FTP upload and everything was
214   already uploaded, curl would hang.
215
216 - Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the
217   getpass_r() function it seems some systems actually have.
218   
219 - Venkataramana Mokkapati detected a bug in the cookie parser and corrected
220   it.  If the cookie was set for the full host name (domain=full.host.com),
221   the cookie was never sent back because of a faulty length comparison between
222   the set domain length and the current host name.
223
224 Daniel (9 November 2000)
225 - Added a configure check for gethostbyname in -lsocket (OS/2 seems to need
226   it). Added a check for RSAglue/rsaref for the cases where libcrypto is found
227   but libssl isn't. I haven't verified this fix yet though, as I have no
228   system that requires those libs to build.
229   
230 Version 7.4.2 pre3
231
232 Daniel (7 November 2000)
233 - Removed perror() outputs from getpass.c. Angus Mackay also agreed to a
234   slightly modified license of the getpass.c file as the prototype was changed.
235
236 Daniel (6 November 2000)
237 - Added possibility to set a password callback to use instead of the built-in.
238   They're controled with curl_easy_setopt() of course, the tags are
239   CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA.
240
241 - Used T. Bharath's thinking and fixed the timers that showed terribly wrong
242   times when location: headers were followed.
243
244 - Emmanuel Tychon discovered that curl didn't really like user names only in
245   the URL. I corrected this and I also fixed the since long living problem
246   with URL encoded user names and passwords in the URLs. They should work now.
247   
248 Daniel (2 November 2000)
249 - When I added --interface, the new error code that was added with it was
250   inserted in the wrong place and thus all error codes from 35 and upwards got
251   increased one step. This is now corrected, we're back at the previous
252   numbers. All new exit codes should be added at the end.
253
254 Daniel (1 November 2000)
255 - Added a check for signal() in the configure script so that if sigaction()
256   isn't present, we can use signal() instead.
257
258 - I'm having a license discussion going on privately. The issue is yet again
259   GPL-licensed programs that have problems with MPL. I am leaning towards
260   making a kind of dual-license that will solve this once and for all...
261
262 Daniel (31 October 2000)
263 - Added the packages/ directory. I intend to let this contain some docs and
264   templates on how to generate custom-format packages for various platforms.
265   I've now removed the RPM related curl.spec files from the archive root.
266
267 Daniel (30 October 2000)
268 - T. Bharath brought a set of patches that bring new functionality to
269   curl_easy_getinfo() and curl_easy_setopt(). Now you can request peer
270   certificate verification with the *setopt() CURLOPT_SSL_VERIFYPEER option
271   and then use the CURLOPT_CAINFO to set the certificate to verify the remote
272   peer against. After an such an operation with a verification request, the
273   *_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about
274   whether the verification succeeded or not.  
275
276 Daniel (27 October 2000)
277 - Georg Horn brought us a splendid patch that solves the long-standing
278   annoying problem with timeouts that made curl exit with silly exit codes
279   (which as been commented out lately). This solution is sigaction() based and
280   of course then only works for unixes (and only those unixes that actually
281   have the sigaction() function).
282
283 Daniel (26 October 2000)
284 - Björn Stenberg supplied a patch that fixed the flaw mentioned by Kevin Roth
285   that made the password get echoed when prompted for interactively. The
286   getpass() function (now known as my_getpass()) was also fixed to not use any
287   static buffers. This also means we cannot use the "standard" getpass()
288   function even for those systems that have it, since it isn't thread-safe.
289   
290 - Kevin Roth found out that if you'd write a config file with '-v url', the
291   url would not be used as "default URL" as documented, although if you wrote
292   it 'url -v' it worked! This has been corrected now.
293
294 - Kevin Roth's idea of using multiple -d options on the same command line was
295   just brilliant, and I couldn't really think of any reason why we shouldn't
296   support it! The append function always append '&' and then the new -d
297   chunk. This enables constructs like the following:
298
299         curl -d name=daniel -d age=unknown foobarsite.com
300
301 Daniel (24 October 2000)
302 - I fixed the lib/memdebug.c source so that it compiles on Linux and other
303   systems. It will be useful one day when someone else but me wants to run the
304   memory debugging system.
305
306 Daniel (23 October 2000)
307 - I modified the maketgz and configure scripts, so that the configure script
308   will fetch the version number from the include/curl/curl.h header files, and
309   then the maketgz doesn't have to rebuild the configure script when I build
310   release-archives.
311
312 - Björn Stenberg and Linus Nielsen correctly pointed out that curl was silly
313   enough to not allow @-letters in passwords when they were specified with the
314   -u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also
315   suggests that curl probably should url-decode the password piece of an URL
316   so that you could pass an encoded @-letter there...
317   
318 Daniel (20 October 2000)
319 - Yet another http server barfed on curl's request that include the port
320   number in the Host: header always. I now only include the port number if it
321   isn't the default (80 for HTTP, 443 for HTTPS). www.perl.com turned out to
322   run one of those nasty servers.
323
324 - The PHP4 module for curl had problems with referer that seems to have been
325   corrected just yesterday. (Sterling Hughes of the PHP team confirmed this)
326
327 Daniel (17 October 2000)
328 - Vladimir Oblomov reported that the -Y and -y options didn't work. They
329   didn't work for me either. This once again proves we should have that test
330   suite...
331   
332 - I finally changed the error message libcurl returns if you try a https://
333   URL when the library wasn't build with SSL enabled. It will now return this
334   error:
335         "libcurl was built with SSL disabled, https: not supported!"
336
337   I really hope it will make it a bit clearer to users where the actual
338   problem lies.
339
340 Version 7.4.1
341
342 Daniel (16 October 2000)
343 - I forgot to remove some of the malloc debug defines from the makefiles in
344   the release archive (of course).
345
346 Version 7.4
347
348 Daniel (16 October 2000)
349 - The buffer overflow mentioned below was posted to bugtraq on Friday 13th.
350
351 Daniel (12 October 2000)
352 - Colin Robert Phipps elegantly corrected a buffer overflow. It could be used
353   by an evil ftp server to crash curl. I took the opportunity of replacing a
354   few other sprintf()s into snprintf()s as well.
355
356 Daniel (11 October 2000)
357 - Found some more memory leaks. This new simple memory debugger has turned out
358   really useful!
359
360 Version 7.4 pre6
361
362 Daniel (9 October 2000)
363 - Florian Koenig pointed out that the bool typedef in the curl/curl.h include
364   file was breaking PHP 4.0.3 compiling. The bool typedef is not used in the
365   public interface and was wrongly inserted in that header file.
366
367 - Jörg Hartroth corrected a minor memory leak in the src/urlglob.c stuff. It
368   didn't harm anyone since the memory is free()ed on exit anyway.
369
370 - Corrected the src/main.c. We use the _MPRINTF_REPLACE #define to use our
371   libcurl-printf() functions. This gives us snprintf() et al on all
372   platforms. I converted the allocated useragent string to one that uses a
373   local buffer.
374
375 - I've set an #if 0 section around the Content-Transfer-Encoding header
376   generated in lib/formdata.c. This will hopefully make curl do more
377   PHP-friendly multi-part posts.
378
379 Version 7.4 pre5
380
381 Daniel (9 October 2000)
382 - Nico Baggus found out that curl's ability to force a ASCII download when
383   using FTP was no longer working! I corrected this. This problem was probably
384   introduced when I redesigned libcurl for version 7.
385
386 - Georg Horn provided a source example that proved a memory leak in libcurl.
387   I added simple memory debugging facilities and now we can make libcurl log
388   all memory fiddling functions. An additional perl script is used to analyze
389   the output logfile and to match malloc()s with free()s etc. The memory leak
390   Georg found turned out to be the main cookie struct that cookie_cleanup()
391   didn't free! The perl script is named memanalyze.pl and it is available in
392   the CVS respository, not in the release archive.
393
394 Daniel (8 October 2000)
395 - Georg Horn found a GetHost() problem. It turned out it never assigned the
396   pointer in the third argument properly! This could make a crash, or at best
397   a memory leak!
398
399 Version 7.4 pre4
400
401 Daniel (6 October 2000)
402 - Is the -F post following the RFC 1867 spec? We had this dicussion on the
403   mailing list since it appears curl can't post -F form posts to a PHP
404   receiver... I've been in touch with the PHP developers about this.
405
406 - Domenico Andreoli found out that the long option '--proxy' wasn't working
407   anymore! The option parser got confused when I added the --proxytunnel for
408   7.3. This was indeed a very old flaw that hasn't turned up until now...
409
410 - Jörn Hartroth provided patches, updated makefiles and two new files for DLL
411   stuff on win32. He also pointed out that lib source files were compiled with
412   -I../src which isn't only wrong but plain stupid!
413
414 - Troels Walsted Hansen fixed a problem with HTTP resume. Curl previously used
415   a local variable badly, that could lead to crashes.
416
417 Version 7.4 pre3
418
419 Daniel (4 October 2000)
420 - More docs written. The curl_easy_getinfo.3 man page is now pretty accurate,
421   as is the -w section in curl.1. I added two options to enable the user to
422   get information about the received headers' size and the size of the HTTP
423   request. T. Bharath requested them.
424   
425 Daniel (3 October 2000)
426 - Corrected a sever free() before use in the new add_buffer_send()! ;-)
427
428 Version 7.4 pre2
429
430 Daniel (3 October 2000)
431 - Jason S. Priebe sent me patches that changed the way curl issues HTTP
432   requests. The entire request is now issued in one single shot. It didn't do
433   this previously, and it has turned out that since the common browsers do it
434   this way, some sites have turned out to work with browsers but not with
435   curl! Although this is not a client-side problem, we want to be able to
436   fully emulate browsers, and thus we have now adjusted the networking layer
437   to slightly more appear as a browser. I adjusted Jason's patch, the faults
438   are probably mine.
439
440 Daniel (2 October 2000)
441 - Anyone who ever uploaded data with curl on a slow link has noticed that the
442   progess meter is updated very infrequently. That is due to the large buffer
443   size curl is using. It reads 50Kb and sends it, updates the progress meter
444   and loops. 50Kb is very much on a slow link, although it is pretty neat to
445   use on a fast one.
446
447   I've now made an adjustment that makes curl use a 2Kb buffer for uploads to
448   start with. If curl's average upload speed is faster than buffer size bytes
449   per second, curl will increase the used buffer size up to max 50Kb. It
450   should make the progress meter work better.
451   
452 Version 7.4 pre1
453
454 Daniel (29 September 2000)
455 - Ripped out the -w stuff from the library and put in the curl tool. It gets
456   all the relevant info from the library using the new curl_easy_getinfo()
457   function.
458
459 - brad at openbsd.org mailed me a patch that corrected my kerberos mistake and
460   removed a compiler warning from hostip.c that OpenBSD people get.
461
462 Daniel (28 September 2000)
463 - Of course (I should probably get punished somehow) I didn't properly correct
464   the #include lines for the base64 stuff in the kerberos sources in the just
465   released 7.3 package. They still include the *_krb.h files! Now, the error
466   is sooo very easy to spot and fix so I won't bother with a quick bug fix
467   release. I'll post a patch whenever one is needed instead. It'll be
468   available in the CVS in a few minutes anyway.
469
470 Version 7.3
471
472 Daniel (28 September 2000)
473 - Removed the base64_krb.[ch] files. They've now replaced the former
474   base64.[ch] files.
475
476 Daniel (26 September 2000)
477 - Updated some docs.
478
479 - I changed the OpenSSL fix to work with older versions as well. The posted
480   patch was only working with 0.9.6 and no older ones.
481   
482 Version 7.3-pre8
483
484 Daniel (25 September 2000)
485 - Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and
486   showed us what needed to get patched in order to make it build properly
487   again.
488
489 - Dirk Kruschewski found a bug in the cookie parser. I made an alternative
490   approach to the solution Dirk himself suggested. The bug made a cookie
491   header that didn't end with a trailing semicolon to not get parsed.
492
493 - I've marked -c and -t deprecated now. If you use any of them, curl will tell
494   you to use "-C -" or "-T -" instead. I don't think occupying two letters for
495   nearly identical functions is good use. Also, -T - kind of follows the curl
496   tradition of using - for stdin where a file name is expected.
497
498 Daniel (23 September 2000)
499 - Martin Hedenfalk provided the patch that finally made the krb4 ftp upload
500   work!
501
502 Daniel (21 September 2000)
503 - The kerberos code is not quite thread-safe yet. There are a few more globals
504   that need to be take care of. Let's get the upload working first!
505
506 Daniel (20 September 2000)
507 - Richard Prescott solved another name lookup buffer size problem. I took this
508   opportunity to rewrite the GetHost() function. With these large buffer
509   sizes, I think keeping them as local arrays quickly turn ugly. I now use
510   malloc() to get the buffer memory. Thanks to this, I now can realloc() to a
511   large buffer in case of demand (errno == ERANGE) in case a solution like
512   that would become necessary. I still want to avoid that kind of nastiness.
513
514 - Tried to compile and run curl on Linux for alpha and FreeBSD for alpha. Went
515   as smooth as it could.
516
517 - Added a docs/examples directory with two tiny example sources that show how
518   to use libcurl. I hope users will supply me with more useful examples
519   further on.
520
521 - Applied a patch by Jörn Hartroth to no longer use the word 'inteface' in the
522   config struct in the src/main.c file since certain compilers have that word
523   "reservered".  I figure that is some kind of C++ decease.
524
525 - Updated the curl.1 man page with --interface and --krb4.
526
527 - Modified the base64Encode() function to work like the kerberos one, so that
528   I could remove the use of that. There is no need for *two* base64 encoding
529   functions! ;-)
530
531 Version 7.3pre5
532
533 Daniel (19 September 2000)
534 - The kerberos4-layer source code that is much "influenced" by the original
535   krb4 source code, through yafc into curl, was using quite a lot of global
536   variables. libcurl can't work properly with globals like that why I had to
537   clean up almost every function in the new security.c to make them use
538   connection specific variables instead of the globals. I just hope I didn't
539   destroy anything now... :-) configure updated, version string now reflects
540   krb4 built-in. It almost works now. Only uploads are still being naughty.
541
542 Version 7.3pre3
543
544 Daniel (18 September 2000)
545 - Martin Hedenfalk supplied a major patch that introduces krb4-ftp support to
546   curl. Martin is the primary author of the ftp client named yafc and he did
547   not hesitate to help us implement this when I asked him. Many and sincere
548   thanks to a splendid effort. It didn't even take many hours!
549
550 - Stephen Kick supplied a big patch that introduces the --interface flag to
551   the curl tool and CURLOPT_INTERFACE for libcurl. It allows you to specify an
552   outgoing interface to use for your request. This may not work on all
553   platforms. This needs testing.
554
555 - Richard Prescott noticed that curl on Tru64 unix could core dumped if the
556   name didn't resolve properly. This was due to the GetHost() function not
557   returning an error even though it failed on some platforms!
558
559 Daniel (15 September 2000)
560 - Updated all sorts of documents in regards to the new proxytunnel support.
561
562 Version 7.3pre2
563
564 Daniel (15 September 2000)
565 - Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp.
566   Adjusted it. Added better info message when setting up the tunnel and the
567   pasv message when doing the second connect.
568   
569 Version 7.3pre1
570
571 Daniel (15 September 2000)
572 - libcurl now allows "httpproxytunnel" to an arbitrary host and port name. The
573   second connection on ftp needed that.
574
575 - TheArtOfHTTPScripting was corrected all over. I both type and spell really
576   bad at times!
577   
578 Daniel (14 September 2000)
579 - -p/--proxytunnel was added to 'curl'. It uses the new
580   CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel
581   through the specified http proxy. At the moment, this should work with ftp.
582
583 Daniel (13 September 2000)
584 - Jochen Schaeuble found that file:// didn't work as expected. Corrected this
585   and mailed the patch to the mailing list.
586
587 Daniel (7 September 2000)
588 - I changed the #define T() in curl.h since it turned out it wasn't really
589   a good symbol to use (when you compiled PHP with curl as a module, that
590   define collided with some IMAP define or something). This was posted to the
591   PHP bug tracker.
592
593 - I added extern "C" stuff in two header files to better allow libcurl usage
594   in C++ sorces. Discussions on the libcurl list with Danny Horswell lead to
595   this.
596
597 Version 7.2.1
598
599 Daniel (31 August 2000)
600 - Albert Chin-A-Young fixed the configure script *again* and now it seems to
601   detect Linux name resolving properly! (heard that before?)
602
603 - Troels Walsted Hansen pointed out that downloading a file containing the
604   letter '+' from an ftp server didn't work. It did work from HTTP though and
605   the reason was my lame URL decoder.
606
607 - I happened to notice that -I didn't at all work on ftp anymore. I corrected
608   that.
609
610 Version 7.2
611
612 Daniel (30 August 2000)
613 - Understanding AIX is a hard task. I believe I'll never figure out why they
614   solve things so differently from the other unixes. Now, I'm left with the
615   AIX 4.3 run-time warnings about duplicate symbols that according to this
616   article (http://www.geocrawler.com/archives/3/405/1999/9/0/2593428/) is a
617   libtool flaw. I tried the mentioned patch, although that stops the linking
618   completely.
619
620   So, if I select to ignore the ld warnings there are compiler warnings that
621   fill the screen pretty bad when curl compiles. It turns out that if I want
622   to '#include <arpa/inet.h>', I can get tid of the warnings by include the
623   following three include files before that one:
624
625         #include <net/if_dl.h>
626         #include <sys/mbuf.h>
627         #include <netinet/if_ether.h>
628
629   Now, is it really sane to add those include files before arpa/inet.h in all
630   the source files that include it?
631
632   Thanks to Albert Chin-A-Young at thewrittenword.com who gave me the AIX
633   login to try everything on.
634
635 Daniel (24 August 2000)
636 - Jan Schmidt supplied us a new VC6 makefile for Windows as the previous one
637   was not up to date but lacked several object files.
638
639 - More work on the naming.
640
641 - Albert Chin-A-Young provided a configure-check for large file support, as
642   some systems seem to need that for them to work. Had to change the position
643   for the config.h include file in every .c file in the libcurl dir...
644
645 - As suggested on the mailing list (by Troy Engel), I did use a --data-binary
646   option instead of the messy way I've left described below. It seems to
647   work. The libcurl fix remained the same as yesterday.
648
649 Daniel (23 August 2000)
650 - Back on the -d stripping newlines thing. The 'plain post' thing was added
651   when I had no thought of that one could actually post binary data with
652   it. Now, I have to add this functionality in a graceful manner and I think
653   I've managed to come up with a way: '-d @file;binary' will thus post the
654   file binary, exactly as its contents are. It is implemented with a new
655   *setopt() option (CURLOPT_POSTFIELDSIZE) to set the postfield size, since
656   libcurl can't strlen() the data in these cases.
657
658 - Albert Chin-A-Young made some very serious efforts and all the name
659   resolving problems seem to have been sorted out now on all the platforms
660   that previously showed them. I'll make another release now anyday because of
661   this.
662
663 - The FAQ was much enhanced when it comes to the licensing issues thanks to
664   Bjorn Reese.
665
666 Daniel (21 August 2000)
667 - Rick Welykochy pointed out a problem when you use -d to post and you want to
668   keep the newlines, as curl strips them off as a bonus before posting...
669   This needs to be addressed.
670
671 Version 7.1.1
672
673 Daniel (21 August 2000)
674 - Got more people involved in the gethostbyname_r() mess. Caolan McNamara sent
675   me configure-code that turned out to be very similar to my existing tests
676   which only make me more sure I'm on the right path. I changed the order of
677   the tests slightly, as it seems that some compilers don't yell error if a
678   function is used with too many parameters. Thus, the first tested function
679   will seem ok... Let's hope more compilers think of too-few parameters as bad
680   manners, as we're now trying the functions in that order; fewer first. I
681   should also add that Lars Hecking mailed me and volunteered to run tests on
682   a few odd systems. Coalan is keeping his work over at
683   http://www.csn.ul.ie/~caolan/publink/gethostbyname_r/. Might be handy in the
684   future as well.
685
686 Daniel (18 August 2000)
687 - I noticed I hadn't increased the name lookup buffer in lib/ftp.c. I don't
688   think this is the reason for the continued trouble though.
689
690 Daniel (17 August 2000)
691 - Fred Noz corrected my stupid mistakes in the gethostbyname_r() fluff. It
692   should affect some AIX, Digital Unix and HPUX 10 systems.
693
694 Daniel (15 August 2000)
695 - Mathieu Legare compiled and build 7.1 without errors on both AIX 4.2 as well
696   as AIX 4.3. Now why did problems occur before?
697
698 - Fred Noz reported a -w/--write-out bug that caused it to malfunction when
699   used combined with multiple URL retrievales. All but the first display got
700   screwed up!
701
702 Daniel (11 August 2000)
703 - Jason Priebe and an anonymous friend found some host names the Linux version
704   of curl could not resolve. It turned out the buffer used to retrieve that
705   information was too small. Fixed. One could argue about the usefulness of
706   not having the slightest trace of a man page for gethostbyname_r() on my
707   Linux Redhat installation...
708
709 Daniel (10 August 2000)
710 - Balaji S Rao was first in line to note the missing possibility to replace
711   the Content-Type: and Content-Length: headers when doing -d posts. I added
712   the possibility just now. It seems some people wants to do standard posts
713   using custom Content-Types.
714
715 Daniel (8 August 2000)
716 - Mike Dowell correctly discovered that curl did not approve of URLs with no
717   user name but password. As in 'http://:foo@haxx.se'. I corrected this.
718
719 Version 7.1
720
721 Daniel (7 August 2000)
722 - My AIX 4 fix does not work. I need help from a AIX 4 hacker.
723
724 - I added my new document in the docs directory. It is aimed to become a sort
725   of tutorial on how to do HTTP scripting with curl.
726
727 Daniel (4 August 2000)
728 - Working with Rich Gray on compiling curl for lots of different platforms.
729   My fix for AIX 3.2 was not good enough and was slightly changed, I had to
730   move an include file before another, as is now described in the source.
731
732   AIX 4.2 (4.X?) has different gethostbyname_r() and gethostbyaddr_r()
733   functions that the configure script didn't check for and thus the compile
734   broke with an error. I have now changed the gethostbyname_r() check in the
735   configure file to support all three versions of both these functions. My
736   implementation that uses the AIX-style is though not yet verified and I may
737   get problems to fix it if it turns out to bug since I don't have access to
738   any system using that.
739
740   For problems like that, I made the configure script allow --disable-thread
741   to completely switch off the check for threadsafe versions of a few
742   functions and thus go with the "good old versions" that tend to work
743   although will break thread-safeness for libcurl. Most people won't use
744   libcurl for other things than curl though, and curl doesn't need a
745   thread-safe lib.
746
747 - Working on my big tutorial about HTTP scripting with curl.
748
749 Daniel (1 August 2000)
750 - Rich Gray spotted a problem in src/setup.h caused by a #define strequal()
751   that was just a left-over from passed times. The strequal() is now a true
752   function supplied by libcurl for a portable case insensitive string
753   comparison. I added the prototypes in include/curl.h and removed the
754   now obsolete #define.
755
756 - Igor Khristophorov made a fix to allow resumed download from Sun's
757   JavaWebServer/1.1.1. It seems that their server sends bad Content-Range
758   headers.
759
760 - The makefiles forced a static library build, which is bad since we now use
761   libtool and thus have excellent shared library support! Albert Chin-A-Young
762   found out.
763
764 Version 7.0.11beta
765
766 Daniel (1 August 2000)
767 - Albert Chin-A-Young pointed out that 'make install' did not properly create
768   the header include directory, why it failed to install the header files as
769   it should. Automake isn't really equipped to deal with subdirectories
770   without Makefiles in any nice way. I had to run ahead and add Makefiles in
771   both include and include/curl before I managed to create a top-level
772   makefile that succeeds in install everything properly!
773
774 - Ok, no more "features" added now. Let's just verify that there's no major
775   flaws added now.
776
777 Daniel (31 July 2000)
778 - Both Jeff Schasny and Ketil Froyn asked me how to tell curl not to send one
779   of those internally generated headers. They didn't settle with the blank
780   ones you could tell curl to use. I rewrote the header-replace stuff a
781   little. Now, if you replace an internal header with your own and that new
782   one is a blank header you will only remove the internal one and not get any
783   blank. I couldn't figure out any case when you want that blank header.
784
785 Daniel (29 July 2000)
786 - It struck me that the lib used localtime() which is not thread-safe, so now
787   I use localtime_r() in the systems that has it.
788
789 - I went through this entire document and removed all email addresses and left
790   names only. I've really made an effort to always note who brought be bug
791   reports or fixes, but more and more people ask me to remove the email
792   addresses since they become victims for spams this way. Gordon Beaton got me
793   working on this.
794
795 Daniel (27 July 2000)
796 - Jörn Hartroth found out that when you specified a HTTP proxy in an
797   environment variable and used -L, curl failed in the second fetch. I
798   corrected this problem and posted a patch to the list. No need for an extra
799   beta release just for this.
800
801 Version 7.0.10beta
802
803 Daniel (27 July 2000)
804 - So, libtool replaced two of my files with symbolic links and I forgot to add
805   the two new libtool files to the release archive (and they were added as
806   symlinks as well!) This of course lead to that the configure script failed
807   on 7.0.9...
808
809 Version 7.0.9beta
810
811 Daniel (25 July 2000)
812 - Kristian Köhntopp <kris at koehntopp.de> brought a fix that makes libcurl
813   libtoolified, just as we've wanted for a while now. He also made the
814   recently added man pages get installed properly on 'make install' and some
815   other nice cleanups.
816
817 - In a discussion with Eetu Ojanen it struck me that if we use curl to get a
818   page using a password, and that page then sends a Location: to another
819   server that curl follows, curl will send the user name and password to that
820   server as well.
821
822   Now, I'll never be able to make curl do Location: following all that perfect
823   and you're all sooner or later required to write a script to do several
824   fetches when you're doing advanced stuff, but now I've modified curl to at
825   least *only* send the user name and password to the original server. Which
826   means that if get a page from server A with a password, that forwards curl
827   to server B, curl won't use the password there. If server B then forwards
828   curl back to server A again, the password will be used again.
829
830   This is not a perfect implementation, as in a browser case it would only use
831   the password if the left-prefix of the first path is the same. I just think
832   that this fix prevents a somewhat lurky "security hole".
833
834   As a side-note in this subject: HTTP passwords are sent in cleartext and
835   will never be considered to be safe or secure. Use HTTPS for that.
836
837 - As discussed on the mailing list, I converted the FTP response reading
838   function into using select() which then allows timeouts (even under win32!)
839   if the command-reply session gets too slow or dies completely. I made a
840   default timeout on 3600 seconds unless anything else is specified, since I
841   don't think anyone wants to wait more than that for a single character to
842   get received...
843
844 - Torsten Foertsch <torsten.foertsch at gmx.net> brought a set of fixes for
845   the rfc1867 form posts. He introduced 'name=<file' which brings a means to
846   suuply very large text chunks read from the given file name. It differs from
847   'name=@file' in the way that this latter thing is marked in the uploaded
848   contents as a file upload, while the first is just text (as in a input or
849   textarea field). Torsten also corrected a bug that would happen if you used
850   %s or similar in a -F file name.
851
852 - As discovered by Nico Baggus <Nico.Baggus at mail.ing.nl>, when transferring
853   files to/from FTP using type ASCII curl should not expect the transfer to be
854   the exact size reported by the server as the file size. Since ASCII may very
855   well mean that the content is translated while transfered, the final size
856   may very well differ. Therefor, curl now ignores the file size when doing
857   ASCII transfers in FTP.
858
859 Daniel (24 July 2000)
860 - Added CURLOPT_PROXYPORT to the curl_easy_setopt() call to allow the proxy
861   port number to be set separately from the proxy host name.
862
863 - Andrew <andrew at ugh.net.au> pointed out a netrc manual bug.
864
865 - The FTP transfer code now accepts a 250-code as well as the previously
866   accepted 226, after a successful file transfer. Mohan <mnair at
867   evergreen-funds.com> pointed this out.
868
869 - The check for *both* nsl and socket was never added in the v7 configure.in
870   when I moved the main branch. I re-added that check to configure.in. This was
871   discovered by Rich Gray.
872
873 - Howard, Blaise <Blaise.Howard at factiva.com> pointed out a missing free() in
874   curl_disconnect() which of course meant libcurl ate memory.
875
876 - Brian E. Gallew noted that the HTTP 'Host:' header curl sent did not
877   properly include the port number if non-default ports were used. This should
878   now have been fixed.
879
880 - HTTP connect errors now return errors earlier. This was most notably causing
881   problems when the HTTPS certificate had problems and later caused a crash.
882   Many thanks to Gregory Nicholls <gnicholls at level8.com> for discovering
883   and suggesting a fix...
884
885 Daniel (21 June 2000)
886 - After a "bug report" I received where the user was using both -F and -I in a
887   HTTP request (it severly confused the library I should add), I added some
888   checks to src/main.c that prevents setting more than one HTTP request
889   command, no matter what the user wants! ;-)
890
891 Version 7.0.8beta
892
893 Daniel (20 June 2000)
894 - I did a major replace in many files to use the new curl domain haxx.se
895   instead of the previous one.
896
897 - As Eetu Ojanen suggested, I finally took the step and now libcurl no longer
898   makes a POST after it has followed a location. When the initial POST has
899   been done, it'll turned into a GET for the further requests. This is only
900   interesting when using -L/--location *and* doing a POST at the same time.
901
902   While messing with this, I added another weird feature I call 'auto
903   referer'. If you append ';auto' to the right of a given referer string (or
904   only use that string as referer), libcurl will automatically set the
905   previoud URL as refered when it follows a Location: and gets a succeeding
906   document.
907
908 - My hero Rich Gray found the very obscure FTP bug that happened to him only
909   when passing through a particular firewall and using the PORT command. It
910   turned out that PORT was the only command in the lib/ftp.c source that
911   didn't send a proper \r\n sequence but instead used the faulty \n which as
912   it seemed is supported by most major ftp servers... :-O
913
914 Version 7.0.7beta
915
916 Daniel (16 June 2000)
917 - I had avoided this long enough now, so I moved the alternative progress bar
918   stuff from the lib and added it to the client code. This is now using the
919   recently added progress callback and it seems to work pretty much like
920   before. Since it is only one progress bar and you and download and upload at
921   the same time, this bar shows the combined progress of both directions. This
922   code was just ported from the old place to this, Lars is still our saviour!
923   ;-) This also made the documentation more accurate since I never removed
924   this function from any docs! Although I now removed the CURLOPT_PROGRESSMODE
925   from the library since the lib has only one internal progress meter and it
926   will never get another. It is although likely that the internal one also
927   will be moved to the client code in the future (when I have other means of
928   getting the writeout data and move that too to the client).
929
930 - I took the opportunity to verify that standard progress meter works and I
931   found out it didn't get inited properly. Grrr. I corrected that as well.
932
933 Daniel (15 June 2000)
934 - I thought I'd better verify that the -F option still works in v7 and of
935   course it didn't... :-/ Anyway, I had the problems I could discover
936   corrected. About one month of beta testing and not a single person has used
937   this feature with v7?
938
939 - Björn correctly pointed out that the --progress-bar still doesn't work in
940   v7. Hm.
941
942 Daniel (14 June 2000)
943 - Tim Tassonis discovered that curl 7 didn't handle normal http POST as it
944   should. I corrected this.
945
946 Version 7.0.6beta
947
948 Daniel (14 June 2000)
949 - Björn Stenberg pointed out several problems (related to win32 compiling):
950   lib/strequal.c had a bad #ifdef for one of the string comparisons (win32)
951   src/main.c had several minor problems
952   lib/makefile.m32 had getpass.[co] twice
953   src/config-win32.h lacked the HAVE_FCNTL_H define
954   both config-win32.h files now only set the HAVE_UNISTD_H define if the
955   define MINGW32 is set, and I modified src/makefile.m32 and lib/makefile.m32
956   to set it.
957
958 Version 7.0.5beta
959
960 Daniel (14 June 2000)
961 - Applied Luong Dinh Dung's comments about a few win32 compile problems.
962
963 - Applied Björn Stenberg's suggested fix that turns the win32 stdout to
964   binary. It won't do it if the -B / --use-ascii option is used. That option
965   is now an extended version of the previous -B /--ftp--ascii. The flag was
966   already in use be the ldap as well so the new name fits pretty good. The
967   libcyrl CURLOPT_TRANSFERTEXT was also introduced as an alias to the now
968   obsolete CURLOPT_FTPASCII. Can't verify this fix myself as I have no win32
969   compiler around.
970
971 Daniel (13 June 2000)
972 - Luong Dinh Dung <dung at sch.bme.hu> found a problem in curl_easy_cleanup()
973   since it free()ed the main curl struct *twice*. This is now corrected.
974
975 Daniel (9 June 2000)
976 - Updated the RESOURCES file, added a README.win32 file.
977
978 Daniel (8 June 2000)
979 - So I finally added the progress callback to the *setopt() options and it
980   should work now. I don't have the energy to write any test program for it
981   right now.
982 - Made the callback function typedefs public in curl/curl.h for comfort. Just
983   in case anyone wanna fiddle with such pointers.
984 - Updated the curl_easy_setopt() man page accordingly.
985
986 Version 7.0.4beta
987
988 Daniel (2 June 2000)
989 - I noticed that when doing Location: following, we lost custom headers in all
990   but the first request.
991 - Removed the 'HttpPost' struct and moved the header stuff to the more generic
992   curl_slist.
993 - Added some better slist-cleanups in src/main.c
994
995 Version 7.0.3beta
996
997 Daniel (31 May 2000)
998 - So I discovered that I released the 7.0.2beta without it being able to
999   compile under Linux. gethostbyname_r() and gethostbyaddr_r() turned out to
1000   feature a different amount of arguments on different systems so I had to add
1001   a configure check for this and adjust the code slightly.
1002
1003 Version 7.0.2beta
1004
1005 Daniel (29 May 2000)
1006 - Corrected the bits.* assignments when using CURLOPT options that only
1007   toggles one of those bits.
1008
1009 - Applied the huge patches from David LeBlanc <dleblanc at qnx.com> that add
1010   usage of the gethostbyname_r() and similar functions in case they're around,
1011   since that make libcurl much better threadsafe in many systems (such as
1012   solaris). I added the checks for these functions to the configure script.
1013
1014   I can't explain why, but the inet_ntoa_r() function did not appear in my
1015   Solaris include files, I had to add my own include file for this for now.
1016
1017 Daniel (22 May 2000)
1018 - Jörn Hartroth brought me fixes to make the win32 version compile properly as
1019   well as a rename of the 'interface' field in the urldata struct, as it seems
1020   to be reserved in some gcc versions!
1021
1022 - Rich Gray struck back with yet some portability reports. Data General DG/UX
1023   needed a little fix in lib/ldap.c since it doesn't have RTLD_GLOBAL defined.
1024   More fixes are expected as a result of Richies very helpful work.
1025
1026 Version 7.0.1beta
1027
1028 Daniel (21 May 2000)
1029 - Updated lots of #defines, enums and variable type names in the library. No
1030   more weird URG or URLTAG prefixes. All types and names should be curl-
1031   prefixed to avoid name space clashes. The FLAGS-parameter to the former
1032   curl_urlget() has been converted into a bunch of flags to use in separate
1033   setopt calls. I'm still focusing on the easy-interface, as the curl tool is
1034   now using that.
1035
1036 - Bjorn Reese has provided me with an asynchronous name resolver that I plan
1037   to use in upcoming versions of curl to be able to gracefully timeout name
1038   lookups.
1039
1040 Version 7.0beta
1041
1042 Daniel (18 May 2000)
1043 - Introduced LIBCURL_VERSION_NUM to the curl.h include file to better allow
1044   source codes to be dependent on the lib version. This define is now set to
1045   a dexadecimal number, with 8 bits each for major number, minor number and
1046   patch number. In other words, version 1.2.3 would make it 0x010203. It also
1047   makes a larger number a newer version.
1048
1049 Daniel (17 May 2000)
1050 - Martin Kammerhofer correctly pointed out several flaws in the FTP range
1051   option. I corrected them.
1052 - Removed the win32 winsock init crap from the lib to the src/main.c file
1053   in the application instead. They can't be in the lib, especially not for
1054   multithreaded purposes.
1055
1056 Daniel (16 May 2000)
1057 - Rewrote the src/main.c source to use the new easy-interface to libcurl 7.
1058   There is still more work to do, but the first step is now taken.
1059   <curl/easy.h> is the include file to use.
1060
1061 Daniel (14 May 2000)
1062 - FTP URLs are now treated slightly different, more according to RFC 1738.
1063 - FTP sessions are now performed differently, with CWD commands to change
1064   directory instead of RETR/STOR/LIST with the full path. Discussions with
1065   Rich Gray made me notice these problems.
1066 - Janne Johansson discovered and corrected a buffer overflow in the
1067   src/usrglob.c file.
1068 - I had to add a lib/strequal.c file for doing case insensitive string
1069   compares on all platforms.
1070
1071 Daniel (8 May 2000):
1072 - Been working lots on the new lib.
1073 - Together with Rich Gray, I've tried to adjust the configure script to work
1074   better on the NCR MP-RAS Unix.
1075
1076 Daniel (2 May 2000):
1077 - Albert Chin-A-Young pointed out that I had a few too many instructions in
1078   configure.in that didn't do any good.
1079
1080 Daniel (24 April 2000):
1081 - Added a new paragraph to the FAQ about what to do when configure can't
1082   find OpenSSL even though it is installed. Supplied by Bob Allison
1083
1084 Daniel (12 April 2000):
1085 - Started messing around big-time to convert the old library interface to a
1086   better one...
1087
1088 Daniel (8 April 2000):
1089 - Made the progress bar look better for file sizes between 9999 kilobytes
1090   and 100 megabytes. They're now displayed XX.XM.
1091 - I also noticed that ftp fetches through HTTP proxies didn't add the user
1092   agent string. It does now.
1093 - Habibie <habibie at MailandNews.com> supplied a pretty good way to build RPMs
1094   on a Linux machine. It still a) requires me to be root to do it, b) leaves
1095   the rpm packages laying at some odd place on my disk c) doesn't work to
1096   build the ssl version of curl since I didn't install openssl from an rpm
1097   package so now the rpm crap thinks I don't have openssl and refuses to build
1098   a package that depends on ssl... Did I mention I don't get along with RPM?
1099 - Once again I received a bug report about autoconf not setting -L prior to -l
1100   on the command line when checking for libs. In this case it made the native
1101   cc compiler on Solaris 7 to fail the OpenSSL check. This has previously been
1102   reported to cause problems on HP-UX and is a known flaw in autoconf 2.13. It
1103   is a pity there's no newer release around...
1104
1105 Daniel (4 April 2000):
1106 - Marco G. Salvagno supplied me with two fixes that
1107   appearantly makes the OS/2 port work better with multiple URLs.
1108
1109 Daniel (2 April 2000):
1110 - Another Location: fix. This time, when curl connected to a port and then
1111   followed a location with an absolute URL to another port, it misbehaved.
1112
1113 Daniel (27 March 2000):
1114 - H. Daphne Luong pointed out that curl was wrongly
1115   messing up the proxy string when fetching a document through a http proxy,
1116   which screwed up multiple fetches such as in location: followings.
1117
1118 Daniel (23 March 2000):
1119 - Marco G. Salvagno corrected my badly applied patch he
1120   actually already told me about!
1121
1122 - H. Daphne Luong brought me a fix that now makes curl
1123   ignore select() errors in the download if errno is EINTR, which turns out to
1124   happen every now and then when using libcurl multi-threaded...
1125
1126 Daniel (22 March 2000):
1127 - Wham Bang supplied a couple of win32 fixes. HAVE_UNAME
1128   was accidentally #defined in config-win32.h, which it shouldn't have been.
1129   The HAVE_UNISTD_H is not defined when compiling with the Makefile.vc6
1130   makefile for MS VC++.
1131
1132 Daniel (21 March 2000):
1133 - I removed the AC_PROG_INSTALL macro from configure.in, since it appears that
1134   one of the AM_* macros searches for a BSD compatible install already. Janne
1135   Johansson made me aware of this.
1136
1137 Version 6.5.2
1138
1139 Daniel (21 March 2000):
1140 - Paul Harrington quickly pointed out to me that 6.5.1
1141   crashes hard. I upload 6.5.2 now as quickly as possible! The problem was
1142   the -D adjustments in src/main.c.
1143
1144 Version 6.5.1
1145
1146 Daniel (20 March 2000):
1147 - An anonymous post on sourceforge correctly pointed out a possible buffer
1148   overflow in the curl_unescape() function for URL conversions. The main
1149   problem with this bug is that the ftp download uses that function and this
1150   single- byte overflow could lead to very odd bugs (as one reported by Janne
1151   Johansson).
1152
1153 Daniel (19 March 2000):
1154 - Marco G. Salvagno supplied me with a series of patches
1155   that now allows curl to get compiled on OS/2. It even includes a section in
1156   the INSTALL file. Very nice job!
1157
1158 Daniel (17 March 2000):
1159 - Wham Bang supplied a patch for the lib/Makefile.vc6
1160   file. We still need some fixes for the config-win32.h since it appears that
1161   VC++ and mingw32 have different opinions about (at least) unistd.h's
1162   existence.
1163
1164 Daniel (15 March 2000):
1165 - I modified the -D/--dump-header workings so that it doesn't write anything
1166   to the file until it needs to. This way, you can actually use -b and -D
1167   on the same file if you want repeated invokes to store and read the cookies
1168   in that one single file.
1169
1170 - Poked around in lots of texts. Added the BUGS file for bug reporting stuff.
1171   Added the classic HTTP POST question to the FAQ, removed some #ifdef WIN32
1172   stuff from the sources (they're covered by the config-win32.h now).
1173
1174 - Pascal Gaudette fixed a missing ldap.c problem in the
1175   Makefile.vc6 file. He also addressed a problem in src/config-win32.h.
1176
1177 Daniel (14 March 2000):
1178 - Paul Harrington pointed out that the 'http_code' variable in the -w output
1179   was never written. I fixed it now.
1180
1181 - Janne Johansson reported the complaints that OpenBSD does
1182   when getdate.c #includes malloc.h. It claims stdlib.h should be included
1183   instead. I added #ifdef HAVE_MALLOC_H code in getdate.y and two checks in
1184   the configure.in for malloc.h and stdlib.h.
1185
1186 Version 6.5
1187
1188 Daniel (13 March 2000):
1189 - <curl at spam.wolvesbane.net> pointed out that the way curl sent cookies in a
1190   single line wasn't enjoyed by IIS4.0 servers. In my view, that is not what
1191   the standards say, but I added a white space between the name/value pairs to
1192   perhaps make them work better.
1193
1194 - Added the perl check back in the configure.in again since the mkhelp.pl
1195   script needs it!
1196
1197 - Made some beautifications in the curl man page.
1198
1199 Daniel (3 March 2000):
1200 - Jörn helped me update the config-win32.h files with HAVE_SETVBUF and
1201   HAVE_STRDUP.
1202
1203 Daniel (3 March 2000):
1204 - Uploaded the 6.5pre2 package.
1205
1206 Daniel (2 March 2000):
1207 - Removed the perl-programs from the distribution, they never made many people
1208   happy and I'll still keep them available on the web.
1209
1210 - Added the -w and -N stuff to the man page. Documented the new progress meter
1211   display in README.curl.
1212
1213 - Jörn Hartroth, Chris <cbayliss at csc.come> and Ulf
1214   Möller from the openssl development team helped bringing me the details for
1215   fixing an OpenSSL usage flaw. It became apparent when they released openssl
1216   0.9.5 since that barfed on curl's bad behavior (not seeding a random number
1217   thing).
1218
1219 - Yet another option: -N/--no-buffer disables buffering in the output stream.
1220   Probably most useful for very slow transfers when you really want to get
1221   every byte curl receives within some preferred time. Andrew <tmr at gci.net>
1222   suggested this.
1223
1224 - Damien Adant mailed me his fixes for making curl compile on Ultrix.
1225
1226 Daniel (24 February 2000):
1227 - Applied Jörn Hartroth's fixes for config-win32.h and lib/Makefile.w32.
1228
1229   I should also make a note here, if nothing else to myself, that when using
1230   the %-syntax for variables in DOS command prompts, you must use two %-
1231   letters for each one since that is an escape letter there! Maybe I should
1232   use another letter instead!
1233
1234 - Added more variables to -w:
1235
1236   'http_code'
1237   'time_namelookup'
1238   'time_connect'
1239   'time_pretransfer'
1240   'url_effective'
1241
1242 - Made -w@filename read the syntax from a file and -w@- reads the syntax from
1243   stdin in the good old "standard" curl way.
1244
1245 Daniel (22 February 2000):
1246 - Released a 6.5pre1 version to get some test and user feedback.
1247
1248 Daniel (21 February 2000):
1249
1250 - I added the -w/--write-out flag and some variables to go with it. -w is a
1251   single string, whatever you enter there will be written out when curl has
1252   completed a successful request. There are some variable substitutions and
1253   they are specified as '%{variable}' (without the quotes). Variables that
1254   exist as of this moment are:
1255
1256         total_time     - total transfer time in seconds (with 2 decimals)
1257         size_download  - total downloaded amount of bytes
1258         size_upload    - total uploaded amount of bytes
1259         speed_download - the average speed of the entire download
1260         speed_upload   - the average speed of the entire upload
1261
1262   I will of course add more variables, but I need input on these and others.
1263
1264 - It struck me that the -# progress bar will be hard to just apply on the new
1265   progress bar concept. I need some feedback on this before that'll get re-
1266   introduced! :-/
1267
1268 Daniel (16 February 2000):
1269 - Jörn Hartroth brought me some fixes for the progress meter and I continued
1270   working on it. It seems to work for http download, http post, ftp download
1271   and ftp upload. It should be a pretty good test it works generally good.
1272
1273 - Still need to add the -# progress bar into the new style progress interface.
1274
1275 - Gonna have a go at my new output option parameter next.
1276
1277 Daniel (15 February 2000):
1278 - The progress meter stuff is slowly taking place. There's more left before it
1279   is working ok and everything is tested, but we're reaching there. Slowly!
1280
1281 Daniel (11 February 2000):
1282 - Paul Marquis fixed the config file parsing of curl to
1283   deal with any-length lines, removing the previous limit of 4K.
1284
1285 - Eetu Ojanen's suggestion of supporting the @-style for -b
1286   is implemented. Now -b@<filename> works as well as the old style. -b@- also
1287   similarly reads the cookies from stdin.
1288
1289 - Reminder: -D should not write to the file until it needs to, in the same way
1290   -o does. That would enable curl to use -b and -D on the same file...
1291
1292 - Ellis Pritchard made getdate.y work for MacOS X.
1293
1294 - Paul Harrington helped me out finding the crash in the
1295   cookie parser. He also pointed out curl's habit of sending empty cookies to
1296   the server.
1297
1298 Daniel (8 February 2000):
1299  - Ron Zapp corrected a problem in src/urlglob.c that
1300    prevented curl from getting compiled on sunos 4. The problem had to do
1301    with the difference in sprintf() return code types.
1302
1303  - Transfer() should now be able to download and upload simultaneously. Let's
1304    do some progress meter fixes later this week.
1305
1306 Daniel (31 January 2000):
1307  - Paul Harrington found another core dump in the cookie
1308    parser. Curl doesn't properly recognize the 'version' keyword and I think
1309    that is what caused this. I need to refresh some specs on cookies and see
1310    what else curl lacks to improve this a bit more once and for all.
1311
1312    RFC 2109 clearly specifies how cookies should be dealt with when they are
1313    compliant with that spec. I don't think many servers are though...
1314
1315  - Mark W. Eichin found that while curl is uploading a form
1316    to a web site, it doesn't read incoming data why it'll hang after a while
1317    since the socket "pipe" becomes full.
1318
1319    It took me two hours to rewrite Download() and Upload() into the new
1320    single function Transfer(). It even seems to work! More testing is required
1321    of course... I should get the header-sending together in a kind of queue
1322    and let them get "uploaded" in Transfer() as well.
1323
1324  - Zhibiao Wu pointed out a curl bug in the location: area,
1325    although I did not get a reproducible way to do this why I have to wait
1326    with fixing anything.
1327
1328  - Bob Schader suggested I should implement resume
1329    support for the HTTP PUT operation, and as I think it is a valid suggestion
1330    I'll work on it.
1331
1332 Daniel (25 January 2000):
1333  - M Travis Obenhaus pointed out a manual mixup with -y and -Y that was
1334    corrected.
1335
1336  - Jens Schleusener pointed out a problem to compile
1337    curl on AIX 4.1.4 and gave me a solution. This problem was already fixed
1338    by Jörn's recent #include modifications!
1339
1340 Daniel (19 January 2000):
1341  - Oskar Liljeblad pointed out and corrected a problem
1342    in the Location: following system that made curl following a location: to a
1343    different protocol to fail.
1344
1345    At January 31st I re-considered this fix and the surrounding source code. I
1346    could not really see that the patch did any difference, why I removed it
1347    again for further research and debugging. (It disabled location: following
1348    on server not running on default ports.)
1349
1350  - Jörn Hartroth brought a fix that once again
1351    made it possible to select progress bar.
1352
1353  - Jörn also fixed a few include problems.
1354
1355 Version 6.4
1356
1357 Daniel (17 January 2000):
1358  - Based on suggestions from Björn Stenberg, I made the
1359    progress deal better with larger files and added a "Time" field which shows
1360    the time spent on the download so far.
1361  - I'm now using the CVS repository on sourceforge.net, which also allows web
1362    browsing. See http://curl.haxx.nu.
1363
1364 Daniel (10 January 2000):
1365  - Renumbered some enums in curl/curl.h since tag number 35 was used twice!
1366  - Added "postquote" support to the ftp section that enables post-ftp-transfer
1367    quote commands.
1368  - Now made the -Q/--quote parameter recognize '-' as a prefix, which means
1369    that command will be issued AFTER a successful ftp transfer. This can of
1370    course be used to delete or rename a file after it has been uploaded or
1371    downloaded. Use your imagination! ;-)
1372  - Since I do the main development on solaris 2.6 now, I had to download and
1373    install GNU groff to generate the hugehelp.c file. The solaris nroff cores
1374    on the man page! So, in order to make the solaris configure script find a
1375    better result I made gnroff get checked prior to the regular nroff.
1376  - Added all the curl exit codes to the man page.
1377  - Jim Gallagher properly tracked down a bug in autoconf
1378    2.13. The AC_CHECK_LIB() macro wrongfully uses the -l flag before the -L
1379    flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks
1380    and therefore you can't make the configure script find the openssl libs!
1381