The error buffer was not getting filled when Curl_wait_for_resolv() fails.
[platform/upstream/curl.git] / CHANGES.2001
1 Daniel (20 December 2001)
2 - Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause
3   libcurl to hang on transfers over proxy, when the proxy was specified with
4   an environment variable!
5
6 - Added code to make ftp operations treat the NO_BODY and HEADERS options
7   better:
8
9    NO_BODY set TRUE and HEADERS set TRUE:
10     Return a set of headers with file info
11
12    NO_BODY set FALSE
13     Transfer data as usual, HEADERS is ignored
14
15    NO_BODY set TRUE and HEADERS set FALSE
16     Don't transfer any data, don't return any headers. Just perform the set
17     of FTP commands.
18
19 Daniel (17 December 2001)
20 - Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
21   made libcurl support it! This allows libcurl to do SSL connections with the
22   private key stored in external hardware.
23
24   To make this good, he had to add a bunch of new library options that'll be
25   useful to others as well:
26
27    CURLOPT_SSLCERTTYPE  set SSL cert type (PEM/DER)
28    CURLOPT_SSLKEY       set SSL private key (file)
29    CURLOPT_SSLKEYTYPE:  set SSL key type (PEM/DER/ENG)
30    CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
31                           (CURLOPT_SSLCERTPASSWD is an alias)
32    CURLOPT_SSLENGINE:   set the name of the crypto engine
33                         (returns CURLE_SSL_ENGINE_NOTFOUND on error)
34    CURLOPT_SSLENGINE_DEFAULT: set the default engine
35
36   There are two new failure codes:
37
38    CURLE_SSL_ENGINE_NOTFOUND
39    CURLE_SSL_ENGINE_SETFAILED
40
41 Daniel (14 December 2001)
42 - We have "branched" the source-tree at a few places. Checkout the CVS sources
43   with the 'multi-dev' label to get the latest multi interface development
44   tree. The idea is to only branch affected files and to restrict the branch
45   to the v8 multi interface development only.
46
47   *NOTE* that if we get bug reports and patches etc, we might need to apply
48   them in both branches!
49
50   The multi-dev branch is what we are gonna use as main branch in the future
51   if it turns out successful. Thus, we must maintain both now in case we need
52   them. The current main branch will be used if we want to release a 7.9.3 or
53   perhaps a 7.10 release before version 8. Which is very likely.
54
55 - Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
56   curl_formadd(), that lets an application add a set of headers for that
57   particular part in a multipart/form-post. He also provided a section to the
58   man page that describes the new option.
59
60 Daniel (11 December 2001)
61 - Ben Greear made me aware of the fact that the Curl_failf() usage internally
62   was a bit sloppy with adding newlines or not to the error messages. Let's
63   once and for all say that they do not belong there!
64
65 - When uploading files with -T to give a local file name, and you end the URL
66   with a slash to have the local file name used remote too, we now no longer
67   use the local directory as well. Only the file part of the -T file name
68   will be appended to the right of the slash in the URL.
69
70 Daniel (7 December 2001)
71 - Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the
72   link failed. Added a configure check and corrected source code.
73
74 Version 7.9.2
75
76 Daniel (5 December 2001)
77 - Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then
78   on the same handle used CURLOPT_HTTPGET it would still attempt to upload.
79   His suggested fix was perfect.
80
81 Daniel (4 December 2001)
82 - Incorporated more macos fixes and added four specific files in a new
83   subdirectory below src.
84
85 Daniel (3 December 2001)
86 - Eric Lavigne reported two problems:
87
88   First one in the curl_strnequal() function. I think this problem is rather
89   macos 9 specific, as most platform provides a function to use instead of the
90   one provided by libcurl.
91
92   A second, more important, was in the way we take care of FTP responses. The
93   code would read a large chunk of data and search for the end-of-response
94   line within that chunk. When found, it would just skip the rest of the
95   data. However, when the network connections are special, or perhaps the
96   server is, we could actually get more than one response in that chunk of
97   data so that when the next invoke to this function was done, the response
98   had already been read and thrown away. Now, we cache the data not used in
99   one call, as it could be useful in the subsequent call. Test case 126 was
100   added and the test ftp server modified, to exercise this particular case.
101
102 Version 7.9.2-pre8
103
104 Daniel (2 December 2001)
105 - Bug report #487825 correctly identified a problem when using a proxy and
106   following a redirection from HTTP to HTTPS. libcurl then re-used the same
107   proxy connection but without doing a proper HTTPS request.
108
109 - Fixed win32 compiling quirks.
110
111 Version 7.9.2-pre7
112
113 Daniel (30 November 2001)
114 - Documented --disable-epsv and CURLOPT_FTP_USE_EPSV.
115
116 Daniel (29 November 2001)
117 - Added --disable-epsv as an option. When used, curl won't attempt to use the
118   EPSV command when doing passive FTP downloads. Wrote a test case for it.
119
120 - Eric provided a few more fixes for building on Macs. He also pointed out
121   a flaw in the signal handler restoration code.
122
123 Daniel (28 November 2001)
124 - Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
125   only when using VERBOSE ftp transfers. Do we use a too small buffer for
126   gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the
127   hostent struct must be blanked before use? With Dimitris help and these
128   patches, the problems seem to be history.
129
130 - CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl
131   from using the EPSV command before trying the normal PASV. Heikki Korpela
132   pointed out that some firewalls and similar don't like the EPSV so we must
133   be able to shut if off to work everywhere.
134
135 - I added a configure check for 'in_addr_t' and made the ftp code use that to
136   receive the inet_addr() return code in. Works on Solaris and Linux at
137   least. The Linux man page for inet_addr() doesn't even mention in_addr_t...
138
139 - Adjusted (almost) all FTP tests to the new command sequence.
140
141 - FTP command sequence changes:
142
143   EPSV is now always attempted before PASV. It is the final touch to make IPv6
144   passive FTP downloads to work, but EPSV is not restricted to IPv6 but works
145   fine with IPv4 too on the servers that support it.
146
147   SIZE is now always issued before RETR. It makes curl know the actual
148   download size before the download takes place, as it makes it less important
149   to find the size sent in RETR responses. Many sites don't include the size
150   in there.
151
152   Both these changes made it necessary to change the test suite's ftp server
153   code, and all FTP test cases need to be checked and adjusted!
154
155 Daniel (27 November 2001)
156 - Hans Steegers pointed out that the telnet code read from stdout, not stdin
157   as it is supposed to do!
158
159 Version 7.9.2-pre6
160
161 Daniel (27 November 2001)
162 - Eric Lavigne's minor changes to build on MacOS before OS X were applied.
163
164 - greep at mindspring.com provided a main index.html page for our release
165   archive docs directory. It just links to all the existing HTML files, but
166   I think it may come useful to people.
167
168 - There's now some initial code to support the EPSV FTP command. That should
169   be used to do passive transfers IPv6-style. The code is still #if 0'ed in
170   lib/ftp.c as I have no IPv6 ftp server to test this with.
171
172 Daniel (26 November 2001)
173 - Robert Schlabbach had problems to understand how to do resumed transfers,
174   and I clarified the man page -C section somewhat.
175
176 Version 7.9.2-pre5
177
178 Daniel (22 November 2001)
179 - Andrés García helped me out to track down the roots of bug report #479537,
180   which was concerning curl returning the wrong error code when failing to
181   connect. This didn't happen on all systems, and more specificly I've so far
182   only seen this happen on IPv4-only Linux hosts.
183
184 - I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS
185   port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP
186   response reader function. The latter write is however likely to occur in our
187   own buffer unless very big FTP server replies (>25K) are read. I've never
188   seen such a reply ever, so I think this is a relatively minor risk.
189
190 Daniel (21 November 2001)
191 - Moonesamy provided code to prevent junk from being output when libcurl
192   returns an error code but no error description and that corrects how make is
193   run in the Makefile.dist file (that appears as root Makefile in release
194   archives).
195
196 - Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS
197   (non-X).
198
199 - Kevin Roth modified the cygwin files once again, now to build against the
200   shared OpenSSL DLLs.
201
202 Version 7.9.2-pre4
203
204 Daniel (20 November 2001)
205 - Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME,
206   complete with man page updates!
207
208 Daniel (19 November 2001)
209 - Miklos Nemeth provided details enough to update the Borland makefile
210   properly.
211
212 - Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm
213   amazed we never saw this before!
214
215 - Kevin Roth patched the cygwin Makfile.
216
217 Daniel (16 November 2001)
218 - Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing
219   HTTP.
220
221 Version 7.9.2-pre3
222
223 Daniel (14 November 2001)
224 - Samuel Listopad patched away the problem with SSL we got when someone call
225   curl_global_init() => curl_global_cleanup() => curl_global_init(). The
226   second init would not "take" and SSL would be unusable with curl from that
227   point. This doesn't change the fact that calling the functions that way is
228   wrong. curl_global_init() should be called exactly once and not more.
229
230 Daniel (13 November 2001)
231 - Fixed some minor variable type mixups in ftp.c that caused compiler warnings
232   on HP-UX 11.00.
233
234 - The FTP fix I did yesterday used an uninitialized variable that caused
235   spurious errors when doing FTP.
236
237 Version 7.9.2-pre2
238
239 Daniel (12 November 2001)
240 - Ricardo Cadime fell over a multiple-requests problem when first a FTP
241   directory fetch failed and then a second request is made after that. The
242   second request happened to get the FTP server response back from the
243   previous request, when it did its initial CWD command.
244
245 - Bjorn Reese pointed out that we could improve the time diff function to
246   prevent truncation a bit.
247
248 - Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't
249   work for plain HTTP requests! So I made that work.
250
251 Version 7.9.2-pre1
252
253 Daniel (12 November 2001)
254 - Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot
255   faster, it should also support such ("broken") proxies that John Lask
256   previously have reported problems with. His proxy sends a trailing zero byte
257   after the end of the (proxy-) headers. I've tested this myself and it seems
258   to work on a proxy the previous version also worked with...! This rewrite is
259   due to the problems John Lask previously experienced.
260
261 - Andrés García found out why the "current speed" meter sometimes showed 2048K
262   for very quick transfers. It turned out the "time diff"-function returned a
263   zero millisecond diff. We now always say it is at least one millisecond! In
264   reality, these timers very rarely have that good resolution so even though
265   the time diff was longer than 1 millisecond, it was reported as no diff.
266
267 - I also modified the getinfo() again when returning times, as Paul Harrington
268   reports that 7.9.1 only returns times with 1 second accuracy, which indeed
269   is wrong.
270
271 Daniel (8 November 2001)
272 - Marcus Webster found out that curl_formadd() could read one byte outside a
273   buffer boundary, which then of course could lead to a crash. Marcus also
274   gracefully provided a patch for this this.
275
276 - Glen Scott ran configure on his Cobalt Qube and it didn't figure out the
277   correct way of calling gethostbyname_r() and thus failed to resolve hosts.
278   This is two errors: it shouldn't continue the configure script if it finds
279   gethostbyname_r() but can't figure out how to use it, and it should really
280   figure out how to use it as it was running Linux and we know how that
281   works...
282  
283 Daniel (7 November 2001)
284 - docs/VERSIONS is a new file in the archive that explains the version number
285   system we use in the curl project.
286
287 - Did some more fixes that now makes libcurl only ignore signals as long as
288   it needs to, and then restore (if any) previous signal handler again.
289
290 Daniel (6 November 2001)
291 - Enrik Berkhan posted bug report #478780, in which he very correctly pointed
292   out two bad timeout matters in libcurl: we didn't restore the sigaction
293   struct (the alarm handler for SIGALRM) nor did we restore the previous
294   alarm() timeout that could've been set by a "parent" process or similar.
295
296 - Kevin Roth made the cygwin binary get stripped before install.
297
298 Daniel (5 November 2001)
299 - Detlef Schmier reported that curl didn't compile using Solaris 8 with the
300   native cc compiler. It was due to a bad function prototype. Fixed now.
301   Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds
302   though, as gcc then complains like crazy on OpenSSL include files... :-(
303
304 - John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking
305   to work on all platforms.
306
307 - John Lask added the -1/--TLSv1 options that forces SSL into using TLS
308   version 1 when speaking HTTPS.
309
310 - John Lask brought a brand new VC++ makefile for the lib directory, that
311   works a lot better than the previous!
312
313 - Ramana Mokkapati brought some clever insights on the LDAP failures (bug
314   report #475407), and his suggested changes are now applied.
315
316 Version 7.9.1
317
318 Daniel (4 November 2001)
319 - I've added a number of new test cases the last few days. A few of them since
320   I got reports that hinted on problems on timeouts, so I added four tests
321   with timeouts for all sorts of protocols and stuff. I also came to think of
322   a few other error scenarios that we currently didn't test properly, so I
323   wrote up tests for a few of those too.
324
325 Daniel (2 November 2001)
326 - Replaced read() and write() with recv() and send() for socket operations
327   even under normal unixes.
328
329 Daniel (1 November 2001)
330 - When an FTP transfer was aborted due to a timeout, it wasn't really aware of
331   how many bytes that had been transferred and the error text always said 0
332   bytes. I modified this to output the actually transferred amount! :-)
333
334 - The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also
335   added more comments in the lib/ftp.c source file.
336
337 - Minor updates to the FAQ, added a brand new section to the web site about
338   the name issue (who owns "curl"? will someone sue us? etc etc):
339   http://curl.haxx.se/legal/thename.html
340
341 Version 7.9.1-pre7
342
343 Daniel (31 October 2001)
344 - The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
345   the calculations used longs instead of doubles! Paul Harrington reported.
346
347 - The SSL SocketIsDead() checks weren't good enough (as expected really), so I
348   had to add a generic internal try-it-out system. If the request on a re-used
349   connection seems to fail, then we go back and get a new (fresh) connection
350   and re-tries the request on that instead. It kind of makes the
351   SocketIsDead() check obsolete, but I think it is a quicker way for those
352   cases where it actually discovers that the connection is dead.
353
354 - When fixing the above, I noticed that we did quite a few writes to sockets
355   in libcurl where we didn't check the return code (that it actually worked to
356   send the data). With the new "attempted request" system we must detect those
357   situations so I went over a bunch of functions, changed return types and
358   added checks for what they actually return.
359
360 Version 7.9.1-pre6
361
362 Daniel (31 October 2001)
363 - Paul Harrington detected a problem with persistant SSL connections. Or to be
364   more exact, we didn't properly detect that the connection was dead and then
365   a second connection would try to re-use it wrongly. The solution to this
366   problem is still not very clear and I'm working on it. One OpenSSL insider
367   said there is no way to know if the SSL connection is alive or not without
368   actually trying an operation.
369
370 Daniel (30 October 2001)
371 - If a cookie was read from a file, it could accidentally strdup() a NULL
372   pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26]
373
374 - The MANUAL file now documents -t correctly. I also fixed the -T description
375   in the curl.1 man page.
376
377 Daniel (29 October 2001)
378 - John Janssen found out that curl_formadd was missing in the libcurl.def file
379   and that the docs stated the wrong return type for the function.
380
381 - Andrés García found a bug with multiple files in the curl_formadd() function,
382   that I removed with this patch [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/formdata.c.diff?r1=1.25&r2=1.26].
383
384 - Kevin Roth brought another patch that moved the cygwin package files to the
385   packages/Win32/cygwin directory.
386
387 - A bug in the connection re-use logic made repeated requests to the same FTP
388   server (when using name+pasword in the URL) sometimes use more than one
389   connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167]
390
391 - Moonesamy tracked down and fixed a problem with the new 7.9.1 connect
392   code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release
393   (test 19)...
394   [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14]
395
396 Daniel (26 October 2001)
397 - Added test28 which verifies that "Location:"-following works even if the
398   contents is separated with more than one space.
399
400 Daniel (25 October 2001)
401 - Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the
402   correct data has been output.
403
404 Version 7.9.1-pre5
405
406 Daniel (24 October 2001)
407 - T. Bharath found a memory leak in the cookie engine. When we update a cookie
408   that we already knew about, we lost a chunk of memory in the progress... The
409   brand new test case 27 now tests for this occurrence. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.24&r2=1.25]
410
411 Daniel (23 October 2001)
412 - pack_hostent() didn't properly align some pointers, so at least SPARC CPUs
413   would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35]
414
415 Daniel (22 October 2001)
416 - Tom Benoist reported that this SGI IRIX compiler didn't handle indented
417   preprocessor instructions, so they're no longer in the source code!
418
419 - Applied Kevin Roth's patches to make it easier to build cygwin packages from
420   the out-of-the-box curl release archives.
421
422 - I forgot to mention it below, but libcurl now closes connections that report
423   transfer failures. Unconditionally. This could be made more nicely in the
424   future if we set a flag or something that the connection is still good to be
425   used for the errors that know that for a fact. We have to close the
426   connection for the cases where we abort for example a HTTP transfer in the
427   middle, or otherwise we might re-use that connection later with lots of data
428   still being sent to us on it. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.63&r2=1.64]
429
430 Daniel (19 October 2001)
431 - CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return
432   anything, not even a header. test case 37 was added to test for this.
433
434 - T. Bharath made curl_easy_duphandle() properly clone the cookie status as
435   well.
436
437 Version 7.9.1-pre4
438
439 Daniel (18 October 2001)
440 - CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if
441   the HTTP return code is below 400.
442
443 Daniel (17 October 2001)
444 - The test suite now kills any running test http server when you re-start the
445   tests.
446
447 - We had to remove 'use strict' from two perl scripts, as the cygwin
448   adjustments didn't play nicely otherwise for some reason. Any perl wizard
449   out there who can put the scrict back and still make it run good on unix and
450   cygwin?
451
452 - A potential memory leak pointed out to us by Yanick Pelletier was removed.
453   It would occur when a http file transfer fails. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/transfer.c.diff?r1=1.60&r2=1.61]
454
455 - The memory debugging system should no longer display anything to stderr
456   if the curl_memdebug() hasn't been used to explicitly say so. This makes it
457   easier to use the memory debug system and switch the logging on/off.
458
459 Daniel (16 October 2001)
460 - Kevin Roth provided fixes for building curl nicer in cygwin environments.
461
462 Daniel (12 October 2001)
463 - Cleaning up the progress meter/info code. The "current speed" is now more
464   accurate than before as we now use the true time spent between the measures,
465   and not just "assuming" every-second-update like before. The output should
466   now also be of the same width at all times, never to show "extra" zeroes on
467   the right edge.
468
469 - After talking about possible Location: bugs on the mailing list, I modified
470   the "absolute URL" checker in lib/transfer.c to be more strict when checking
471   if the redirected URL is absolute.
472
473 Daniel (11 October 2001)
474 - Kevin Roth provided patches that make the test suite run fine on Windows
475   2000 running cygwin.
476
477 Daniel (10 October 2001)
478 - Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser.
479   Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work.
480
481 Version 7.9.1-pre3
482
483 Daniel (9 October 2001)
484 - Added a new option to the command line client: -0/--http1.0. It uses the new
485   libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0
486   requests instead of the default version (1.1). It should only be used if you
487   really MUST do that because of a silly remote server.
488
489 - Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as
490   all public curl-symbols should.
491
492 - libcurl now explicitly ignores the SIGPIPE signal.
493
494 Daniel (8 October 2001)
495 - Kevin Roth's change to the cookie-jar comment (in the stored file) was
496   applied.
497
498 - Lucas Adamski's minor bug in the bind error code failf() was fixed.
499
500 Daniel (5 October 2001)
501 - Moonesamy fixed the Curl_connecthost() function to not give compiler errors
502   on a bunch of compilers, due to the argument named 'socket'.
503
504 - Moonesamy also provided updated VC++ makefiles and project files.
505
506 Version 7.9.1-pre2
507
508 Daniel (4 October 2001)
509 - Albert Chin provided a configure patch that makes the script detect proper
510   gethostbyname_r() method without actually running any code, only compiling
511   is necessary. This also removes the need of having a resolving 'localhost'
512   name.
513
514 - Found and removed memory leakage (name resolve data) in libcurl on
515   IPv6-enabled hosts. These could sneak through because we didn't have any
516   resource tracing on the IPv6-related functions. We do now.
517
518 Daniel (3 October 2001)
519 - Keith McGuigan patched away a (mainly Windows-) problem with the name
520   resolver data being kept in the static memory area, which is removed when a
521   thread is killed. The curl handle itself though perfectly handles being
522   passed between threads.
523
524 - Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that
525   required an Authorization: header. Now, proxies are not supposed to require
526   that header, that is for true servers...
527
528 - I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now.
529
530 Version 7.9.1-pre1
531
532 Daniel (3 October 2001)
533 - Georg Huettenegger once again made an effort beyond the call of duty and not
534   only improved the curl_formadd() function, but also took care of adjusting
535   the curl command line client to use this new function instead of the
536   obsoleted curl_formparse.
537
538 Daniel (2 October 2001)
539 - Major fix in how libcurl does TCP connects. It now does non-blocking
540   connects to enable good timeouts without signals, and it now tries all IP
541   addresses for any given host (if it resolves more than one and the first
542   one(s) don't connect). Added a new source file 'connect.c' to deal with all
543   the TCP connect stuff.
544
545 - We now support IPv4-style IP-addresses in rfc2732-format, to better support
546   people writing scripts without knowing what address there is.
547
548 Daniel (28 September 2001)
549 - Cleanups in the FTP source code. Divided the code into even more smaller
550   functions and generally tried to make the differences between IPv4 and IPv6
551   get less noticable in the sources.
552
553 - If the remote file time is not readable/accessable/understood by libcurl,
554   libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously
555   did. This should make curl not touch the file data unless there was a known
556   remote date when -R is used.
557
558 Daniel (27 September 2001)
559 - Working on getting non-blocking connects working platform independent. We
560   will also make curl try all IPs for a given host if the first one should
561   fail.
562
563 Daniel (26 September 2001)
564 - Kevin Roth provided a cookie example that proved the cookie jar
565   functionality wasn't working properly. I added test case 46 and made it
566   work.
567
568 Daniel (25 September 2001)
569 - Jörn Hartroth updated the mingw32 makefiles.
570
571 Version 7.9
572
573 Daniel (23 September 2001)
574 - Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
575   when FTP RETR failed.
576
577 - Made the FTP upload tests run fine on machines with IPv6 enabled.
578
579 Version 7.9-pre8
580
581 Daniel (19 September 2001)
582 - Vojtech Minarik set up a special-purpose test server and provided me with
583   test certificates in order for me to repeat the bug reports #440068 and
584   #440373. It turned out we didn't check all the error codes properly. We do
585   now, and connecting with a unacceptable certificate will make libcurl fail
586   to connect with an error code returned.
587
588 - Ramana Mokkapati found a case when the Location: following code did wrong.
589   I wrote a test case for this (45).
590
591 Version 7.9-pre7
592
593 Daniel (17 September 2001)
594 - Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
595   winsock 2.0.
596
597 Version 7.9-pre6
598
599 - libtool 1.4.2 is now in use!
600
601 Version 7.9-pre5
602
603 Daniel (14 September 2001)
604 - Added another 14 ftp tests.
605
606 Daniel (13 September 2001)
607 - Added curl_easy_duphandle() to the easy.h header file. It has now been
608   tested and proved to work in a real-world tests by T Bharath. We still need
609   to write up some docs for this function.
610
611 - Added four more ftp tests to the test suite.
612
613 Daniel (12 September 2001)
614 - CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
615   --ciphers. Use them to specify a list of ciphers to use in the SSL
616   connection.
617
618 - T. Bharath found a memory leak in libcurl's windows version. It turned out
619   to be the new duphandle() that didn't quite work yet.
620
621 Version 7.9-pre4
622
623 Daniel (11 September 2001)
624 - Added verbose output for SSL connections that output the server
625   certificate's start and expire dates. As suggested by Paul Harrington.
626
627 - Heikki Korpela found problems in the perl ftp server used for the test
628   suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
629   made, but nothing really certain.
630
631 - T. Bharath has experienced problems with libcurl's stack usage on windows
632   and works on reducing it.
633
634 Daniel (10 September 2001)
635 - Cris Bailiff fixed the perl interface. It stopped working since the changed
636   behavior with WRITEHEADER and NULL pointers.
637
638 - The "output cookies" function could dump core if no cookies were enabled.
639
640 Daniel (7 September 2001)
641 - SM pointed out that the SSL code didn't compile any longer if SSL was
642   disabled... Also, we needed to correct the #include for the utime stuff on
643   windows.
644
645 Daniel (6 September 2001)
646 - T. Bharath pointed out a flaw in the SSL session cache code that made it
647   sometimes read from a NULL pointer.
648
649 Version 7.9-pre3
650
651 Daniel (3 September 2001)
652 - Added the -R/--remote-time option, that uses the remote file's datestamp to
653   set the local file's datestamp. Thus, when you get a remote file your local
654   file will get the same time and date. Note that this only works when you use
655   -o or -O.
656
657 - Installed libtool 1.4.1, libtoolized and everything.
658
659 Daniel (1 September 2001)
660 - Heikki Korpela pointed out that I did not ship the proper libtool stuff in 
661   the pre-releases, even though that was my intention. libtoolize has now
662   been re-run.
663
664 - Heikki also patched away the bad use of 'make -C' in the test suite
665   makefile. make -C is not very portable and is now banned from here.
666
667 Version 7.9-pre2
668
669 Daniel (31 August 2001)
670 - I just made a huge internal struct rehaul, and all the big internally used
671   structs have been renamed, redesigned and stuff have been moved around a bit
672   to make the source easier to follow, more logically grouped and to hopefully
673   decrease future bugs. I also hope that this will make new functions to get
674   easier to add, and make it less likely that we have bugs left like the URL-
675   free bug from August 23.
676
677 Version 7.9-pre1
678
679 Daniel (29 August 2001)
680 - The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
681   that to specify the file name in which you want to have all cookies curl
682   knows of, dumped to. It'll be written using the netscape cookie format.
683
684   This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
685   which in turn dumps this information when curl_easy_cleanup() is invoked.
686   There might be reasons to re-consider my choice of putting it there. Perhaps
687   it is better placed to get done just before *_perform() is done. It is all
688   of course depending on how you guys want to use this feature...
689
690 - Added ftpupload.c in the source examples section, based on source code posted
691   by Erick Nuwendam.
692
693 Daniel (28 August 2001)
694 - Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
695   on OpenBSD and hopefully on FreeBSD as well!
696
697 - Georg Huettenegger modified the curl_formadd() functionality slightly, and
698   added support for error code 417 when doing form post and using the Expect:
699   header. Great work!
700
701 - Made some tests with cached SSL session IDs, and they seem to work. There
702   should be a significant speed improvement in the SSL connection phase, but
703   in my tiny tests it just isn't possible to notice any difference. Like other
704   caching in libcurl, you must reuse the same handle for the caching to take
705   effect. SSL session ID caching is done on a per host-name and destination
706   port number basis.
707
708   Set verbose, and you'll get informational tests when libcurl detects and
709   uses a previous SSL session ID.
710
711 - Upgraded to automake 1.5 on my development/release machine.
712
713 Daniel (27 August 2001)
714 - Slowly started writing SSL session ID caching code
715
716 Daniel (24 August 2001)
717 - T. Bharath removed compiler warnings on windows and updated the MS project
718   files.
719
720 - Kevin Roth reported two kinds of command line constructs with the new -G that
721   curl didn't really deal with the way one would like.
722
723 - Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
724   own portable version named strequal() that should be used!
725
726 - Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
727   debug object modules causing confusions.
728
729 Daniel (23 August 2001)
730 - T. Bharath accurately found a libcurl bug that would happen when doing a
731   second invoke of curl_easy_perform() with a new URL when the previous invoke
732   followed a Location: header.
733
734 - Started the improvement work on the cookie engine:
735   - Now keeps cookies in the same order as the cookie file
736   - A write to the possibly static string was removed
737   - Added a function that can output all cookies
738   - Now supports reading multiple cookie files
739
740 - Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.
741
742 - Split up the monster function in lib/ftp.c to use more smallish functions to
743   increase readability and maintainability.
744
745 Daniel (21 August 2001)
746 - Georg Huettenegger's big patch was applied. Now we have:
747   o "Expect: 100-continue" support. We will from now on send that header in
748     all rfc1867-posts, as that makes us abort much faster when the server
749     rejects our POST. Posting without the Expect: header is still possible in
750     the standard replace-internal-header style.
751   o curl_formadd() is a new formpost building function that is introduced to
752     replace the now deprecated curl_formparse() function. The latter function
753     will still hang around for a while, but the curl_formadd() is the new way
754     and correct way to build form posts.
755   o Documentation has been updated to reflect these changes
756
757   These changes are reason enough to name the next curl release 7.9...
758
759 - We now convert man pages to HTML pages and include them in the release
760   archive. For the pleasure of everyone without nroff within reach.
761
762 - Andrés García's suggested flushing of the progress meter output stream was
763   added. It should make the progress meter look better on Windows.
764
765 - Troy Engel pointed out a mistake in the configure script that made it fail
766   on many Red Hat boxes!
767
768 Daniel (20 August 2001)
769 - We need an updated libtool to make a better build environment for OpenBSD
770   as well as FreeBSD
771
772 Version 7.8.1
773
774 Daniel (20 August 2001)
775 - Brad pointed out that we ship two extra libtool files in the tarballs that
776   we really don't need to! Removing them makes the gz-archive about 60K
777   smaller!
778
779 - Albert Chin brought fixes for the configure script to detect socklen_t
780   properly as well as moving lots of our custom autoconf macros to
781   acinclude.m4.
782
783 Daniel (19 August 2001)
784 - Moonesamy improved his -G feature for host names only URLs...
785
786 Daniel (17 August 2001)
787 - Finally cleaned up the kerberos code to use Curl_ prefixes on all global
788   symbols and to not use global variables.
789
790 Version 7.8.1-pre6
791
792 Daniel (16 August 2001)
793 - S. Moonesamy added the -G option to curl, that converts the data specified
794   with -d to a GET request. Default action when using -d is POST. When -G is
795   used, the -d specified data will be appended to the URL with a '?'
796   separator. As suggested previously by Kevin Roth.
797
798 - curl-config --libs should now display all linker options required to link
799   with libcurl. It includes the path and options for libcurl itself.
800   curl-config --cflags displays the compiler option(s) needed to compile
801   source files that use libcurl functions. Basically, that sets the include
802   path correct.
803
804 Daniel (15 August 2001)
805 - Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
806   were parsed and used. (RFC2732-format)
807
808 - Bug #12733 over on php.net identified a problem in libcurl that made it core
809   dump if you used CURLOPT_POST without setting any data to post with
810   CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
811   now equals setting it to no data at all.
812
813 - Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
814   properly when used for multiple URLs on a single command line. Indeed, the
815   variable was not reset between the requests. This is now fixed.
816
817 - David James fixed the Borland makefile so that libcurl still compiles and
818   builds with that compiler.
819
820 Daniel (14 August 2001)
821 - Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.
822
823 - An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
824   windows users to curl_global_init(), that makes libcurl init the winsock
825   stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
826   with this is a comfortable shortcut to fame.
827
828 Version 7.8.1-pre5
829
830 Daniel (14 August 2001)
831 - Nico Baggus provided more feedback from his VMS porting efforts and a few
832   minor changes were necessary.
833
834 - I modified configure.in so that --enable-debug sets more picky gcc options.
835   I then removed almost all the new warnings that appeared, and by doing so I
836   corrected the size_t-treated-as-signed problem that has been discussed on
837   the mailing list previously. I also removed a bunch of the just recently
838   added #ifdef VMS lines.
839
840 - I removed the use of a global variable in the SSL code. It was once
841   necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
842   (hopefully) still work if libcurl is built against an ancient version of
843   OpenSSL.
844
845 Daniel (13 August 2001)
846 - Peter Todd posted a patch that now allows non-file rc1867-style form posts
847   to be larger than 4K.
848
849 Daniel (10 August 2001)
850 - S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile
851
852 Daniel (9 August 2001)
853 - The redirected error stream was closed before the curl_easy_cleanup() call
854   was made, and when VERBOSE was enabled, the cleanup function tried to use
855   the stream. It could lead to a segmentation fault. Also, the stream was
856   closed even if we looped to get more files.  Corrects Dustin Boswell's bug
857   report #441610
858
859 - Now generates the release configure script with autoconf 2.52
860
861 Version 7.8.1-pre4
862
863 Daniel (8 August 2001)
864 - curl -E uses a colon to separate a file name from a passphrase. This turned
865   out really bad for the windows people who wants to include a drive letter in
866   the file name like "c:\cert.pem". There's now a win32 work-around
867   implemented that tries work around that, when the colon seems to be used for
868   this kind of construct.
869
870 - Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
871   verify the server's CN field when talking https://. If --cacert is not used,
872   any failures in matching is only displayed as information (-v).
873
874 Daniel (7 August 2001)
875 - Wrote up nine more test cases, more or less converted from the former test
876   suite.
877
878 Daniel (6 August 2001)
879 - Heikki Korpela posted a patch that makes 'curl-config --libs' include the
880   directory in which libcurl itself is installed in. While this wasn't my
881   initial intention with this option, it makes sense and makes linking with
882   libcurl easier.
883
884 - Stefan Ulrich pointed out to us that other tools and libraries treat file://
885   URLs with only one slash after the host name slighly different than libcurl
886   does. Since all the others seem to agree, we better follow them.
887
888 - Nico Baggus provided us with a huge set of fixes to make curl compile and
889   build under OpenVMS.
890
891 Version 7.8.1-pre3
892
893 Daniel (6 August 2001)
894 - Jonathan Hseu noticed that you couldn't get a header callback unless you
895   set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
896   data. This is now fixed.
897
898 Daniel (5 August 2001)
899 - Sergio Ballestrero provided a patch for reading responses from NCSA httpd
900   1.5.x servers, as they return really screwed up response headers when asked
901   for with HTTP 1.1.
902
903 - curl_escape() no longer treats already encoded characters in the input
904   string especially.
905
906 Daniel (3 August 2001)
907 - I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
908   avoid the BSD annoucement clause of the license in the former file.
909
910 - Andrew Francis provided a new version of base64.c to work around the license
911   boiler plate that came with the previous one. I patched it, but the glory
912   should go to Andrew for his heads up.
913
914 - Tomasz Lacki noticed that when you do repeated transfers with libcurl you
915   couldn't always reliably change HTTP request. This has now been fixed and a
916   new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
917   requestr (back) to GET.
918
919 - Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
920   release archives. It should be now.
921
922 Daniel (2 August 2001)
923 - Frank Keeney pointed out a manual mistake for certificate convertions.
924
925 - Tomasz Lacki pointed out a problem in the transfer loop that could make the
926   select() loop use far too much CPU.
927
928 - Pawel A. Gajda pointed out an output mistake done when using libcurl's
929   progress callback.
930
931 Daniel (29 June 2001)
932 - Naveen Noel noticed that the Borland library makefile wasn't updated.
933
934 - Nic Roets brought a fix for the certificate verification when using SSL.
935
936 Daniel (27 June 2001)
937 - Made the FTP tests run OK even on machines running curl IPv6-enabled.
938
939 - Troy Engel corrected some RPM package details.
940
941 Version 7.8.1-pre2
942
943 Daniel (25 June 2001)
944 - Björn Stenberg correctly identified a problem that occurred when downloading
945   several files with curl, and using resume. The first file's resume index was
946   then used for all files, resulting in weird results...
947
948 - Anton Kalmykov provided a fix that makes curl work with form field names
949   with spaces like when -F is used.
950
951 Version 7.8.1-pre1
952
953 Daniel (20 June 2001)
954 - Mike Bytnar provided a fine report that proved that the --with-ssl option
955   for configure needed tweaking. It no longer searches the default directories
956   for OpenSSL libs or directories when a specified path is given.
957
958 Daniel (19 June 2001)
959 - When an FTP transfer is cut off during transfer, curl could present a truly
960   garbaged error message and in worst case dump core. Thanks to detailed
961   reports from Shawn Poulson we nailed this.
962
963 Daniel (12 June 2001)
964 - Salvador Dávila provided a fix for FTP range downloads.
965
966 - Added a few more test cases from the former test suite to the new file
967   format. We're now at a total of 26 tests.
968
969 Daniel (11 June 2001)
970 - libcurl's version-info was wrong, as noted by both Domenico Andreoli and
971   David Odin.
972
973 Daniel (7 June 2001)
974 - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def
975
976 - I made SSL certificate failure messages to be more detailed.
977
978 Version 7.8
979
980 Daniel (7 June 2001)
981 - SDavila provided a resumed download fix.
982
983 Version 7.8-pre4
984
985 Daniel (1 June 2001)
986 - Sterling provided some new PHP examples.
987
988 - Changed the CVS hierarchy and the older checkout instruction does no longer
989   work. We moved the entire source code into a CVS module named 'curl'.
990
991 Daniel (31 May 2001)
992 - CURLOPT_MUTE does not exist anymore. It is still present in the include file
993   to not cause compiler errors for applications using it, but it isn't used
994   anywhere in the library.
995
996 Version 7.8-pre3
997
998 Daniel (31 May 2001)
999 - Once and for all fixed the _REENTRANT mess for Solaris compiles to present
1000   less warnings.
1001
1002 - Sterling Hughes tirelessly points out and corrects my mistakes...! So,
1003   curl_global_init() now lets the argument flags *SET* what parts to
1004   init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all
1005   known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely
1006   necessary. Man page updated accordingly.
1007
1008 - Fixed the strtok.h include file as it wouldn't compile on all platforms!
1009
1010 Daniel (30 May 2001)
1011 - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were
1012   set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE
1013   option is subject for complete removal...
1014
1015 Version 7.8-pre2
1016
1017 Daniel (30 May 2001)
1018 - Cris Bailiff wrote a makefile for building Solaris packages.
1019
1020 - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and
1021   we discussed and added a few CURL_GLOBAL_* flags in include/curl.h
1022
1023 - Kjetil Jacobsen privately announced his python interface to libcurl,
1024   available at http://pycurl.sourceforge.net/
1025
1026 Daniel (29 May 2001)
1027 - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread-
1028   safe function. Now configure checks for a thread-safe version, and
1029   lib/strtok.c offers one for the systems that don't come with one included!
1030
1031 - Mettgut Jamalla correctly pointed out that the -# progress bar was written
1032   to stderr even though --stderr redirection was used. This is now corrected.
1033
1034 - I moved out the list of contributors from the curl.1 man page and made a
1035   separate docs/THANKS file. It makes the list easier to find, and made it
1036   easier for me to make a separate web page with that same information.
1037
1038   I really do want all you guys mentioned in there to feel you get the credit
1039   you deserve.
1040
1041 - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake
1042
1043 Version 7.8-pre1
1044
1045 Daniel (28 May 2001)
1046 - curl-config now supports '--vernum' that outputs a plain hexadecimal version
1047   of the libcurl version number (using 8 bits for each 3 numbers). Version
1048   7.7.4 appears as 070704
1049
1050 - Wrote man pages for curl_global_init and curl_global_cleanup...
1051
1052 - T. Bharath brought news about the usage of the OpenSSL interface that was
1053   not previously taken into consideration and thus caused libcurl to leak
1054   memory.  The only somewhat sane approach to fix this dilemma, is adding two
1055   two new functions curl_global_init() and curl_global_cleanup() that should
1056   be called *ONCE* by the application using libcurl. The init should be done
1057   only at startup, no matter how many threads the application is gonna use,
1058   and the cleanup should be called when the application has finished using
1059   libcurl completely.
1060
1061   *** UPGRADE NOTICE ***
1062
1063   If you write applications using libcurl, you really want to use the two
1064   functions mentioned above !!!
1065
1066   I can't say I think this is a very beautiful solution, but as OpenSSL
1067   insists on making lots of stuff on a "global" scope, we're forced to walk
1068   the path they point us to.
1069
1070 - Moving more test cases into the new file format.
1071
1072 Version 7.7.4-pre3
1073
1074 Daniel (23 May 2001)
1075 - Introduced a new file format for storing test cases, and thus I had to
1076   modify all the perl test scripts and more (I added a new one). I have not
1077   "ported" all the old test cases to the new format yet, but it'll come.
1078
1079   The main advantage of this new format is that all test data for each test
1080   case is stored in a single file. It gives a better overview for each test
1081   case and a lot less files.
1082
1083 - Andrés García brought a fix for the netscape/mozilla cookie file parsing
1084   function, as it turns out it doesn't always store the path!
1085
1086 Daniel (22 May 2001)
1087 - As was reported anonymously, when FAILONERROR was used, the httpcode was
1088   not stored properly and thus wasn't possibly to read after a transfer with
1089   the curl_easy_getinfo() function. This is now corrected.
1090
1091 - Installed and made use of the following tool versions:
1092     autoconf 2.50
1093     libtool 1.4
1094     automake 1.4-p1
1095
1096   I wouldn't recommend any developer to try to generate things with older
1097   versions than these. Building from CVS will probably more or less require
1098   at least these versions.
1099
1100   As a result of this, the configure script grew to more than double its
1101   previous size!
1102
1103   Arkadiusz Miskiewicz helped me by pointing out I had to remove my
1104   acinclude.m4 file before I could get it working!
1105
1106 Daniel (21 May 2001)
1107 - I made ftps:// work. Added test case 400 to the release archive, as the
1108   first ftps:// test case. Requires stunnel.
1109
1110 - Also made the test cases that runs ssl tests not run if libcurl isn't built
1111   with ssl support.
1112
1113 Daniel (19 May 2001)
1114 - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they
1115   are actually needed. Albert Chin's and Domenico Andreoli's suggestions
1116   helped out.
1117
1118 Version 7.7.4-pre2
1119
1120 Daniel (18 May 2001)
1121 - Nicer configure-check for the OpenSSL headers, which then sets the proper
1122   variable to have curl-config be good. (Albert Chin provided the fix)
1123
1124 - For systems that don't have theiw own 'strlcat()' libcurl provides its own.
1125   It was now renamed to prevent collides with other libs. (After discussions
1126   with Sterling Hughes and the implications this had on PHP builds.)
1127
1128 Daniel (17 May 2001)
1129 - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that
1130   turned out to be a problem with the debian-built 7.7.3-package that
1131   contained files from the 7.7.2 release!
1132
1133 - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to
1134   make programs that use it, not fail when compiling against this version of
1135   libcurl.
1136
1137 Daniel (14 May 2001)
1138 - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent
1139   connections.
1140
1141 Version 7.7.4-pre1
1142
1143 Daniel (14 May 2001)
1144 - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl.
1145
1146 - Added the first HTTPS test to the test suite in the release archive.
1147
1148 Daniel (12 May 2001)
1149 - Jukka Pihl suggested that if (lib)curl is told to verify the peer's
1150   certificate and the peer can't be verified, it should fail and return a
1151   proper error code. I added a brand new error code named
1152   CURLE_SSL_PEER_CERTIFICATE for this purpose.
1153
1154 Daniel (11 May 2001)
1155 - As was discussed with Frederic Lepied a while ago, I now made libcurl not
1156   return error even though no data was transfered on upload/download resume
1157   when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed
1158   from the header file to make any implemenator that uses that to be aware of
1159   the fact that it can't be returned anymore!
1160
1161 - Improved general header-parsing to better allow white spaces and more.
1162
1163 - Rodney Simmons proved the fix I did yesterday was bad and I had to post
1164   another one.
1165
1166 - Ingo Wilken patched away two redirect problems more!
1167   
1168 Daniel (10 May 2001)
1169 - Cris Bailiff correctly noted that the space-after-header problem with
1170   Location: is present on several other places in the libcurl sources.
1171
1172 - Ingo Wilken patched away a problem libcurl had when following Location:
1173   headers with an extra space after the colon.
1174
1175 - Rodney Simmons found out that multiple FTP transfers did not treat relative
1176   directories correctly.
1177
1178 Daniel (9 May 2001)
1179 - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line),
1180   makes curl use the non-standard ftp command "SIZE". If it failed, libcurl
1181   returned error. Starting now, it just don't output the file size instead.
1182   Anonymous bug report.
1183
1184 - stunnel.pm was accidentally left out from the release archive, it is now
1185   added (stunnel is needed to run the https-tests in the test suite)
1186   
1187 Daniel (7 May 2001)
1188 - Corrected two minor compiler warnings due to the FILE * to void * conversion
1189   that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
1190   filed a bug report on this.
1191
1192 Version 7.7.3
1193
1194 Daniel (4 May 2001)
1195 - All callback functions now take 'void *' instead of 'FILE *'. This is made
1196   this way to make it more obvious to people that anything can be passed to
1197   them (by using the apropriate option). After discussions with Sterling
1198   Hughes.
1199
1200 Daniel (3 May 2001)
1201 - Cris Bailiff fixed a chunked transfer encoding problem with persistent
1202   connection that made libcurl fail if the persistent connection used mixed
1203   chunked and non-chunked transfers.
1204
1205 - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be
1206   treated as content-length 0 replies but would cause a "hang" until the
1207   server timed-out and closed the connection.
1208
1209 - Brad Burdick found a minor problem in the docs/examples/Makefile.am
1210
1211 Daniel (27 April 2001)
1212 - Updated the INTERALS document again. It was lagging a bit. I think I made it
1213   more easy to follow now as well.
1214
1215 - Brad Burdick found a problem with persistent connections when curl received
1216   a "Content-Length: 0" header.
1217
1218 - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl
1219   compiled/built on win32. It seems to work for unixes though!
1220
1221 - Dave Hamilton reported weird problems with CURL/PHP that I really can't
1222   explain at the moment. I'm hoping on some help from the PHP crew.
1223
1224 Daniel (26 April 2001)
1225 - I rewrote the FTP command response function. I had to do it to make ftps
1226   work, as the OpenSSL read()-function didn't work the same way the normal
1227   unix read() does, but it was also a huge performance boost. Previously the
1228   function read one byte at a time, now it reads very large chunks, and it
1229   makes a notable speed difference.
1230
1231 Daniel (25 April 2001)
1232 - Connection re-use when not using a proxy didn't work properly for
1233   non-default port numbers.
1234
1235 Daniel (24 April 2001)
1236 - I've noticed that FTPS doesn't work. We attempt to use ssl even for the
1237   data transfer, which causes the transfer to 'hang'... We need to fix this.
1238
1239 - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on
1240   the alredy written perl servers easily.
1241
1242 Daniel (23 April 2001)
1243 - The OpenSSL version string recently modified didn't zero terminate one
1244   of the generated strings properly, which could lead to a crash or simply
1245   weird version string output!
1246
1247 Version 7.7.2
1248
1249 Daniel (22 April 2001)
1250 - Rosimildo da Silva updated the Makefiles for Borland/Windows.
1251
1252 - Eric Rautman pointed out a problem with persistent connections that would
1253   lead to broken Host: headers in the second HTTP request.
1254
1255 Daniel (20 April 2001)
1256 - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote
1257   a 'libcurl overview' man page.
1258
1259 - Spell-fixed some documents.
1260
1261 - S. Moonesamy corrected mistakes in the man page.
1262
1263 - Cris Bailiff fixed the curl_slists options in the perl interface, present
1264   separately in the Curl::easy 1.1.4 package.
1265
1266 Daniel (19 April 2001)
1267 - Linus Nielsen Feltzing removed the decimals from the size variables in the
1268   --write-out output. We hardly ever get fraction of bytes! :-)
1269
1270 Version 7.7.2-pre1
1271
1272 Daniel (19 April 2001)
1273
1274 - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro.
1275
1276 Daniel (18 April 2001)
1277 - Input from Michael Mealling made me add --feature to curl-config. It
1278   displays a list of features that have been built-in in the current
1279   libcurl. The currently available features that can be listed are: SSL, KRB4
1280   and IPv6.
1281
1282 - I committed Cris and Georg's perl interface work. They've got callbacks
1283   working and options that receives those slist pointers.
1284
1285 - Puneet Pawaia detected a problem with resumed downloads that use persistent
1286   connections and I made a rather large writeup to correct this. It is
1287   important that all session-data is stored in the connectdata struct and not
1288   in the main struct as this previously did.
1289
1290 Daniel (17 April 2001)
1291 - Frederic Lepied fixed a ftp resumed download problem and introduced a new
1292   error code that lets applications be able to detect when a resumed download
1293   actually didn't download anything since the whole file is already present.
1294   Should this return OK instead?
1295
1296 - I added 'curl-config.in' to the root dir and configure script. Now, a
1297   curl-config script is made when curl is built. The script can be used to
1298   figure out compile time options used when libcurl was built, which in turn
1299   should be options YOU should use to build applications that use libcurl.
1300
1301   This *-config style is not a new idea, but something that has been used
1302   successfully in other (library based) projects.
1303
1304 - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone
1305   for the If-Modified-Since style headers.
1306
1307 - Georg Schwarz pointed out an extra needed #include file needed in src/main.c
1308   for curl to build on Ultrix.
1309
1310 Daniel (11 April 2001)
1311 - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use
1312   of the environment variable HTTP_PROXY in uppercase may become a security
1313   hazard when people use libcurl in a server/cgi situation where the server
1314   sets the HTTP_*-variables according to incoming headers in the HTTP
1315   request. Thus, a "Proxy:"-header would set that environment variable!
1316
1317   Then, invoking curl_easy_perform() without having an URL set caused a crash.
1318
1319 - S. Moonesamy brought a patch that make curl use non-blocking connects on
1320   windows when connection timeout is set, as it allows windows users to set
1321   that timeout!
1322
1323 - Hirotaka Matsuyuki wrote a Ruby interface to libcurl!
1324
1325 - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface.
1326
1327 - I've written a first shot at a Java interface to libcurl. Many thanks to
1328   Daniel Marell for tirelessly answering to all my basic Java questions. It
1329   works, but it is still very basic.
1330
1331 Daniel (10 April 2001)
1332 - The progress display could get silly when doing multiple file transfers, as
1333   it wasn't properly reset between transfers!
1334
1335 - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made
1336   me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback
1337   function for writing headers. Previously you could only set a different FILE
1338   * when headers are written from within libcurl.
1339
1340 Daniel (7 April 2001)
1341 - Andrés García fixed a problem in curl_escape() and pointed out a flaw in
1342   the curl_easy_setopt man page.
1343
1344 Daniel (6 April 2001)
1345 - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure
1346   change their version define format often...
1347
1348 - curl_formfree() now accepts a NULL pointer without crashing!
1349
1350 Version 7.7.1
1351
1352 Daniel (3 April 2001)
1353 - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to
1354   read bad memory during situations when an (ftp) connection attempt failed.
1355   Also, the lib/Makefile.vc6 was corrected.
1356
1357 - More investigations in the Location: following code made me realize that
1358   it was not clean enough to work transparantly with persistent and non-
1359   persistent connections. I think I've fixed it now.
1360
1361 Daniel (29 March 2001)
1362 - Georg Horn mailed me some corrections for the Curl::easy perl interface.
1363
1364 - Experimental ftps:// support added. It is basically FTP over SSL for the
1365   control connection. It still makes all data transfers going over unencrypted
1366   connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used
1367   that to verify the functionality.
1368
1369 Daniel (27 March 2001)
1370 - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried
1371   to get a file from a site and it fails, the SIGALRM would still be sent
1372   after the timeout-time, quite inexpectedly!
1373
1374 - I added an ftp transfer example to docs/examples/ and I also wrote a tiny
1375   example makefile that can be used as a start when building one of the
1376   examples.
1377
1378 Version 7.7.1-beta1
1379
1380 Daniel (26 March 2001)
1381 - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0
1382   connections (when the server replied a Connection: Keep-Alive) and this
1383   problem was not properly dealt with in 7.7 either. A patch was posted to the
1384   curl-and-php mailing list.
1385
1386 Daniel (24 March 2001)
1387 - Colin Watson reported about a problem and brought a patch that corrected it,
1388   which was about the man page and lines starting with a single quote (') in a
1389   way that gnroff doesn't like.
1390
1391 Daniel (23 March 2001)
1392 - Peter Bray reported correctly that the root makefile used make instead of
1393   $(MAKE) for the test target.
1394
1395 - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not
1396   curl_setopt() which was removed in 7.7!
1397
1398 - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ).
1399
1400 - When following a Location:, libcurl would sometimes write to the URL string
1401   in a way it shouldn't. As the pointer is passed-in to libcurl from an
1402   application, we can't be allowed to write to it. The particular bug report
1403   from 'nk' that brought this up was because he had a read-only URL that then
1404   caused a libcurl crash!
1405
1406 - No longer reads HEAD responses longer than to the last header. Previously,
1407   curl would read the full reply if the connection was a "close" one.
1408
1409 - libcurl did re-use connections way too much. Doing "curl
1410   http://www.{microsoft,ibm}.com" would make it re-use the connection which
1411   made the second request return very odd results.
1412
1413 Daniel (22 March 2001)
1414 - Edin Kadribasic made me aware that curl should not re-send POST requests
1415   when following 302-redirects. I made 302 work like 303 which means curl uses
1416   GET in the following request(s).
1417
1418 - libcurl now reset the "followed-location" counter on each invoke of
1419   curl_easy_perform() as it otherwise would sum up all redirects on the same
1420   connection and thus could reach the maxredirs counter wrongly.
1421
1422 - Jim Drash suggested curl_escape() should not re-encode what already looks
1423   like an encoded sequence and I think that's a fair suggestion.
1424
1425 Version 7.7
1426
1427 Daniel (22 March 2001)
1428 - The configure script now fails with an error message if gethostbyname_r() is
1429   detected but it couldn't figure out how to invoke it (what amount of
1430   arguments it is supposed to get). Reports from Andrés García made me aware
1431   of this need.
1432
1433 - Talking with Jim Drash made me finally put the curl_escape and curl_unescape
1434   functions in the curl.h include file and write man pages for them. The
1435   escape function was modified to use the same interface as the unescape one
1436   had.
1437
1438 - No bug reports at all on the latest betas. Release time coming up.
1439
1440 Version 7.7-beta5
1441
1442 Daniel (19 March 2001)
1443 - Georg Ottinger reported problems with using -C together with -L in the sense
1444   that the -C info got lost when it was redirected. I could not repeat this
1445   problem on the 7.7 branch why I leave this for the moment. Test case 39 was
1446   added to do exactly this, and it seems to do right.
1447
1448 - Christian Robottom Reis reported how his 7.7 beta didn't successfully do
1449   form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header
1450   engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT
1451   and POST operations that I need to add support for. Section 8.2.3 in RFC2616
1452   has all the details. Seems to work now!
1453
1454 Daniel (16 March 2001)
1455 - After having experienced another machine break-down, we're back.
1456
1457 - Georg Horn's perl interface Curl::easy is now included in the curl release
1458   archive. The perl/ directory is now present. Please help me with docs,
1459   examples and updates you think fit.
1460
1461 - Made a new php/ directory in the release archive and moved the PHP examples
1462   into a subdirectory in there. Not much PHP info yet, but I plan to. Please
1463   help me here as well!
1464
1465 - Made libcurl return error if a transfer is aborted in the middle of a
1466   "chunk". It actually enables libcurl to discover premature transfer aborts
1467   even if the Content-Length: size is unknown.
1468
1469 Daniel (15 March 2001)
1470 - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT
1471   option in libcurl. It limits the time curl is allowed to spend in the
1472   connection phase. This differs from -m/--max-time that limits the entire
1473   file transfer operation. Requested by Larry Fahnoe and others.
1474
1475   I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the
1476   item from the TODO.
1477
1478 Version 7.7-beta4
1479
1480 Daniel (14 March 2001)
1481 - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely
1482   again when ENABLE_IPV6 is set.
1483
1484   I need to remake things in the test suite. I can't test the FTP parts with
1485   curl built for IPv6 as it uses a different set of FTP commands then!
1486
1487 - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was
1488   a report meant for our project. Anyway, it said the .netrc parsing didn't
1489   work as supposed, and as I agreed with Lars, I made the netrc parser use
1490   getpwuid() to figure out the home directory of the effective user and try
1491   that netrc. It still uses the environment variable HOME for those that don't
1492   have that function or if the user doesn't return valid pwd info.
1493
1494 - Edin Kadribaic posted a bug report where he got a crash when a fetch with
1495   user+password in the URL followed a Location: to a second URL (absolute,
1496   without name+password). This bug has been around for a long while and
1497   crashes due to a read at address zero. Fixed now. Wrote test case 38, that
1498   tests this.
1499
1500 - Modified the test suite's httpserver slightly to append all client request
1501   data to its log file so that the test script now better can verify a range
1502   of requests and not only the last one, as it did previously.
1503
1504 - Updated the curl man page with --random-file and --egd-file details.
1505
1506 Version 7.7-beta3
1507
1508 Daniel (14 March 2001)
1509 - Björn Stenberg provided similar fixes as Jörn did and some additional patches
1510   for non-SSL compiles.
1511
1512 - I increased the interface number for libcurl as I've removed the low level
1513   functions from the interface. I also took this opportunity to rename the
1514   Curl_strequal function to curl_strequal and Curl_strnequal to
1515   curl_strnequal, as they're public libcurl functions (even if they're still
1516   undocumented).
1517
1518   This will make older programs not capable of using the new libcurl with
1519   just a drop-in replacement.
1520
1521 - Jörn Hartroth updated stuff for win32 compiles:
1522   o config-win32.h was fixed for socklen_t
1523   o lib/ssluse.c had a bad #endif placement
1524   o lib/file.c was made to compile on win32 again
1525   o lib/Makefile.m32 was updated with the new files
1526   o lib/libcurl.def matches the current interface state
1527
1528 Daniel (13 March 2001)
1529 - It only took an hour or so before Jörn Hartroth found a problem in the
1530   chunked transfer-encoding. Given his fine example-site, I could easily spot
1531   the problem and when I re-read the spec (the part I have pasted in the top
1532   of the http_chunks.h file), I realized I had made my state-machine slightly
1533   wrong and didn't expect/handle the trailing CRLF that comes after the data
1534   in each chunk (and those extra two bytes sure feel wasted).
1535
1536   Had to modify test case 34 to match this as well.
1537
1538 Version 7.7-beta2
1539
1540 Daniel (13 March 2001)
1541 - Added the policy stuff to the curl_easy_setopt man page for the two supported
1542   policies.
1543
1544 - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies
1545   CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now
1546   supported, and the "least recently used" is used as default if no policy
1547   is chosen.
1548
1549 Daniel (12 March 2001)
1550 - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
1551   SSL random engine. The random seeding support was also brought to the curl
1552   client with the new options --random-file <file> and --egd-file <file>. I
1553   need some people to really test this to know they work as supposed. Remember
1554   that libcurl now informs (if verbose is on) if the random seed is considered
1555   weak (HTTPS connections).
1556
1557 - Made the chunked transfer-encoding engine detected bad formatted data length
1558   and return error if so (we can't possibly extract sensible data if this is
1559   the case). Added a test case that detects this. Number 36. Now there are 60
1560   test cases.
1561
1562 - Added 5 new libcurl options to curl/curl.h that can be used to control the
1563   persistent connection support in libcurl. They're also documented (fairly
1564   thoroughly) in the curl_easy_setopt.3 man page. Three of them are now
1565   implemented, although not really tested at this point... Anyway, the new
1566   implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT,
1567   CURLOPT_FORBID_REUSE. The ones still left to write code for are:
1568   CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION.
1569
1570 - Made curl (the actual command line tool) use the new libcurl 7.7 persistent
1571   connection support by re-using the same curl handle for every specified file
1572   transfer and after some more test case tweaking we have 100% test case OK.
1573   I made some test cases return HTTP/1.0 now to make sure that works as well.
1574
1575 - Had to add 'Connection: close' to the headers of a bunch of test cases so
1576   that curl behaves "old-style" since the test http server doesn't do multiple
1577   connections... Now I get 100% test case OK.
1578
1579 - The curl.haxx.se site, the main curl mailing list and my personal email are
1580   all dead today due to power blackout in the area where the main servers are
1581   located. Horrible.
1582
1583 - I've made persistance work over a squid HTTP proxy. I find it disturbing
1584   that it uses headers that aren't present in any HTTP standard though
1585   (Proxy-Connection:) and that makes me feel that I'm now on the edge of what
1586   the standard actually defines. I need to get this code excercised on a lot
1587   of different HTTP proxies before I feel safe.
1588
1589   Now I'm facing the problem with my test suite servers (both FTP and HTTP)
1590   not supporting persistent connections and libcurl is doing them now. I have
1591   to fix the test servers to get all the test cases do OK.
1592
1593 Daniel (8 March 2001)
1594 - Guenole Bescon reported that libcurl did output errors to stderr even if
1595   MUTE and NOPROGRESS was set. It turned out to be a bug and happens if
1596   there's an error and no ERRORBUFFER is set. This is now corrected.
1597
1598 Version 7.7-beta1
1599
1600 Daniel (8 March 2001)
1601 - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've
1602   added two source files and I've run some test downloads that look fine.
1603
1604 - HTTP HEAD works too, even on 1.1 servers.
1605
1606 Daniel (5 March 2001)
1607 - The current 57 test cases now pass OK. It would suggest that libcurl works
1608   using the old-style with one connection per handle. The test suite doesn't
1609   handle multiple connections yet so there are no test cases for this.
1610
1611 - I patched the telnet.c heavily to not use any global variables anymore. It
1612   should make it a lot nicer library-wise.
1613
1614 - The file:// support was modified slightly to use the internal connect-first-
1615   then-do approach.
1616
1617 Daniel (4 March 2001)
1618 - More bugs erased.
1619
1620 Version 7.7-alpha2
1621
1622 Daniel (4 March 2001)
1623 - Now, there's even a basic check that a re-used connection is still alive
1624   before it is assumed so. A few first tests have proven that libcurl will
1625   then re-connect instead of re-use the dead connection!
1626
1627 Daniel (2 March 2001)
1628 - Now they work intermixed as well. Major coolness!
1629
1630 - More fiddling around, my 'tiny' client I have for testing purposes now has
1631   proved to download both FTP and HTTP with persistent connections. They do
1632   not work intermixed yet though.
1633
1634 Daniel (1 March 2001)
1635 - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that
1636   curl_slist_append() should take a const char * as second argument. It does
1637   now.
1638
1639 Daniel (22 February 2001)
1640 - The persistent connections start to look good for HTTP. On a subsequent
1641   request, it seems that libcurl now can pick an already existing connection
1642   if a suitable one exists, or it opens a new one.
1643
1644 - Douglas R. Horner mailed me corrections to the curl_formparse() man page
1645   that I applied.
1646
1647 Daniel (20 February 2001)
1648 - Added the docs/examples/win32sockets.c file for our windows friends.
1649
1650 - Linus Nielsen Feltzing provided brand new TELNET functionality and
1651   improvements:
1652
1653   * Negotiation is now passive. Curl does not negotiate until the peer does.
1654   * Possibility to set negotiation options on the command line, currently only
1655     XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
1656   * Now sends the USER environment variable if the -u switch is used.
1657   * Use -t to set telnet options (Linus even updated the man page, awesome!)
1658
1659 - Haven't done this big changes to curl for a while. Moved around a lot of
1660   struct fields and stuff to make multiple connections get connection specific
1661   data in separate structs so that they can co-exist in a nice way. See the
1662   mailing lists for discussions around how this is gonna be implemented. Docs
1663   and more will follow.
1664
1665   Studied the HTTP RFC to find out better how persistent connections should
1666   work. Seems cool enough.
1667
1668 Daniel (19 February 2001)
1669 - Bob Schader brought me two files that help set up a MS VC++ libcurl project
1670   easier. He also provided me with an up-to-date libcurl.def file.
1671
1672 - I moved a bunch of prototypes from the public <curl/curl.h> file to the
1673   library private urldata.h. This is because of the upcoming changes. The
1674   low level interface is no longer being planned to become reality.
1675
1676 Daniel (15 February 2001)
1677 - CURLOPT_POST is not required anymore. Just setting the POST string with
1678   CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
1679   libcurl already works this way, i.e they require only the parameter to
1680   switch on a feature so I think this works well with the rest. Setting a NULL
1681   string switches off the POST again.
1682
1683 - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
1684   Reese helped me define a way how to incorporate persistent connections into
1685   libcurl in a very smooth way. If done right, no change may have to be made
1686   to older programs and they will just start using persistent connections when
1687   applicable!
1688
1689 Daniel (13 February 2001)
1690 - Changed the word 'timeouted' to 'timed out' in two different error messages.
1691   Suggested by Larry Fahnoe.
1692
1693 Version 7.6.1
1694
1695 Daniel (9 February 2001)
1696 - Frank Reid and Cain Hopwood provided information and research around a HTTPS
1697   PUT/upload problem we seem to have. No solution found yet.
1698
1699 Daniel (8 February 2001)
1700 - An interesting discussion is how to specify an empty password without having
1701   curl ask for it interactively? The current implmentation takes an empty
1702   password as a request for a password prompt. However, I still want to
1703   support a blank user field. Thus, today if you enter "-u :" (without user
1704   and password) curl will prompt for the password. Tricky. How would you
1705   specify you want the prompt otherwise?
1706
1707 - Made the netrc parse result possible to use for other protocols than FTP and
1708   HTTP (such as the upcoming TELNET fixes).
1709
1710 - The previously mentioned "MSVC++ problems" turned out to be a non-issue.
1711
1712 - Added a HTTP file upload code example in the docs/examples/ section on
1713   request.
1714
1715 - Adjusted the FTP response fix slightly.
1716
1717 Version 7.6.1-pre3
1718
1719 Daniel (7 February 2001)
1720 - S. Moonesamy found a flaw in the response reading function for FTP that
1721   could make libcurl not get out of the loop properly when it should, if
1722   libcurl got -1 returned when reading the socket.
1723
1724 - I found a similar mistake in http.c when using a proxy and reading the
1725   results from the proxy connection.
1726
1727 Daniel (6 February 2001)
1728 - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set
1729   for the debug build to work.
1730
1731 - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver
1732   brought up yesterday.
1733
1734 Daniel (5 February 2001)
1735 - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to
1736   a bunch of different areas within libcurl.
1737
1738 - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with
1739   the 'static' keyword on a number of libcurl functions. I might need to add a
1740   patch that redefines static when libcurl is compiled with that compiler.
1741   How do I know when VC++ compiles, anyone?
1742
1743 Daniel (4 February 2001)
1744 - curl_getinfo() was extended with two new options:
1745   CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They
1746   return the full assumed content length of the transfer in the given
1747   direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length:
1748   size of a HTTP download. Added descriptions to the man page as well. This
1749   was done after discussions with Bob Schader.
1750
1751 Daniel (3 February 2001)
1752 - Ingo Ralf Blum provided another fix that makes curl build under the more
1753   recent cygwin installations. It seems they've changed the preset defines to
1754   not include WIN32 anymore.
1755
1756 Version 7.6.1-pre2
1757
1758 Daniel (31 January 2001)
1759 - Curl_read() and curl_read() now return a ssize_t for the size, as it had to
1760   be able to return -1. The telnet support crashed due to this and there was a
1761   possibility to weird behavior all over. Linus Nielsen Feltzing helped me
1762   find this.
1763
1764 - Added a configure.in check for a working getaddrinfo() if IPv6 is requested.
1765   I also made the configure script feature --enable-debug which sets a couple
1766   of compiler options when used. It assumes gcc.
1767
1768 Daniel (30 January 2001)
1769 - I finally took a stab at the long-term FIXME item I've had on myself, and
1770   now libcurl will properly work when doing a HTTP range-request that follows
1771   a Location:. Previously that would make libcurl fail saying that the server
1772   doesn't seem to support range requests.
1773
1774 Daniel (29 January 2001)
1775 - I added a test case for the HTTP PUT resume thing (test case 33).
1776
1777 Version 7.6.1-pre1
1778
1779 Daniel (29 January 2001)
1780 - Yet another Content-Range change. Ok now? Bob Schader checks from his end 
1781   and it works for him.
1782
1783 Daniel (27 January 2001)
1784 - So the HTTP PUT resume fix wasn't good. There should appearantly be a
1785   Content-Range header when resuming a PUT.
1786
1787 - I noticed I broke the download-check that verifies that a resumed HTTP
1788   download is actually resumed. It got broke because my new 'httpreq' field
1789   in the main curl struct. I should get slapped. I added a test case for
1790   this now, so I won't be able to ruin this again without noticing.
1791
1792 - Added a test case for content-length verifying when downloading HTTP.
1793
1794 - Made the progress meter title say if the transfer is being transfered. It
1795   makes the output slightly better for resumes.
1796
1797 - When dealing with Location: and HTTP return codes, libcurl will not attempt
1798   to follow the spirit of RFC2616 better. It means that when POSTing to a
1799   URL that is being following to a second place, the standard will judge on
1800   what to do. All HTTP codes except 303 and 305 will cause curl to make a
1801   second POST operation. 303 will make a GET and 305 is not yet supported.
1802
1803   I also wrote two test cases for this POST/GET/Location stuff.
1804
1805 Version 7.6
1806
1807 Daniel (26 January 2001)
1808 - Lots of mails back and forth with Bob Schader finally made me add a small
1809   piece of code in the HTTP engine so that HTTP upload resume works. You can
1810   now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT
1811   the ending part of the file starting at given offet to the specified URL.
1812
1813 Version 7.6-pre4
1814
1815 Daniel (25 January 2001)
1816 - I took hold of Rick Jones' question why we don't use recv() and send() for
1817   reading/writing to the sockets and I've now modified the sread() and
1818   swrite() macros to use them instead. If nothing else, they could be tested
1819   in the next beta-round coming right up.
1820
1821 - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied
1822   his research results in how to fix this. It turns out we have to invoke the
1823   function several times in some cases. The same goes for the SSL_write().
1824
1825   I made some rather drastic changes all over libcurl to make all writes and
1826   reads get done on one single place so that this repeated-attempts thing
1827   would only have to be implemented at one point.
1828
1829 - Rick Jones spotted that the 'total time' counter really didn't measure the
1830   total time very accurate on subsecond levels.
1831
1832 - Johan Nilsson pointed out the need to more clearly specify that the timeout
1833   value you set for a download is for the *entire* download. There's currently
1834   no option available that sets a timeout for the connection phase only.
1835
1836 Daniel (24 January 2001)
1837 - Ingo Ralf Blum submitted a series of patches required to get curl to compile
1838   properly with cygwin.
1839
1840 - Robert Weaver posted a fix for the win32 section of the curl_getenv() code
1841   that corrected a potential memory leak.
1842
1843 - Added comments in a few files in a sudden attempt to make the sources more
1844   easy to read and understand!
1845
1846 Daniel (23 January 2001)
1847 - Added simple IPv6 detection in the configure script and made the version
1848   string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be
1849   set if curl is compiled with IPv6 support enabled.
1850
1851 - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when
1852   IPv6 gets enabled soon, we can use URLs like '[0::1]:80'...
1853
1854 - Made the URL globbing in the client possible to fail silently if there's an
1855   error in the globbing. It makes it almost intuitive, so when you don't
1856   follow the syntax rules, globbing is simply switched off and the raw string
1857   is used instead.
1858
1859   I still think we'll get problems with IPv6-style IP-addresses when we *want*
1860   globbing on parts of the URL as the initial part of the URL will for sure
1861   seriously confuse the globber.
1862
1863 Daniel (22 January 2001)
1864 - Björn Stenberg supplied a progress meter patch that makes it look better even
1865   during slow starts. Previously it made some silly assumptions...
1866
1867 - Added two FTP tests for -Q and -Q - stuff since it was being discussed on
1868   the mailing list. Had to correct the ftpserver.pl too as it bugged slightly.
1869
1870 Daniel (19 January 2001)
1871 - Made the Location: parsers deal with any-length URLs. Thus I removed the last
1872   code that restricts the length of URLs that curl supports.
1873
1874 - Added a --globoff test case (#28) and it quickly identified a memory problem
1875   in src/main.c that I took care of.
1876
1877 Version 7.6-pre3
1878
1879 Daniel (17 January 2001)
1880 - Made the two former files lib/download.c and lib/highlevel.c become the new
1881   lib/transfer.c which makes more sense. I also did the rename from Transfer()
1882   to Curl_Transfer() in the other source files that use the transfer function
1883   in the spirit of using Curl_ prefix for library-scoped global symbols.
1884
1885 Daniel (11 January 2001)
1886 - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[]
1887   letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly
1888   mention these letters to be escaped. This was posted as a feature request by
1889   Jorge Gutierrez and as a bug by Terry.
1890
1891 - Short options to curl that requires parameters can now be specified without
1892   having the option and its parameter space separated. -ofile works as good as
1893   -o file. -m20 is equal to -m 20. Do note that this goes for single-letter
1894   options only, verbose --long-style options still must be separated with
1895   space from their parameters.
1896
1897 Daniel (8 January 2001)
1898 - Francis Dagenais reported that the SCO compiler still fails when compiling
1899   curl due to that getpass_r() prototype. I've now put it around #ifndef
1900   HAVE_GETPASS_R in an attempt to please the SCO systems.
1901
1902 - Made some minor corrections to get the client to cleanup properly and I made
1903   the separator work again when getting multiple globbed URLs to stdout.
1904
1905 - Worked with Loic Dachary to get the make dist and make distcheck work
1906   correctly. The 'maketgz' script is now using the automake generated 'make
1907   dist' when creating release archives. Loic successfully made 'make rpms'
1908   automatically build RPMs!
1909
1910 Loic Dachary (6 January 2001)
1911 - Automated generation of rpm packages, no need to be root.
1912
1913 - make distcheck generates a proper distribution (EXTRA_DIST
1914   in all Makefile.am modified to match FILES).
1915
1916 Daniel (5 January 2001)
1917 - Huge client-side hack: now multiple URLs are supported. Any number of URLs
1918   can be specified on the command line, and they'll all be downloaded. There
1919   must be a corresponding -o or -O for each URL or the data will be written to
1920   stdout. This needs more testing, time to release a 7.6-pre package.
1921
1922 - The krb4 support was broken in the release. Fixed now.
1923
1924 - Huge internal symbol rename operation. All non-static but still lib-internal
1925   symbols should now be prefixed with 'Curl_' to prevent collisions with other
1926   libs. All public symbols should be prefixed with 'curl_' and the rest should
1927   be static and thus invisible to the outside world. I updated the INTERNALS
1928   document to say this as well.
1929
1930 Version 7.5.2
1931
1932 Daniel (4 January 2001)
1933 - As Kevin P Roth suggested, I've added text to the man page for every command
1934   line option and what happens when you specify that option more than
1935   once. That hasn't been exactly crystal clear before.
1936
1937 - Made the configure script possible to run from outside the source-tree. For
1938   odd reasons I can't build curl properly outside though. It has to do with
1939   curl's dependencies on libcurl...
1940
1941 - Cut off all older (dated 1999 and earlier) CHANGES entries from this file.
1942   The older piece is named CHANGES.0 and is added to the CVS repository in
1943   case anyone would need it.
1944
1945 - I added another file 'CVS-INFO' to the CVS. It contains information about
1946   files in the CVS that aren't included in release archives and how to build
1947   curl when you get the sources off CVS.
1948
1949 - Updated CONTRIBUTE and FAQ due to the new license.
1950
1951 Daniel (3 January 2001)
1952 - Renamed README.libcurl to LIBCURL
1953
1954 - Changed headers in all sources files to the new dual license concept of
1955   curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated
1956   accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the
1957   release archive.