Merged _all_ old changelogs into the single CHANGES.0 file. Having a new one
[platform/upstream/curl.git] / CHANGES.0
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                  Old Changelog
8
9 Changes done to curl and libcurl from 1997 to 2006. The most recent changes are
10 always kept in the CHANGES file.
11
12 Daniel (29 December 2006)
13 - Make curl_easy_duphandle() set the magic number in the new handle.
14
15 Daniel (22 December 2006)
16 - Robert Foreman provided a prime example snippet showing how libcurl would
17   get confused and not acknowledge the 'no_proxy' variable properly once it
18   had used the proxy and you re-used the same easy handle. I made sure the
19   proxy name is properly stored in the connect struct rather than the
20   sessionhandle/easy struct.
21
22 - David McCreedy fixed a bad call to getsockname() that wrongly used a size_t
23   variable to point to when it should be a socklen_t.
24
25 - When setting a proxy with environment variables and (for example) running
26   'curl [URL]' with a URL without a protocol prefix, curl would not send a
27   correct request as it failed to add the protocol prefix.
28
29 Daniel (21 December 2006)
30 - Robson Braga Araujo reported bug #1618359
31   (http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a
32   patch for it: when downloading 2 zero byte files in a row, curl 7.16.0
33   enters an infinite loop, while curl 7.16.1-20061218 does one additional
34   unnecessary request.
35
36   Fix: During the "Major overhaul introducing http pipelining support and
37   shared connection cache within the multi handle." change, headerbytecount
38   was moved to live in the Curl_transfer_keeper structure. But that structure
39   is reset in the Transfer method, losing the information that we had about
40   the header size. This patch moves it back to the connectdata struct.
41
42 Daniel (16 December 2006)
43 - Brendan Jurd provided a fix that now prevents libcurl from getting a SIGPIPE
44   during certain conditions when GnuTLS is used.
45
46 Daniel (11 December 2006)
47 - Alexey Simak found out that when doing FTP with the multi interface and
48   something went wrong like it got a bad response code back from the server,
49   libcurl would leak memory. Added test case 538 to verify the fix.
50
51   I also noted that the connection would get cached in that case, which
52   doesn't make sense since it cannot be re-use when the authentication has
53   failed. I fixed that issue too at the same time, and also that the path
54   would be "remembered" in vain for cases where the connection was about to
55   get closed.
56
57 Daniel (6 December 2006)
58 - Sebastien Willemijns reported bug #1603712
59   (http://curl.haxx.se/bug/view.cgi?id=1603712) which is about connections
60   getting cut off prematurely when --limit-rate is used. While I found no such
61   problems in my tests nor in my reading of the code, I found that the
62   --limit-rate code was severly flawed (since it was moved into the lib, since
63   7.15.5) when used with the easy interface and it didn't work as documented
64   so I reworked it somewhat and now it works for my tests.
65
66 Daniel (5 December 2006)
67 - Stefan Krause pointed out a compiler warning with a picky MSCV compiler when
68   passing a curl_off_t argument to the Curl_read_rewind() function which takes
69   an size_t argument. Curl_read_rewind() also had debug code left in it and it
70   was put in a different source file with no good reason when only used from
71   one single spot.
72
73 - Sh Diao reported that CURLOPT_CLOSEPOLICY doesn't work, and indeed, there is
74   no code present in the library that receives the option. Since it was not
75   possible to use, we know that no current users exist and thus we simply
76   removed it from the docs and made the code always use the default path of
77   the code.
78
79 - Jared Lundell filed bug report #1604956
80   (http://curl.haxx.se/bug/view.cgi?id=1604956) which identified setting
81   CURLOPT_MAXCONNECTS to zero caused libcurl to SIGSEGV. Starting now, libcurl
82   will always internally use no less than 1 entry in the connection cache.
83
84 - Sh Diao reported that CURLOPT_FORBID_REUSE no works, and indeed it broke in
85   the 7.16.0 release.
86
87 - Martin Skinner brought back bug report #1230118 to haunt us once again.
88   (http://curl.haxx.se/bug/view.cgi?id=1230118) curl_getdate() did not work
89   properly for all input dates on Windows. It was mostly seen on some TZ time
90   zones using DST. Luckily, Martin also provided a fix.
91
92 - Alexey Simak filed bug report #1600447
93   (http://curl.haxx.se/bug/view.cgi?id=1600447) in which he noted that active
94   FTP connections don't work with the multi interface. The problem is here
95   that the multi interface state machine has a state during which it can wait
96   for the data connection to connect, but the active connection is not done in
97   the same step in the sequence as the passive one is so it doesn't quite work
98   for active. The active FTP code still use a blocking function to allow the
99   remote server to connect.
100
101   The fix (work-around is a better word) for this problem is to set the
102   boolean prematurely that the data connection is completed, so that the "wait
103   for connect" phase ends at once.
104
105   The proper fix, left for the future, is of course to make the active FTP
106   case to act in a non-blocking way too.
107
108 - Matt Witherspoon fixed a problem case when the CPU load went to 100% when a
109   HTTP upload was disconnected:
110
111   "What appears to be happening is that my system (Linux 2.6.17 and 2.6.13) is
112   setting *only* POLLHUP on poll() when the conditions in my previous mail
113   occur. As you can see, select.c:Curl_select() does not check for POLLHUP. So
114   basically what was happening, is poll() was returning immediately (with
115   POLLHUP set), but when Curl_select() looked at the bits, neither POLLERR or
116   POLLOUT was set. This still caused Curl_readwrite() to be called, which
117   quickly returned. Then the transfer() loop kept continuing at full speed
118   forever."
119
120 Daniel (1 December 2006)
121 - Toon Verwaest reported that there are servers that send the Content-Range:
122   header in a third, not suppported by libcurl, format and we agreed that we
123   could make the parser more forgiving to accept all the three found
124   variations.
125
126 Daniel (25 November 2006)
127 - Venkat Akella found out that libcurl did not like HTTP responses that simply
128   responded with a single status line and no headers nor body. Starting now, a
129   HTTP response on a persistent connection (i.e not set to be closed after the
130   response has been taken care of) must have Content-Length or chunked
131   encoding set, or libcurl will simply assume that there is no body.
132
133   To my horror I learned that we had no less than 57(!) test cases that did bad
134   HTTP responses like this, and even the test http server (sws) responded badly
135   when queried by the test system if it is the test system. So although the
136   actual fix for the problem was tiny, going through all the newly failing test
137   cases got really painful and boring.
138
139 Daniel (24 November 2006)
140 - James Housley did lots of work and introduced SFTP downloads.
141
142 Daniel (13 November 2006)
143 - Ron in bug #1595348 (http://curl.haxx.se/bug/view.cgi?id=1595348) pointed
144   out a stack overwrite (and the corresponding fix) on 64bit Windows when
145   dealing with HTTP chunked encoding.
146
147 Daniel (9 November 2006)
148 - Nir Soffer updated libcurl.framework.make:
149   o fix symlinks, should link to Versions, not to ./Versions
150   o indentation improvments
151
152 - Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov
153   2006. It turned out we wrongly assumed that the connection cache was present
154   when tearing down a connection.
155
156 - Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the
157   multi interface, but I could also repeat it doing multiple sequential ones
158   with the easy interface. Using Ciprian's test case, I could fix it.
159
160 Daniel (8 November 2006)
161 - Bradford Bruce reported that when setting CURLOPT_DEBUGFUNCTION without
162   CURLOPT_VERBOSE set to non-zero, you still got a few debug messages from the
163   SSL handshake. This is now stopped.
164
165 Daniel (7 November 2006)
166 - Olaf fixed a leftover problem with the CONNECT fix of his that would leave a
167   wrong error message in the error message buffer.
168
169 Daniel (3 November 2006)
170 - Olaf Stueben provided a patch that I edited slightly. It fixes the notorious
171   KNOWN_BUGS #25, which happens when a proxy closes the connection when
172   libcurl has sent CONNECT, as part of an authentication negotiation. Starting
173   now, libcurl will re-connect accordingly and continue the authentication as
174   it should.
175
176 Daniel (2 November 2006)
177 - James Housley brought support for SCP transfers, based on the libssh2 library
178   for the actual network protocol stuff.
179
180   Added these new curl_easy_setopt() options:
181
182     CURLOPT_SSH_AUTH_TYPES
183     CURLOPT_SSH_PUBLIC_KEYFILE
184     CURLOPT_SSH_PRIVATE_KEYFILE
185
186 Version 7.16.0 (30 October 2006)
187
188 Daniel (25 October 2006)
189 - Fixed CURLOPT_FAILONERROR to return CURLE_HTTP_RETURNED_ERROR even for the
190   case when 401 or 407 are returned, *IF* no auth credentials have been given.
191   The CURLOPT_FAILONERROR option is not possible to make fool-proof for 401
192   and 407 cases when auth credentials is given, but we've now covered this
193   somewhat more.
194
195   You might get some amounts of headers transferred before this situation is
196   detected, like for when a "100-continue" is received as a response to a
197   POST/PUT and a 401 or 407 is received immediately afterwards.
198
199   Added test 281 to verify this change.
200
201 Daniel (23 October 2006)
202 - Ravi Pratap provided a major update with pipelining fixes. We also no longer
203   re-use connections (for pipelining) before the name resolving is done.
204
205 Daniel (21 October 2006)
206 - Nir Soffer made the tests/libtest/Makefile.am use a proper variable for all
207   the single test applications' link and dependences, so that you easier can
208   override those from the command line when using make.
209
210 - Armel Asselin separated CA cert verification problems from problems with
211   reading the (local) CA cert file to let users easier pinpoint the actual
212   problem. CURLE_SSL_CACERT_BADFILE (77) is the new libcurl error code.
213
214 Daniel (18 October 2006)
215 - Removed the "protocol-guessing" for URLs with host names starting with FTPS
216   or TELNET since they are practically non-existant. This leaves us with only
217   three different prefixes that would assume the protocol is anything but
218   HTTP, and they are host names starting with "ftp.", "dict." or "ldap.".
219
220 Daniel (17 October 2006)
221 - Bug report #1579171 pointed out code flaws detected with "prefast", and they
222   were 1 - a too small memory clear with memset() in the threaded resolver and
223   2 - a range of potentially bad uses of the ctype family of is*() functions
224   such as isdigit(), isalnum(), isprint() and more. The latter made me switch
225   to using our own set of these functions/macros using uppercase letters, and
226   with some extra set of crazy typecasts to avoid mistakingly passing in
227   negative numbers to the underlying is*() functions.
228
229 - With Jeff Pohlmeyer's help, I fixed the expire timer when using
230   curl_multi_socket() during name resolves with c-ares and the LOW_SPEED
231   options now work fine with curl_multi_socket() as well.
232
233 Daniel (16 October 2006)
234 - Added a check in configure that simply tries to run a program (not when
235   cross-compiling) in order to detect problems with run-time libraries that
236   otherwise would occur when the sizeof tests for curl_off_t would run and
237   thus be much more confusing to users. The check of course should run after
238   all lib-checks are done and before any other test is used that would run an
239   executable built for testing-purposes.
240
241 Dan F (13 October 2006)
242 - The tagging of application/x-www-form-urlencoded POST body data sent
243   to the CURLOPT_DEBUGFUNCTION callback has been fixed (it was erroneously
244   included as part of the header).  A message was also added to the
245   command line tool to show when data is being sent, enabled when
246   --verbose is used.
247
248 Daniel (12 October 2006)
249 - Starting now, adding an easy handle to a multi stack that was already added
250   to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned.
251
252 - Jeff Pohlmeyer has been working with the hiperfifo.c example source code,
253   and while doing so it became apparent that the current timeout system for
254   the socket API really was a bit awkward since it become quite some work to
255   be sure we have the correct timeout set.
256
257   Jeff then provided the new CURLMOPT_TIMERFUNCTION that is yet another
258   callback the app can set to get to know when the general timeout time
259   changes and thus for an application like hiperfifo.c it makes everything a
260   lot easier and nicer. There's a CURLMOPT_TIMERDATA option too of course in
261   good old libcurl tradition.
262
263   Jeff has also updated the hiperfifo.c example code to use this news.
264
265 Daniel (9 October 2006)
266 - Bogdan Nicula's second test case (posted Sun, 08 Oct 2006) converted to test
267   case 535 and it now runs fine. Again a problem with the pipelining code not
268   taking all possible (error) conditions into account.
269
270 Daniel (6 October 2006)
271 - Bogdan Nicula's hanging test case (posted Wed, 04 Oct 2006) was converted to
272   test case 533 and the test now runs fine.
273
274 Daniel (4 October 2006)
275 - Dmitriy Sergeyev provided an example source code that crashed CVS libcurl
276   but that worked nicely in 7.15.5. I converted it into test case 532 and
277   fixed the problem.
278
279 Daniel (29 September 2006)
280 - Removed a few other no-longer present options from the header file.
281
282 - Support for FTP third party transfers was removed. Here's why:
283
284   o The recent multi interface changes broke it and the design of the 3rd party
285     transfers made it very hard to fix the problems
286   o It was still blocking and thus nasty for the multi interface
287   o It was a lot of extra code for a very rarely used feature
288   o It didn't use the same code as for "plain" FTP transfers, so it didn't work
289     fine for IPv6 and it didn't properly re-use connections and more
290   o There's nobody around who's willing to work on and improve the existing
291     code
292
293   This does not mean that third party transfers are banned forever, only that
294   they need to be done better if they are to be re-added in the future.
295
296   The CURLOPT_SOURCE_* options are removed from the lib and so are the --3p*
297   options from the command line tool. For this reason, I also bumped the
298   version info for the lib.
299
300 Daniel (28 September 2006)
301 - Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl
302   would crash if a bad function sequence was used when shutting down after
303   using the multi interface (i.e using easy_cleanup after multi_cleanup) so
304   precautions have been added to make sure it doesn't any more - test case 529
305   was added to verify.
306
307 Daniel (27 September 2006)
308 - The URL in the cookie jar file is now changed since it was giving a 404.
309   Reported by Timothy Stone. The new URL will take the visitor to a curl web
310   site mirror with the document.
311
312 Daniel (24 September 2006)
313 - Bernard Leak fixed configure --with-gssapi-libs.
314
315 - Cory Nelson made libcurl use the WSAPoll() function if built for Windows
316   Vista (_WIN32_WINNT >= 0x0600)
317
318 Daniel (23 September 2006)
319 - Mike Protts added --ftp-ssl-control to make curl use FTP-SSL, but only
320   encrypt the control connection and use the data connection "plain".
321
322 - Dmitriy Sergeyev provided a patch that made the SOCKS[45] code work better
323   as it now will read the full data sent from servers. The SOCKS-related code
324   was also moved to the new lib/socks.c source file.
325
326 Daniel (21 September 2006)
327 - Added test case 531 in an attempt to repeat bug report #1561470
328   (http://curl.haxx.se/bug/view.cgi?id=1561470) that is said to crash when an
329   FTP upload fails with the multi interface. It did not, but I made a failed
330   upload still assume the control connection to be fine.
331
332 Daniel (20 September 2006)
333 - Armel Asselin fixed problems when you gave a proxy URL with user name and
334   empty password or no password at all. Test case 278 and 279 were added to
335   verify.
336
337 Daniel (12 September 2006)
338 - Added docs/examples/10-at-a-time.c by Michael Wallner
339
340 - Added docs/examples/hiperfifo.c by Jeff Pohlmeyer
341
342 Daniel (11 September 2006)
343 - Fixed my breakage from earlier today so that doing curl_easy_cleanup() on a
344   handle that is part of a multi handle first removes the handle from the
345   stack.
346
347 - Added CURLOPT_SSL_SESSIONID_CACHE and --no-sessionid to disable SSL
348   session-ID re-use on demand since there obviously are broken servers out
349   there that misbehave with session-IDs used.
350
351 - Jeff Pohlmeyer presented a *multi_socket()-using program that exposed a
352   problem with it (SIGSEGV-style). It clearly showed that the existing
353   socket-state and state-difference function wasn't good enough so I rewrote
354   it and could then re-run Jeff's program without any crash. The previous
355   version clearly could miss to tell the application when a handle changed
356   from using one socket to using another.
357
358   While I was at it (as I could use this as a means to track this problem
359   down), I've now added a 'magic' number to the easy handle struct that is
360   inited at curl_easy_init() time and cleared at curl_easy_cleanup() time that
361   we can use internally to detect that an easy handle seems to be fine, or at
362   least not closed or freed (freeing in debug builds fill the area with 0x13
363   bytes but in normal builds we can of course not assume any particular data
364   in the freed areas).
365
366 Daniel (9 September 2006)
367 - Michele Bini fixed how the hostname is put in NTLM packages. As servers
368   don't expect fully qualified names we need to cut them off at the first dot.
369
370 - Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some
371   of them can be completetly removed though...
372
373 Daniel (6 September 2006)
374 - Ravi Pratap and I have implemented HTTP Pipelining support. Enable it for a
375   multi handle using CURLMOPT_PIPELINING and all HTTP connections done on that
376   handle will be attempted to get pipelined instead of done in parallell as
377   they are performed otherwise.
378
379   As a side-effect from this work, connections are now shared between all easy
380   handles within a multi handle, so if you use N easy handles for transfers,
381   each of them can pick up and re-use a connection that was previously used by
382   any of the handles, be it the same or one of the others.
383
384   This separation of the tight relationship between connections and easy
385   handles is most noticable when you close easy handles that have been used in
386   a multi handle and check amount of used memory or watch the debug output, as
387   there are times when libcurl will keep the easy handle around for a while
388   longer to be able to close it properly. Like for sending QUIT to close down
389   an FTP connection.
390
391   This is a major change.
392   
393 Daniel (4 September 2006)
394 - Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a
395   patch that while not fixing things very nicely, it does make the SOCKS5
396   proxy connection slightly better as it now acknowledges the timeout for
397   connection and it no longer segfaults in the case when SOCKS requires
398   authentication and you did not specify username:password.
399
400 Daniel (31 August 2006)
401 - Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch
402   name resolves. It could get stuck in the wrong state.
403
404 Gisle (29 August 2006)
405 - Added support for other MS-DOS compilers (desides djgpp). All MS-DOS
406   compiler now uses the same config.dos file (renamed to config.h by
407   make). libcurl now builds fine using Watcom and Metaware's High-C
408   using the Watt-32 tcp/ip-stack.
409
410 Daniel (29 August 2006)
411 - David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA to
412   allow applications to set their own socket options.
413
414 Daniel (25 August 2006)
415 - Armel Asselin reported that the 'running_handles' counter wasn't updated
416   properly if you removed a "live" handle from a multi handle with
417   curl_multi_remove_handle().
418
419 Daniel (22 August 2006)
420 - David McCreedy fixed a remaining mistake from the August 19 TYPE change.
421
422 - Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
423   code when doing pure ipv6 EPRT connections.
424
425 Daniel (19 August 2006)
426 - Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
427   command on subsequent requests on a re-used connection unless it has to.
428
429 - Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and
430   files in the root directory.
431
432 - Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't
433   send the whole request at once, even though the Expect: header was disabled
434   by the application. An effect of this change is also that small (< 1024
435   bytes) POSTs are now always sent without Expect: header since we deem it
436   more costly to bother about that than the risk that we send the data in
437   vain.
438
439 Daniel (9 August 2006)
440 - Armel Asselin made the CURLOPT_PREQUOTE option work fine even when
441   CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place
442   in the command sequence as it would have run if there would've been a
443   transfer.
444
445 Daniel (8 August 2006)
446 - Fixed a flaw in the "Expect: 100-continue" treatment. If you did two POSTs
447   on a persistent connection and allowed the first to use that header, you
448   could not disable it for the second request.
449
450 Daniel (7 August 2006)
451 - Domenico Andreolfound a quick build error which happened because
452   src/config.h.in was not a proper duplcate of lib/config.h.in which it
453   should've been and this was due to the maketgz script not doing the cp
454   properly.
455
456 Version 7.15.5 (7 August 2006)
457
458 Daniel (2 August 2006)
459 - Mark Lentczner fixed how libcurl was not properly doing chunked encoding
460   if the header "Transfer-Encoding: chunked" was set by the application.
461   http://curl.haxx.se/bug/view.cgi?id=1531838
462
463 Daniel (1 August 2006)
464 - Maciej Karpiuk fixed a crash that would occur if we passed Curl_strerror()
465   an unknown error number on glibc systems.
466   http://curl.haxx.se/bug/view.cgi?id=1532289
467
468 Daniel (31 July 2006)
469 - *ALERT* curl_multi_socket() and curl_multi_socket_all() got modified
470   prototypes: they both now provide the number of running handles back to the
471   calling function. It makes the functions resemble the good old
472   curl_multi_perform() more and provides a nice way to know when the multi
473   handle goes empty.
474
475   ALERT2: don't use the curl_multi_socket*() functionality in anything
476   production-like until I say it's somewhat settled, as I suspect there might
477   be some further API changes before I'm done...
478
479 Daniel (28 July 2006)
480 - Yves Lejeune fixed so that replacing Content-Type: when doing multipart
481   formposts work exactly the way you want it (and the way you'd assume it
482   works).
483
484 Daniel (27 July 2006)
485 - David McCreedy added --ftp-ssl-reqd which makes curl *require* SSL for both
486   control and data connection, as the existing --ftp-ssl option only requests
487   it.
488
489 - [Hiper-related work] Added a function called curl_multi_assign() that will
490   set a private pointer added to the internal libcurl hash table for the
491   particular socket passed in to this function:
492
493   CURLMcode curl_multi_assign(CURLM *multi_handle,
494                               curl_socket_t sockfd,
495                               void *sockp);
496
497   'sockp' being a custom pointer set by the application to be associated with
498   this socket. The socket has to be already existing and in-use by libcurl,
499   like having already called the callback telling about its existance.
500
501   The set hashp pointer will then be passed on to the callback in upcoming
502   calls when this same socket is used (in the brand new 'socketp' argument).
503
504 Daniel (26 July 2006)
505 - Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curl
506   tool option named --ftp-alternative-to-user. It provides a mean to send a
507   particular command if the normal USER/PASS approach fails.
508
509 - Michael Jerris added magic that builds lib/curllib.vcproj automatically for
510   newer MSVC.
511
512 Daniel (25 July 2006)
513 - Georg Horn made the transfer timeout error message include more details.
514
515 Daniel (20 July 2006)
516 - David McCreedy fixed a build error when building libcurl with HTTP disabled,
517   problem added with the curl_formget() patch.
518
519 Daniel (17 July 2006)
520 - Jari Sundell did some excellent research and bug tracking, figured out that
521   we did wrong and patched it: When nodes were removed from the splay tree,
522   and we didn't properly remove it from the splay tree when an easy handle was
523   removed from a multi stack and thus we could wrongly leave a node in the
524   splay tree pointing to (bad) memory.
525
526 Daniel (14 July 2006)
527 - David McCreedy fixed a flaw where the CRLF counter wasn't properly cleared
528   for FTP ASCII transfers.
529
530 Daniel (8 July 2006)
531 - Ates Goral pointed out that libcurl's cookie parser did case insensitive
532   string comparisons on the path which is incorrect and provided a patch that
533   fixes this. I edited test case 8 to include details that test for this.
534
535 - Ingmar Runge provided a source snippet that caused a crash. The reason for
536   the crash was that libcurl internally was a bit confused about who owned the
537   DNS cache at all times so if you created an easy handle that uses a shared
538   DNS cache and added that to a multi handle it would crash. Now we keep more
539   careful internal track of exactly what kind of DNS cache each easy handle
540   uses: None, Private (allocated for and used only by this single handle),
541   Shared (points to a cache held by a shared object), Global (points to the
542   global cache) or Multi (points to the cache within the multi handle that is
543   automatically shared between all easy handles that are added with private
544   caches).
545
546 Daniel (4 July 2006)
547 - Toshiyuki Maezawa fixed a problem where you couldn't override the
548   Proxy-Connection: header when using a proxy and not doing CONNECT.
549
550 Daniel (24 June 2006)
551 - Michael Wallner added curl_formget(), which allows an application to extract
552   (serialise) a previously built formpost (as with curl_formadd()).
553
554 Daniel (23 June 2006)
555 - Arve Knudsen found a flaw in curl_multi_fdset() for systems where
556   curl_socket_t is unsigned (like Windows) that could cause it to wrongly
557   return a max fd of -1.
558
559 Daniel (20 June 2006)
560 - Peter Silva introduced CURLOPT_MAX_SEND_SPEED_LARGE and
561   CURLOPT_MAX_RECV_SPEED_LARGE that limit tha maximum rate libcurl is allowed
562   to send or receive data. This kind of adds the the command line tool's
563   option --limit-rate to the library.
564
565   The rate limiting logic in the curl app is now removed and is instead
566   provided by libcurl itself. Transfer rate limiting will now also work for -d
567   and -F, which it didn't before.
568
569 Daniel (19 June 2006)
570 - Made -K on a file that couldn't be read cause a warning to be displayed.
571
572 Daniel (13 June 2006)
573 - Dan Fandrich implemented --enable-hidden-symbols configure option to enable
574   -fvisibility=hidden on gcc >= 4.0.  This reduces the size of the libcurl
575   binary and speeds up dynamic linking by hiding all the internal symbols from
576   the symbol table.
577
578 Version 7.15.4 (12 June 2006)
579
580 Daniel (8 June 2006)
581 - Brian Dessent fixed the code for cygwin in three distinct ways:
582
583   The first modifies {lib,src}/setup.h to not include the winsock headers
584   under Cygwin.  This fixes the reported build problem.  Cygwin attempts as
585   much as possible to emulate a posix environment under Windows.  This means
586   that WIN32 is *not* #defined and (to the extent possible) everything is done
587   as it would be on a *ix type system.  Thus <sys/socket.h> is the proper
588   include, and even though winsock2.h is present, including it just introduces
589   a whole bunch of incompatible socket API stuff.
590
591   The second is a patch I've included in the Cygwin binary packages for a
592   while.  It skips two unnecessary library checks (-lwinmm and -lgdi32).  The
593   checks are innocuous and they do succeed, but they pollute LIBS with
594   unnecessary stuff which gets recorded as such in the libcurl.la file, which
595   brings them into the build of any libcurl-downstream.  As far as I know
596   these libs are really only necessary for mingw, so alternatively they could
597   be designed to only run if $host matches *-*-mingw* but I took the safer
598   route of skipping them for *-*-cygwin*.
599
600   The third patch replaces all uses of the ancient and obsolete __CYGWIN32__
601   with __CYGWIN__. Ref: <http://cygwin.com/ml/cygwin/2003-09/msg01520.html>.
602
603 Daniel (7 June 2006)
604 - Mikael Sennerholm provided a patch that added NTLM2 session response support
605   to libcurl. The 21 NTLM test cases were again modified to comply...
606
607 Daniel (27 May 2006)
608 - Ã“scar Morales Vivó updated the libcurl.framework.make file.
609
610 Daniel (26 May 2006)
611 - Olaf Stüben fixed a bug that caused Digest authentication with md5-sess to
612   fail. When using the md5-sess, the result was not Md5 encoded and Base64
613   transformed.
614
615 Daniel (25 May 2006)
616 - Michael Wallner provided a patch that allows "SESS" to be set with
617   CURLOPT_COOKIELIST, which then makes all session cookies get cleared.
618
619 Daniel (24 May 2006)
620 - Tor Arntsen made test 271 run fine again since the TFTP path fix.
621
622 Daniel (23 May 2006)
623 - Martin Michlmayr filed debian bug report #367954, but the same error also
624   showed up in the autobuilds. It seems a rather long-since introduced shell
625   script flaw in the configure script suddenly was detected by the bash
626   version in Debian Unstable. It had previously passed undetected by all
627   shells used so far...
628
629 - David McCreedy updated lib/config-tpf.h
630
631 Daniel (11 May 2006)
632 - Fixed the configure's check for old-style SSLeay headers since I fell over a
633   case with a duplicate file name (a krb4 implementation with an err.h
634   file). I converted the check to manually make sure three of the headers are
635   present before considering them fine.
636
637 - David McCreedy provided a fix for CURLINFO_LASTSOCKET that does extended
638   checks on the to-be-returned socket to make sure it truly seems to be alive
639   and well. For SSL connection it (only) uses OpenSSL functions.
640
641 Daniel (10 May 2006)
642 - Fixed DICT in two aspects:
643
644   1 - allow properly URL-escaped words, like using %20 for spaces
645
646   2 - properly escape certain letters within a word to comply to the RFC2229
647
648 Daniel (9 May 2006)
649 - Andreas Ntaflos reported a bug in libcurl.m4: When configuring my GNU
650   autotools project, which optionally (default=yes) uses libcurl on a system
651   without a (usable) libcurl installation, but not specifying
652   `--without-libcurl', configure determines correctly that no libcurl is
653   available, however, the LIBCURL variable gets expanded to `LIBCURL = -lcurl'
654   in the resulting Makefiles.
655
656   David Shaw fixed the flaw.
657
658 - Robson Braga Araujo fixed two problems in the recently added non-blocking SSL
659   connects. The state machine was not reset properly so that subsequent
660   connects using the same handle would fail, and there were two memory leaks.
661
662 - Robson Braga Araujo fixed a memory leak when you added an easy handle to a
663   multi stack and that easy handle had already been used to do one or more
664   easy interface transfers, as then the code threw away the previously used
665   DNS cache without properly freeing it.
666
667 Daniel (8 May 2006)
668 - Dan Fandrich went over the TFTP code and he pointed out and fixed numerous
669   problems:
670
671   * The received file is corrupted when a packet is lost and retransmitted
672     (this is a serious problem!)
673
674   * Transmitting a file aborts if a block is lost and retransmitted
675
676   * Data is stored in the wrong location in the buffer for uploads, so uploads
677     always fail (I don't see how it could have ever worked, but it did on x86
678     at least)
679
680   * A number of calls are made to strerror instead of Curl_strerror, making
681     the code not thread safe
682
683   * There are references to errno instead of Curl_sockerrno(), causing
684     incorrect error messages on Windows
685
686   * The file name includes a leading / which violates RFC3617. Doing something
687     similar to ftp, where two slashes after the host name means an absolute
688     reference seems a reasonable extension to fix this.
689
690   * Failures in EBCDIC conversion are not propagated up to the caller but are
691     silently ignored
692
693 - Fixed known bug #28. The TFTP code no longer assumes a packed struct and
694   thus works reliably on more platforms.
695
696 Daniel (5 May 2006)
697 - Roland Blom filed bug report #1481217
698   (http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele
699   Bini and David Byron. libcurl previously wrongly used GetLastError() on
700   windows to get error details after socket-related function calls, when it
701   really should use WSAGetLastError() instead.
702
703   When changing to this, the former function Curl_ourerrno() is now instead
704   called Curl_sockerrno() as it is necessary to only use it to get errno from
705   socket-related functions as otherwise it won't work as intended on Windows.
706
707 Daniel (4 May 2006)
708 - Mark Eichin submitted bug report #1480821
709   (http://curl.haxx.se/bug/view.cgi?id=1480821) He found and identified a
710   problem with how libcurl dealt with GnuTLS and a case where gnutls returned
711   GNUTLS_E_AGAIN indicating it would block. It would then return an unexpected
712   return code, making Curl_ssl_send() confuse the upper layer - causing random
713   28 bytes trash data to get inserted in the transfered stream.
714
715   The proper fix was to make the Curl_gtls_send() function return the proper
716   return codes that the callers would expect. The Curl_ossl_send() function
717   already did this.
718
719 Daniel (2 May 2006)
720 - Added a --checkfor option to curl-config to allow users to easier
721   write for example shell scripts that test for the presence of a
722   new-enough libcurl version. If --checkfor is given a version string
723   newer than what is currently installed, curl-config will return a
724   non-zero exit code and output a string about the unfulfilled
725   requirement.
726
727 Daniel (26 April 2006)
728 - David McCreedy brought initial line end conversions when doing FTP ASCII
729   transfers. They are done on non-windows systems and translate CRLF to LF.
730
731   I modified the 15 LIST-using test cases accordingly. The downside is that now
732   we'll have even more trouble to get the tests to run on Windows since they
733   should get CRLF newlines left intact which the *nix versions don't. I figure
734   the only sane thing to do is to add some kind of [newline] macro for the test
735   case files and have them expanded to the proper native line ending when the
736   test cases are run. This is however left to implement.
737
738 Daniel (25 April 2006)
739 - Paul Querna fixed libcurl to better deal with deflate content encoding
740   when the stream (wrongly) lacks a proper zlib header. This seems to be the
741   case on too many actual server implementations.
742
743 Daniel (21 April 2006)
744 - Ale Vesely fixed CURLOPT_INTERFACE when using a hostname.
745
746 Daniel (19 April 2006)
747 - Based on previous info from Tor Arntsen, I made configure detect the Intel
748   ICC compiler to add a compiler option for it, in order for configure to
749   properly be able to detect function prototypes.
750
751 - Robson Braga Araujo provided a patch that makes libcurl less eager to close
752   the control connection when using FTP, for example when you remove an easy
753   handle from a multi stack.
754
755 - Applied a patch by Ates Goral and Katie Wang that corrected my bad fix
756   attempt from April 10.
757
758 Daniel (11 April 2006)
759 - #1468330 (http://curl.haxx.se/bug/view.cgi?id=1468330) pointed out a bad
760   typecast in the curl tool leading to a crash with (64bit?) VS2005 (at least)
761   since the struct timeval field tv_sec is an int while time_t is 64bit.
762
763 Daniel (10 April 2006)
764 - Ates Goral found out that if you specified both CURLOPT_CONNECTTIMEOUT and
765   CURLOPT_TIMEOUT, the _longer_ time would wrongly be used for the SSL
766   connection time-out!
767
768 - I merged my hiper patch (http://curl.haxx.se/libcurl/hiper/) into the main
769   sources. See the lib/README.multi_socket for implementation story with
770   details. Don't expect it to work fully yet. I don't intend to blow any
771   whistles or ring any bells about it until I'm more convinced it works at
772   least somewhat reliably.
773
774 Daniel (7 April 2006)
775 - David McCreedy's EBCDIC and TPF changes. Three new curl_easy_setopt()
776   options (callbacks) were added:
777
778   CONV_FROM_NETWORK_FUNCTION
779   CONV_TO_NETWORK_FUNCTION
780   CONV_FROM_UTF8_FUNCTION
781
782 Daniel (5 April 2006)
783 - Michele Bini modified the NTLM code to work for his "weird IIS case"
784   (http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash
785   function in addition to the LM one and making some other adjustments in the
786   order the different parts of the data block are sent in the Type-2 reply.
787   Inspiration for this work was taken from the Firefox NTLM implementation.
788
789   I edited the existing 21(!) NTLM test cases to run fine with these news. Due
790   to the fact that we now properly include the host name in the Type-2 message
791   the test cases now only compare parts of that chunk.
792
793 Daniel (28 March 2006)
794 - #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
795   occurred when asking libcurl to follow HTTP redirects and the original URL
796   had more than one question mark (?). Added test case 276 to verify.
797
798 Daniel (27 March 2006)
799 - David Byron found a problem multiple -d options when libcurl was built with
800   --enable-debug, as then curl used free() on memory allocated both with
801   normal malloc() and with libcurl-provided functions, when the latter MUST be
802   freed with curl_free() in debug builds.
803
804 Daniel (26 March 2006)
805 - Tor Arntsen figured out that TFTP was broken on a lot of systems since we
806   called bind() with a too big argument in the 3rd parameter and at least
807   Tru64, AIX and IRIX seem to be very picky about it.
808
809 Daniel (21 March 2006)
810 - David McCreedy added CURLINFO_FTP_ENTRY_PATH.
811
812 - Xavier Bouchoux made the SSL connection non-blocking for the multi interface
813   (when using OpenSSL).
814
815 - Tor Arntsen fixed the AIX Toolbox RPM spec
816
817 Daniel (20 March 2006)
818 - David McCreedy fixed libcurl to no longer ignore AUTH failures and now it
819   reacts properly according to the CURLOPT_FTP_SSL setting.
820
821 - Dan Fandrich fixed two TFTP problems: Fixed a bug whereby a received file
822   whose length was a multiple of 512 bytes could have random garbage
823   appended. Also, stop processing TFTP packets which are too short to be
824   legal.
825
826 - Ilja van Sprundel reported a possible crash in the curl tool when using
827   "curl hostwithoutslash -d data -G"
828
829 Version 7.15.3 (20 March 2006)
830
831 Daniel (20 March 2006)
832 - VULNERABILITY reported to us by Ulf Harnhammar.
833
834   libcurl uses the given file part of a TFTP URL in a manner that allows a
835   malicious user to overflow a heap-based memory buffer due to the lack of
836   boundary check.
837
838   This overflow happens if you pass in a URL with a TFTP protocol prefix
839   ("tftp://"), using a valid host and a path part that is longer than 512
840   bytes.
841
842   The affected flaw can be triggered by a redirect, if curl/libcurl is told to
843   follow redirects and an HTTP server points the client to a tftp URL with the
844   characteristics described above.
845
846   The Common Vulnerabilities and Exposures (CVE) project has assigned the name
847   CVE-2006-1061 to this issue.
848
849 Daniel (16 March 2006)
850 - Tor Arntsen provided a RPM spec file for AIX Toolbox, that now is included
851   in the release archive.
852
853 Daniel (14 March 2006)
854 - David McCreedy fixed:
855
856   a bad SSL error message when OpenSSL certificates are verified fine.
857
858   a missing return code assignment in the FTP code
859
860 Daniel (7 March 2006)
861 - Markus Koetter filed debian bug report #355715 which identified a problem
862   with the multi interface and multi-part formposts. The fix from February
863   22nd could make the Curl_done() function get called twice on the same
864   connection and it was not designed for that and thus tried to call free() on
865   an already freed memory area!
866
867 - Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL
868   is used properly.
869
870 Daniel (6 March 2006)
871 - Lots of users on Windows have reported getting the "SSL: couldn't set
872   callback" error message so I've now made the setting of that callback not be
873   as critical as before. The function is only used for additional loggging/
874   trace anyway so a failure just means slightly less data. It should still be
875   able to proceed and connect fine to the server.
876
877 Daniel (4 March 2006)
878 - Thomas Klausner provided a patch written by Todd Vierling in bug report
879   #1442471 that fixes a build problem on Interix.
880
881 Daniel (2 March 2006)
882 - FTP upload without a file name part in the URL now causes
883   curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the
884   upload but named the file "(nil)" (without the quotes). Test case 524
885   verifies.
886
887 - Added a check for getprotobyname in configure so that it'll be used, thanks
888   to Gisle Vanem's change the other day.
889
890 Daniel (28 February 2006)
891 - Dan Fandrich prevented curl from getting stuck in an endless loop in case we
892   are out of file handles very early in curl's code where it makes sure that
893   0, 1 and 2 aren't gonna be used by the lib for transfers.
894
895 Daniel (27 February 2006)
896 - Marty Kuhrt pointed out that there were two VMS-specific files missing in
897   the release archive.
898
899 Version 7.15.2 (27 February 2006)
900
901 Daniel (22 February 2006)
902 - Lots of work and analysis by "xbx___" in bug #1431750
903   (http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two
904   different but related bugs:
905
906   1) Removing an easy handle from a multi handle before the transfer is done
907      could leave a connection in the connection cache for that handle that is
908      in a state that isn't suitable for re-use. A subsequent re-use could then
909      read from a NULL pointer and segfault.
910
911   2) When an easy handle was removed from the multi handle, there could be an
912      outstanding c-ares DNS name resolve request. When the response arrived,
913      it caused havoc since the connection struct it "belonged" to could've
914      been freed already.
915
916   Now Curl_done() is called when an easy handle is removed from a multi handle
917   pre-maturely (that is, before the transfer was complteted). Curl_done() also
918   makes sure to cancel all (if any) outstanding c-ares requests.
919
920 Daniel (21 February 2006)
921 - Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy
922   type to the already provided type CURLPROXY_SOCKS4.
923
924   I added a --socks4 option that works like the current --socks5 option but
925   instead use the socks4 protocol.
926
927 Daniel (20 February 2006)
928 - Shmulik Regev fixed an issue with multi-pass authentication and compressed
929   content when libcurl didn't honor the internal ignorebody flag.
930
931 Daniel (18 February 2006)
932 - Ulf Härnhammar fixed a format string (printf style) problem in the Negotiate
933   code. It should however not be the cause of any troubles. He also fixed a
934   few similar problems in the HTTP test server code.
935
936 Daniel (17 February 2006)
937 - Shmulik Regev provided a fix for the DNS cache when using short life times,
938   as previously it could be holding on to old cached entries longer than
939   requested.
940
941 Daniel (11 February 2006)
942 - Karl Moerder added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options
943   that an app can use to let libcurl only connect to a remote host and then
944   extract the socket from libcurl. libcurl will then not attempt to do any
945   transfer at all after the connect is done.
946
947 - Kent Boortz improved the configure check for GnuTLS to properly set LIBS
948   instead of LDFLAGS.
949
950 Daniel (8 February 2006)
951 - Philippe Vaucher provided a brilliant piece of test code that show a problem
952   with re-used FTP connections. If the second request on the same connection
953   was set not to fetch a "body", libcurl could get confused and consider it an
954   attempt to use a dead connection and would go acting mighty strange.
955
956 Daniel (2 February 2006)
957 - Make --limit-rate [num] mean bytes. It used to be that but it broke in my
958   change done in November 2005.
959
960 Daniel (30 January 2006)
961 - Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the
962   curl tool with --local-port. Plain and simply set the range of ports to bind
963   the local end of connections to. Implemented on to popular demand.
964
965 - Based on an error report by Philippe Vaucher, we no longer count a retried
966   connection setup as a follow-redirect. It turns out 1) this fails when a FTP
967   connection is re-setup and 2) it does make the max-redirs counter behave
968   wrong.
969
970 Daniel (24 January 2006)
971 - Michal Marek provided a patch for FTP that makes libcurl continue to try
972   PASV even after EPSV returned a positive response code, if libcurl failed to
973   connect to the port number the EPSV response said. Obviously some people are
974   going through protocol-sensitive firewalls (or similar) that don't
975   understand EPSV and then they don't allow the second connection unless PASV
976   was used. This also called for a minor fix of test case 238.
977
978 Daniel (20 January 2006)
979 - Duane Cathey was one of our friends who reported that curl -P [IP]
980   (CURLOPT_FTPPORT) didn't work for ipv6-enabed curls if the IP wasn't a
981   "native" IP while it works fine for ipv6-disabled builds!
982
983   In the process of fixing this, I removed the support for LPRT since I can't
984   think of many reasons to keep doing it and asking on the mailing list didn't
985   reveal anyone else that could either. The code that sends EPRT and PORT is
986   now also a lot simpler than before (IMHO).
987
988 Daniel (19 January 2006)
989 - Jon Turner pointed out that doing -P [hostname] (CURLOPT_FTPPORT) with curl
990   (built ipv4-only) didn't work.
991
992 Daniel (18 January 2006)
993 - As reported in bug #1408742 (http://curl.haxx.se/bug/view.cgi?id=1408742),
994   the configure script complained about a missing "missing" script if you ran
995   configure within a path whose name included one or more spaces. This is due
996   to a flaw in automake (1.9.6 and earlier). I've now worked around it by
997   including an "overloaded" version of the AM_MISSING_HAS_RUN script that'll
998   be used instead of the one automake ships with. This kludge needs to be
999   removed once we get an automake version with this problem corrected.
1000   Possibly we'll then need to convert this into a kludge depending on what
1001   automake version that is used and that is gonna be painful and I don't even
1002   want to think about that now...!
1003
1004 Daniel (17 January 2006)
1005 - David Shaw: Here is the latest libcurl.m4 autoconf tests. It is updated with
1006   the latest features and protocols that libcurl supports and has a minor fix
1007   to better deal with the obscure case where someone has more than one libcurl
1008   installed at the same time.
1009
1010 Daniel (16 January 2006)
1011 - David Shaw finally removed all traces of Gopher and we are now officially
1012   not supporting it. It hasn't been functioning for years anyway, so this is
1013   just finally stating what already was true. And a cleanup at the same time.
1014
1015 - Bryan Henderson turned the 'initialized' variable for curl_global_init()
1016   into a counter, and thus you can now do multiple curl_global_init() and you
1017   are then supposed to do the same amount of calls to curl_global_cleanup().
1018   Bryan has also updated the docs accordingly.
1019
1020 Daniel (13 January 2006)
1021 - Andrew Benham fixed a race condition in the test suite that could cause the
1022   test script to kill all processes in the current process group!
1023
1024 Daniel (12 January 2006)
1025 - Michael Jahn:
1026
1027   Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru
1028   HTTP proxy.
1029
1030   Fixed PROXYTUNNEL to work fine when you do ftp through a proxy.  It would
1031   previously overwrite internal memory and cause unpredicted behaviour!
1032
1033 Daniel (11 January 2006)
1034 - I decided to document the "secret option" here now, as I've received *NO*
1035   feedback at all on my mailing list requests from November 2005:
1036
1037   I'm looking for feedback and comments. I added some experimental code the
1038   other day, that allows a libcurl user to select what method libcurl should
1039   use to reach a file on a FTP(S) server.
1040
1041   This functionality is available in CVS code and in recent daily snapshots.
1042
1043   Let me explain...
1044
1045   The current name for the option is CURLOPT_FTP_FILEMETHOD (--ftp-method for
1046   the command line tool) and you set it to a long (there are currenly no
1047   defines for the argument values, just plain numericals). You can set three
1048   different "methods" that do this:
1049
1050   1 multicwd - like today, curl will do a single CWD operation for each path
1051            part in the given URL. For deep hierarchies this means very many
1052            commands. This is how RFC1738 says it should be done. This is the
1053            default.
1054
1055   2 nocwd - no CWD at all is done, curl will do SIZE, RETR, STOR etc and give
1056            a full path to the server.
1057
1058   3 singlecwd - make one CWD with the full target directory and then operate
1059             on the file "normally".
1060
1061   (With the command line tool you do --ftp-method [METHOD], where [METHOD] is
1062   one of "multicwd", "nocwd" or "singlecwd".)
1063
1064   What feedback I'm interested in:
1065
1066   1 - Do they work at all? Do you find servers where one of these don't work?
1067
1068   2 - What would proper names for the option and its arguments be, if we
1069       consider this feature good enough to get included and documented in
1070       upcoming releases?
1071
1072   3 - Should we make libcurl able to "walk through" these options in case of
1073       (path related) failures, or should it fail and let the user redo any
1074       possible retries?
1075
1076   (This option is not documented in any man page just yet since I'm not sure
1077   these names will be used or if the functionality will end up exactly like
1078   this.  And for the same reasons we have no test cases for these yet.)
1079
1080 Daniel (10 January 2006)
1081 - When using a bad path over FTP, as in when libcurl couldn't CWD into all
1082   given subdirs, libcurl would still "remember" the full path as if it is the
1083   current directory libcurl is in so that the next curl_easy_perform() would
1084   get really confused if it tried the same path again - as it would not issue
1085   any CWD commands at all, assuming it is already in the "proper" dir.
1086
1087   Starting now, a failed CWD command sets a flag that prevents the path to be
1088   "remembered" after returning.
1089
1090 Daniel (7 January 2006)
1091 - Michael Jahn fixed so that the second CONNECT when doing FTP over a HTTP
1092   proxy actually used a new connection and not sent the second request on the
1093   first socket!
1094
1095 Daniel (6 January 2006)
1096 - Alexander Lazic made the buildconf run the buildconf in the ares dir if that
1097   is present instead of trying to mimic that script in curl's buildconf
1098   script.
1099
1100 Daniel (3 January 2006)
1101 - Andres Garcia made the TFTP test server build with mingw.
1102 Daniel (16 December 2005)
1103 - Jean Jacques Drouin pointed out that you could only have a user name or
1104   password of 127 bytes or less embedded in a URL, where actually the code
1105   uses a 255 byte buffer for it! Modified now to use the full buffer size.
1106
1107 Daniel (12 December 2005)
1108 - Dov Murik corrected the HTTP_ONLY define to disable the TFTP support properly
1109
1110 Version 7.15.1 (7 December 2005)
1111
1112 Daniel (6 December 2005)
1113 - Full text here: http://curl.haxx.se/docs/adv_20051207.html Pointed out by
1114   Stefan Esser.
1115
1116   VULNERABILITY
1117
1118   libcurl's URL parser function can overflow a malloced buffer in two ways, if
1119   given a too long URL.
1120
1121   These overflows happen if you
1122  
1123   1 - pass in a URL with no protocol (like "http://") prefix, using no slash
1124       and the string is 256 bytes or longer. This leads to a single zero byte
1125       overflow of the malloced buffer.
1126
1127   2 - pass in a URL with only a question mark as separator (no slash) between
1128       the host and the query part of the URL. This leads to a single zero byte
1129       overflow of the malloced buffer.
1130
1131   Both overflows can be made with the same input string, leading to two single
1132   zero byte overwrites.
1133
1134   The affected flaw cannot be triggered by a redirect, but the long URL must
1135   be passed in "directly" to libcurl. It makes this a "local" problem. Of
1136   course, lots of programs may still pass in user-provided URLs to libcurl
1137   without doing much syntax checking of their own, allowing a user to exploit
1138   this vulnerability.
1139
1140   There is no known exploit at the time of this writing.
1141
1142
1143 Daniel (2 December 2005)
1144 - Jamie Newton pointed out that libcurl's file:// code would close() a zero
1145   file descriptor if given a non-existing file.
1146
1147 Daniel (24 November 2005)
1148 - Doug Kaufman provided a set of patches to make curl build fine on DJGPP
1149   again using configure.
1150
1151 - Yang Tse provided a whole series of patches to clear up compiler warnings on
1152   MSVC 6.
1153
1154 Daniel (17 November 2005)
1155 - I extended a patch from David Shaw to make libcurl _always_ provide an error
1156   string in the given error buffer to address the flaw mention on 21 sep 2005.
1157
1158 Daniel (16 November 2005)
1159 - Applied Albert Chin's patch that makes the libcurl.pc pkgconfig file get
1160   installed on 'make install' time.
1161
1162 Daniel (14 November 2005)
1163 - Quagmire reported that he needed to raise a NTLM buffer for SSPI to work
1164   properly for a case, and so we did. We raised it even for non-SSPI builds
1165   but it should not do any harm. http://curl.haxx.se/bug/view.cgi?id=1356715
1166
1167 - Jan Kunder's debian bug report
1168   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird
1169   error message for when you try to upload a file and the requested directory
1170   doesn't exist on the target server.
1171
1172 - Yang Tse fixed compiler warnings in lib/ssluse.c with OpenSSL 0.9.8 and in
1173   lib/memdebug.h that showed up in his msvc builds.
1174
1175 Daniel (13 November 2005)
1176 - Debian bug report 338681 by Jan Kunder: make curl better detect and report
1177   bad limit-rate units:
1178   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338681 Now curl will return
1179   error if a bad unit is used.
1180
1181 - Thanks to this nice summary of poll() implementations:
1182   http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene
1183   Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote
1184   connectin closure so we check for that case (too) and re-enable poll for
1185   cygwin builds.
1186
1187 Daniel (12 November 2005)
1188 - Eugene Kotlyarov found out that cygwin's poll() function isn't doing things
1189   right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable
1190   poll() and use select() on cygwin too (we already do the same choice on Mac
1191   OS X)
1192
1193 - Dima Barsky patched problem #1348930: the GnuTLS code completely ignored
1194   client certificates! (http://curl.haxx.se/bug/view.cgi?id=1348930).
1195
1196 Daniel (10 November 2005)
1197 - David Lang fixed IPv6 support for TFTP!
1198
1199 - Introducing range stepping to the curl globbing support. Now you can specify
1200   step counter by adding :[num] within the brackets when specifying a range:
1201
1202    [1-100:10]
1203    [a-z:2]
1204
1205   If no step counter is set, it defaults to 1 as before:
1206
1207    [1-100]
1208    [d-h]
1209
1210 Daniel (8 November 2005)
1211 - Removed the use of AI_CANONNAME in the IPv6-enabled resolver functions since
1212   we really have no use for reverse lookups of the address.
1213
1214   I truly hope these are the last reverse lookups we had lingering in the
1215   code!
1216
1217 - Dmitry Bartsevich discovered some issues in compatibilty of SSPI-enabled
1218   version of libcurl with different Windows versions. Current version of
1219   libcurl imports SSPI functions from secur32.dll. However, under Windows NT
1220   4.0 these functions are located in security.dll, under Windows 9x - in
1221   secur32.dll and Windows 2000 and XP contains both these DLLs (security.dll
1222   just forwards calls to secur32.dll).
1223
1224   Dmitry's patch loads proper library dynamically depending on Windows
1225   version. Function InitSecurityInterface() is used to obtain pointers to all
1226   of SSPI function in one structure.
1227
1228 Daniel (31 October 2005)
1229 - Vilmos Nebehaj improved libcurl's LDAP abilities:
1230
1231   The LDAP code in libcurl can't handle LDAP servers of LDAPv3 nor binary
1232   attributes in LDAP objects. So, I made a quick patch to address these
1233   problems.
1234
1235   The solution is simple: if we connect to an LDAP server, first try LDAPv3
1236   (which is the preferred protocol as of now) and then fall back to LDAPv2.
1237   In case of binary attributes, we first convert them to base64, just like the
1238   openldap client does. It uses ldap_get_values_len() instead of
1239   ldap_get_values() to be able to retrieve binary attributes correctly. I
1240   defined the necessary LDAP macros in lib/ldap.c to be able to compile
1241   libcurl without the presence of libldap
1242
1243 Daniel (27 October 2005)
1244 - Nis Jorgensen filed bug report #1338648
1245   (http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a
1246   feature request, but anyway. It pointed out that --max-redirs did not allow
1247   it to be set to 0, which then would return an error code on the first
1248   Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS
1249   set to 0, or -1 for infinity. Added test case 274 to verify.
1250
1251 - tommink[at]post.pl reported in bug report #1337723
1252   (http://curl.haxx.se/bug/view.cgi?id=1337723) that curl could not upload
1253   binary data from stdin on Windows if the data contained control-Z (hex 1a)
1254   since that is treated as end-of-file when read in text mode. Gisle Vanem
1255   pointed out the fix, and I made both -T and --data-binary take advantage of
1256   it.
1257
1258 - Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described
1259   in the man page, curl would send an invalid HTTP Range: header. The correct
1260   way would be to use "-r [number]-" or even "-r -[number]". Starting now,
1261   curl will warn if this is discovered, and automatically append a dash to the
1262   range before passing it to libcurl.
1263
1264 Daniel (25 October 2005)
1265 - Amol Pattekar reported a bug with great detail and a fine example in bug
1266   #1326306 (http://curl.haxx.se/bug/view.cgi?id=1326306). When using the multi
1267   interface and connecting to a host with multiple IP addresses, and one of
1268   the addresses fails to connect (the server must exist and respond, just not
1269   accept connections) libcurl leaks a socket descriptor. Thanks to the fine
1270   report, I could find and fix this.
1271
1272 Daniel (22 October 2005)
1273 - Dima Barsky reported a problem with GnuTLS-enabled libcurl in bug report
1274   #1334338 (http://curl.haxx.se/bug/view.cgi?id=1334338). When reading an SSL
1275   stream from a server and the server requests a "rehandshake", the current
1276   code simply returns this as an error. I have no good way to test this, but
1277   I've added a crude attempt of dealing with this situation slightly better -
1278   it makes a blocking handshake if this happens. Done like this because fixing
1279   this the "proper" way (that would handshake asynchronously) will require
1280   quite some work and I really need a good way to test this to do such a
1281   change.
1282
1283 Daniel (21 October 2005)
1284 - "Ofer" reported a problem when libcurl re-used a connection and failed to do
1285   it, it could then accidentally actually crash. Presumably, this concerns FTP
1286   connections.  http://curl.haxx.se/bug/view.cgi?id=1330310
1287
1288 - Temprimus improved the MSVC makefile so that the static debug SSL libs are
1289   linked to the executable and not to the libcurld.lib
1290   http://curl.haxx.se/bug/view.cgi?id=1326676
1291
1292 - Bradford Bruce made the windows resolver code properly return
1293   CURLE_COULDNT_RESOLVE_PROXY and CURLE_COULDNT_RESOLVE_HOST on resolving
1294   errors (as documented).
1295
1296 Daniel (20 October 2005)
1297 - Dave Dribin made libcurl understand and handle cases when the server
1298   (wrongly) sends *two* WWW-Authenticate headers for Digest. While this should
1299   never happen in a sane world, libcurl previously got into an infinite loop
1300   when this occurred. Dave added test 273 to verify this.
1301
1302 - Temprimus improved the MSVC makefile: "makes a build option available so if
1303   you set rtlibcfg=static for the make, then it would build with /MT. The
1304   default behaviour is /MD (the original)."
1305   http://curl.haxx.se/bug/view.cgi?id=1326665
1306
1307 Daniel (14 October 2005)
1308 - Reverted the LIBCURL_VERSION_NUM change from October 6. As Dave Dribin
1309   reported, the define is used by the configure script and is assumed to use
1310   the 0xYYXXZZ format. This made "curl-config --vernum" fail in the 7.15.0
1311   release version.
1312
1313 Version 7.15.0 (13 October 2005)
1314
1315 Daniel (12 October 2005)
1316 - Michael Sutton of iDEFENSE reported and I fixed a securitfy flaw in the NTLM
1317   code that would overflow a buffer if given a too long user name or domain
1318   name. This would happen if you enable NTLM authentication and either
1319
1320   A - pass in a user name and domain name to libcurl that together are longer
1321       than 192 bytes
1322
1323   B - allow (lib)curl to follow HTTP "redirects" (Location: and the
1324       appropriate HTTP 30x response code) and the new URL contains a URL with
1325       a user name and domain name that together are longer than 192 bytes
1326
1327   See http://curl.haxx.se/docs/security.html for further details and updates
1328
1329 Daniel (5 October 2005)
1330 - Darryl House reported a problem with using -z to download files from FTP.
1331   It turned out that if the given time stamp was exact the same as the remote
1332   time stamp, the file would still wrongly be downloaded. Added test case 272
1333   to verify.
1334
1335 Daniel (4 October 2005)
1336 - Domenico Andreoli fixed a man page malformat and removed odd (0xa0) bytes
1337   from the configure script.
1338
1339 - Michael Wallner reported that the date parser had wrong offset stored for
1340   the MEST and CEST time zones.
1341
1342 Daniel (27 September 2005)
1343 - David Yan filed bug #1299181 (http://curl.haxx.se/bug/view.cgi?id=1299181)
1344   that identified a silly problem with Content-Range: headers with the 'bytes'
1345   keyword written in a different case than all lowercase! It would cause a
1346   segfault!
1347
1348 - TJ Saunders of the proftpd project identified and pointed out problems with
1349   the modified FTPS negotiation change of August 19 2005. Thus, we revert the
1350   change back to pre-7.14.1 status.
1351
1352 Daniel (21 September 2005)
1353 - Fixed "cut off" sentence in the libcurl-tutorial man page:
1354   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329305
1355
1356 - Clarified in the curl_easy_setopt man page what the default
1357   CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA mean:
1358   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329311
1359
1360 - Clarified in the curl_easy_setopt man page that CURLOPT_ERRORBUFFER
1361   sometimes doesn't fill in the buffer even though it is supposed to:
1362   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329313
1363
1364 - When CURLE_URL_MALFORMAT is returned due to a missing URL, it now has an
1365   error string set.
1366
1367 Daniel (19 September 2005)
1368 - Dmitry Bartsevich made the SSPI support work on Windows 9x as well.
1369
1370 Daniel (15 September 2005)
1371 - Added a TFTP server to the test suite and made the test suite capable of
1372   using it.
1373
1374 Daniel (7 September 2005)
1375 - Ben Madsen's detailed reports that funnily enough only occurred with certain
1376   glibc versions turned out to be curl using an already closed file handle
1377   during certain conditions (like when saving FTP server "headers").
1378
1379 - Scott Davis helped me track down a problem in the test HTTP server that made
1380   test case 56 wrongly fail at times. It turned out it was due to the server
1381   finding the end of a chunked-encoded POST too early.
1382
1383 Daniel (6 September 2005)
1384 - Now curl warns if an unknown variable is used in the -w/--writeout argument.
1385
1386 Daniel (4 September 2005)
1387 - I applied Nicolas François' man page patch he posted to the Debian bug
1388   tracker. It corrected two lines that started with apostrophes, which isn't
1389   legal nroff format. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=326511
1390
1391 - Added --ftp-skip-pasv-ip to the command line tool, that sets the new
1392   CURLOPT_FTP_SKIP_PASV_IP option. It makes libcurl re-use the control
1393   connection's IP address when setting up the data connection instead of
1394   extractting the IP address from the PASV response. It has turned out this
1395   feature is frequently needed by people to circumvent silly servers and silly
1396   firewalls, especially when FTPS is used and the PASV command-response is
1397   sent encrtyped.
1398
1399   Sponsored by CU*Answers
1400
1401 Daniel (1 September 2005)
1402 - John Kelly added TFTP support to libcurl. A bunch of new error codes was
1403   added. TODO: add them to docs. add TFTP server to test suite. add TFTP to
1404   list of protocols whereever those are mentioned.
1405
1406 Version 7.14.1 (1 September 2005)
1407
1408 Daniel (29 August 2005)
1409 - Kevin Lussier pointed out a problem with curllib.dsp and how to fix it.
1410
1411 - Igor Polyakov fixed a rather nasty problem with the threaded name resolver
1412   for Windows, that could lead to an Access Violation when the multi interface
1413   was used due to an issue with how the resolver thread was and was not
1414   terminated.
1415
1416 - Simon Josefsson brought a patch that allows curl to get built to use GNU GSS
1417   instead of MIT/Heimdal for GSS capabilities.
1418
1419 Daniel (24 August 2005)
1420 - Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible
1421   from the command line tool with --ignore-content-length. This will make it
1422   easier to download files from Apache 1.x (and similar) servers that are
1423   still having problems serving files larger than 2 or 4 GB. When this option
1424   is enabled, curl will simply have to wait for the server to close the
1425   connection to signal end of transfer. I wrote test case 269 that runs a
1426   simple test to verify that this works.
1427
1428 - (Trying hard to exclude emotions now.) valgrind version 3 suddenly renamed
1429   the --logfile command line option to --log-file, and thus the test script
1430   valgrind autodetection now has yet another version check to do and then it
1431   alters the valgrind command line accordingly.
1432
1433 - Fixed CA cert verification using GnuTLS with the default bundle, which
1434   previously failed due to GnuTLS not allowing x509 v1 CA certs by default.
1435   Ralph Mitchell reported.
1436
1437 Daniel (19 August 2005)
1438 - Norbert Novotny had problems with FTPS and he helped me work out a patch
1439   that made curl run fine in his end. The key was to make sure we do the
1440   SSL/TLS negotiation immediately after the TCP connect is done and not after
1441   a few other commands have been sent like we did previously. I don't consider
1442   this change necessary to obey the standards, I think this server is pickier
1443   than what the specs allow it to be, but I can't see how this modified
1444   libcurl code can add any problems to those who are interpreting the
1445   standards more liberally.
1446
1447 Daniel (17 August 2005)
1448 - Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (with
1449   CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to
1450   write the result to a given cookie jar and then never actually call
1451   curl_easy_perform() - the given file(s) to read was never read but the
1452   output file was written and thus it caused a "funny" result.
1453
1454 - While doing some tests for the bug above, I noticed that Firefox generates
1455   large numbers (for the expire time) in the cookies.txt file and libcurl
1456   didn't treat them properly. Now it does.
1457
1458 Daniel (15 August 2005)
1459 - Added more verbose "warning" messages to the curl client for cases where it
1460   fails to open/read files etc to help users diagnose why it doesn't do what
1461   you'd expect it to. Converted lots of old messages to use the new generic
1462   function I wrote for this purpose.
1463
1464 Daniel (13 August 2005)
1465 - James Bursa identified a libcurl HTTP bug and a good way to repeat it. If a
1466   site responds with bad HTTP response that doesn't contain any header at all,
1467   only a response body, and the write callback returns 0 to abort the
1468   transfer, it didn't have any real effect but the write callback would be
1469   called once more anyway.
1470
1471 Daniel (12 August 2005)
1472 - Based on Richard Clayton's reports, I found out that using curl -d @filename
1473   when 'filename' was not possible to access made curl use a GET request
1474   instead.
1475
1476 - The time condition illegal syntax warning is now inhibited if -s is used.
1477
1478 Daniel (10 August 2005)
1479 - Mario Schroeder found out that one of the debug callbacks calls that regards
1480   SSL data with the CURLINFO_TEXT type claimed that the data was one byte
1481   larger than it actually is, thus falsely telling the application that the
1482   terminating zero was part of the data.
1483
1484 Daniel (9 August 2005)
1485 - Christopher R. Palmer fixed the offsets used for date parsings when the time
1486   zone name of a daylight savings time was used. For example, PDT vs PDS. This
1487   flaw was introduced with the new date parser (11 sep 2004 - 7.12.2).
1488   Fortunately, no web server or cookie string etc should be using such time
1489   zone names thus limiting the effect of this bug.
1490
1491 Daniel (8 August 2005)
1492 - Jon Grubbs filed bug report #1249962
1493   (http://curl.haxx.se/bug/view.cgi?id=1249962) which identified a problem
1494   with NTLM on a HTTP proxy if an FTP URL was given. libcurl now properly
1495   switches to pure HTTP internally when an HTTP proxy is used, even for FTP
1496   URLs. The problem would also occur with other multi-pass auth methods.
1497
1498 Daniel (7 August 2005)
1499 - When curl is built with GnuTLS, curl-config didn't include "SSL" when
1500   --features was used.
1501
1502 Daniel (28 July 2005)
1503 - If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST is
1504   set to 1, CURLOPT_NOBODY will now automatically be set to 0.
1505
1506 Daniel (27 July 2005)
1507 - Dan Fandrich changes over the last week: fixed numerous minor configure
1508   option parsing flaws: --without-gnutls, --without-spnego --without-gssapi
1509   and --without-krb4. Spellfixed several error messages.
1510
1511 - Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a
1512   simple interface to extracting and setting cookies in libcurl's internal
1513   "cookie jar". See the new cookie_interface.c example code.
1514
1515 Daniel (13 July 2005)
1516 - Diego Casorran provided patches to make curl build fine on Amiga again.
1517
1518 Daniel (12 July 2005)
1519 - Adrian Schuur added trailer support in the chunked encoding stream. The
1520   trailer is then sent to the normal header callback/stream. I wrote up test
1521   case 266 to verify the basic functionality. Do note that test case 34
1522   contains a flawed chunked encoding stream that still works the same.
1523
1524 Daniel (5 July 2005)
1525 - Gisle Vanem came up with a nice little work-around for bug #1230118
1526   (http://curl.haxx.se/bug/view.cgi?id=1230118). It seems the Windows (MSVC)
1527   libc time functions may return data one hour off if TZ is not set and
1528   automatic DST adjustment is enabled. This made curl_getdate() return wrong
1529   value, and it also concerned internal cookie expirations etc.
1530
1531 Daniel (4 July 2005)
1532 - Andrew Bushnell provided enough info for me to tell that we badly needed to
1533   fix the CONNECT authentication code with multi-pass auth methods (such as
1534   NTLM) as it didn't previously properly ignore response-bodies - in fact it
1535   stopped reading after all response headers had been received. This could
1536   lead to libcurl sending the next request and reading the body from the first
1537   request as response to the second request. (I also renamed the function,
1538   which wasn't strictly necessary but...)
1539
1540   The best fix would to once and for all make the CONNECT code use the
1541   ordinary request sending/receiving code, treating it as any ordinary request
1542   instead of the special-purpose function we have now. It should make it
1543   better for multi-interface too. And possibly lead to less code...
1544
1545   Added test case 265 for this. It doesn't work as a _really_ good test case
1546   since the test proxy is too stupid, but the test case helps when running the
1547   debugger to verify.
1548
1549 Daniel (30 June 2005)
1550 - Dan Fandrich improved the configure script's ability to figure out what kind
1551   of strerror_r() API that is used when cross-compiling. If __GLIB__ is
1552   defined, it assumes the glibc API. If not, it issues a notice as before that
1553   the user needs to manually edit lib/config.h for this.
1554
1555 Daniel (23 June 2005)
1556 - David Shaw's fix that unifies proxy string treatment so that a proxy given
1557   with CURLOPT_PROXY can use a http:// prefix and user + password. The user
1558   and password fields are now also URL decoded properly. Test case 264 added
1559   to verify.
1560
1561 Daniel (22 June 2005)
1562 - David Shaw updated libcurl.m4
1563
1564 Daniel (14 June 2005)
1565 - Gisle Vanem fixed a potential thread handle leak. Bug report #1216500
1566   (http://curl.haxx.se/bug/view.cgi?id=1216500).  Comment in
1567   http://curl.haxx.se/mail/lib-2005-06/0059.html
1568
1569 Daniel (13 June 2005)
1570 - Made buildconf run libtoolize in the ares dir too (inspired by Tupone's
1571   reverted patch).
1572
1573 Daniel (9 June 2005)
1574 - Incorporated Tupone's findtool fix in buildconf (slightly edited)
1575
1576 - Incorporated Tupone's head -n fix in buildconf.
1577
1578 Daniel (8 June 2005)
1579 - Reverted Tupone's patch again, it broke numerous autobuilds. Let's apply it
1580   in pieces, one by one and see what we need to adjust to work all over.
1581
1582 Daniel (6 June 2005)
1583 - Tupone Alfredo fixed three problems in buildconf:
1584
1585   1) findtool does look per tool in PATH and think ./perl is the perl
1586   executable, while is just a local directory (I have . in the PATH)
1587
1588   2) I got several warning for head -1 deprecated in favour of head -n 1
1589  
1590   3) ares directory is missing some file (missing is missing :-) ) because
1591   automake and friends is not run.
1592
1593 Daniel (3 June 2005)
1594 - Added docs/libcurl/getinfo-times, based on feedback from 'Edi':
1595   http://curl.haxx.se/feedback/display.cgi?id=11178325798299&support=yes
1596
1597 - Andres Garcia provided yet another text mode patch for several test cases so
1598   that they do text comparisions better on Windows (newline-wise).
1599
1600 Daniel (1 June 2005)
1601 - The configure check for c-ares now adds the cares lib before the other libs,
1602   to make it build fine with mingw. Inspired by Tupone Alfredo's bug report
1603   and patch: http://curl.haxx.se/bug/view.cgi?id=1212940
1604
1605 Daniel (31 May 2005)
1606 - Todd Kulesza reported a flaw in the proxy option, since a numerical IPv6
1607   address was not possible to use. It is now, but requires it written
1608   RFC2732-style, within brackets - which incidently is how you enter numerical
1609   IPv6 addresses in URLs. Test case 263 added to verify.
1610
1611 Daniel (30 May 2005)
1612 - Eric Cooper reported about a problem with HTTP servers that responds with
1613   binary zeroes within the headers. They confused libcurl to do wrong so the
1614   downloaded headers become incomplete. The fix is now verified with test case
1615   262. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310948
1616
1617 Daniel (25 May 2005)
1618 - Fixed problems with the test suite, and in particular the FTP test cases
1619   since it previously was failing every now and then in a nonsense manner.
1620
1621 - --trace-time now outputs the full microsecond, all 6 digits.
1622
1623 Daniel (24 May 2005)
1624 - Andres Garcia provided a text mode patch for several test cases so that they
1625   do text comparisions better on Windows (newline-wise).
1626
1627 - Any 2xx response (and not just 200) is now considered a fine response to
1628   TYPE, as some servers obviously sends a 226 there. Added test case 261 to
1629   verify. Based on a question/report by Georg Wicherski.
1630
1631 Daniel (20 May 2005)
1632 - Improved runtests.pl to allow stdout tests to be mode=text as well, just
1633   as file comparisons already supports. Added this info to the FILEFORMAT
1634   docs.
1635
1636 Daniel (18 May 2005)
1637 - John McGowan identified a problem in bug report #1204435
1638   (http://curl.haxx.se/bug/view.cgi?id=1204435) with malformed URLs like
1639   "http://somehost?data" as it added a slash too much in the request ("GET
1640   /?data/"...). Added test case 260 to verify.
1641
1642 - The configure check for strerror_r() failed to detect the proper API at
1643   times, like on HP-UX 10.20. Then lib/strerror.c badly assumed the glibc
1644   version if the posix define wasn't set (since it _had_ found a strerror_r).
1645
1646 Daniel (16 May 2005)
1647 - The gmtime_r() function in HP-UX 10.20 is broken. About 13 test cases fail
1648   due to this. There's now a configure check that attempts to detect the bad
1649   function and not use it on such systems.
1650
1651 Version 7.14.0 (16 May 2005)
1652
1653 Daniel (13 May 2005)
1654 - Grigory Entin reported that curl's configure detects a fine poll() for Mac
1655   OS X 10.4 (while 10.3 or later detected a "bad" one), but the executable
1656   doesn't work as good as if built without poll(). I've adjusted the configure
1657   to always skip the fine-poll() test on Mac OS X (darwin).
1658
1659 Daniel (12 May 2005)
1660 - When doing a second request (after a disconnect) using the same easy handle,
1661   over a proxy that uses NTLM authentication, libcurl failed to use NTLM again
1662   properly (the auth method was accidentally reset to the same as had been set
1663   for host auth, which defaults to Basic). Bug report #1200661
1664   (http://curl.haxx.se/bug/view.cgi?id=1200661) identified the the problem and
1665   the fix.
1666
1667 - If -z/--time-cond is used with an invalid date syntax, this is no longer
1668   silently discarded. Instead a proper warning message is diplayed that
1669   informs about it. But it still continues without the condition.
1670
1671 Version 7.14.0-pre2 (11 May 2005)
1672
1673 Daniel (11 May 2005)
1674 - Starting now, libcurl sends a little different set of headers in its default
1675   HTTP requests:
1676   
1677   A) Normal non-proxy HTTP:
1678     - no more "Pragma: no-cache" (this only makes sense to proxies)
1679
1680   B) Non-CONNECT HTTP request over proxy:
1681     - "Pragma: no-cache" is used (like before)
1682     - "Proxy-Connection: Keep-alive" (for older style 1.0-proxies)
1683
1684   C) CONNECT HTTP request over proxy:
1685     - "Host: [name]:[port]"
1686     - "Proxy-Connection: Keep-alive"
1687
1688   The A) case is mostly to reduce the default header size and remove a
1689   pointless header.
1690
1691   The B) is to address (rare) problems with HTTP 1.0 proxies
1692
1693   The C) headers are both to address (rare) problems with some proxies. The
1694   code in libcurl that deals with CONNECT requests need a rewrite, but it
1695   feels like a too big a job for me to do now. Details are added in the code
1696   comments for now.
1697
1698   Updated a large amount of test cases to reflect the news.
1699
1700 Daniel (10 May 2005)
1701 - Half-baked attempt to bail out if select() returns _only_ errorfds when the
1702   transfer is in progress. An attempt to fix Allan's problem. See
1703   http://curl.haxx.se/mail/lib-2005-05/0073.html and the rest of that thread
1704   for details.
1705
1706   I'm still not sure this is the right fix, but...
1707
1708 Version 7.14.0-pre1 (9 May 2005)
1709
1710 Daniel (2 May 2005)
1711 - Sort of "fixed" KNOWN_BUGS #4: curl now builds IPv6 enabled on AIX 4.3. At
1712   least it should no longer cause a compiler error. However, it does not have
1713   AI_NUMERICHOST so we cannot getaddrinfo() any numerical addresses with it
1714   (we use that for FTP PORT/EPRT)! So, I modified the configure check that
1715   checks if the getaddrinfo() is working, to use AI_NUMERICHOST since then
1716   it'll fail on AIX 4.3 and it will automatically build with IPv6 support
1717   disabled.
1718
1719 - Added --trace-time that when used adds a time stamp to each trace line that
1720   --trace, --trace-ascii and --verbose output. I also made the '>' display
1721   separate each line on the linefeed so that HTTP requests etc look nicer in
1722   the -v output.
1723
1724 - Made curl recognize the environment variables Lynx (and others?) support for
1725   pointing out the CA cert path/file: SSL_CERT_DIR and SSL_CERT_FILE. If
1726   CURL_CA_BUNDLE is not set, they are checked afterwards.
1727
1728   Like before: on windows if none of these are set, it checks for the ca cert
1729   file like this:
1730
1731   1. application's directory
1732   2. current working directory
1733   3. Windows System directory (e.g. C:\windows\system32)
1734   4. Windows Directory (e.g. C:\windows)
1735   5. all directories along %PATH%
1736
1737 Daniel (1 May 2005)
1738 - The runtests.pl script now starts test servers by doing fork() and exec()
1739   instead of the previous approach. This is less complicated and should
1740   hopefully lead to less "leaked" servers (servers that aren't stopped
1741   properly when the tests are stopped).
1742
1743 - Alexander Zhuravlev found a case when you did "curl -I [URL]" and it
1744   complained on the chunked encoding, even though a HEAD should never return a
1745   body and thus it cannot be a chunked-encoding problem!
1746
1747 Daniel (30 April 2005)
1748 - Alexander Zhuravlev found out that (lib)curl SIGSEGVed when using
1749   --interface on an address that can't be bound.
1750
1751 Daniel (28 April 2005)
1752 - Working on fixing up test cases to mark sections as 'mode=text' for things
1753   that curl writes as text files, since then they can get different line
1754   endings depending on OS. Andrés García helps me work this out.
1755
1756   Did lots of other minor tweaks on the test scripts to work better and more
1757   reliably find test servers and also kill test servers.
1758
1759 - Dan Fandrich pointed out how the runtests.pl script killed the HTTP server
1760   instead of the HTTPS server when closing it down.
1761
1762 Daniel (27 April 2005)
1763 - Paul Moore made curl check for the .curlrc file (_curlrc on windows) on two
1764   more places. First, CURL_HOME is a new environment variable that is used
1765   instead of HOME if it is set, to point out where the default config file
1766   lives. If there's no config file in the dir pointed out by one of the
1767   environment variables, the Windows version will instead check the same
1768   directory the executable curl is located in.
1769
1770 Daniel (26 April 2005)
1771 - Cory Nelson's work on nuking compiler warnings when building on x64 with
1772   VS2005.
1773
1774 Daniel (25 April 2005)
1775 - Fred New reported a bug where we used Basic auth and user name and password
1776   in .netrc, and when following a Location: the subsequent requests didn't
1777   properly use the auth as found in the netrc file. Added test case 257 to
1778   verify my fix.
1779
1780 - Based on feedback from Cory Nelson, I added some preprocessor magic in
1781   */setup.h and */config-win32.h to build fine with VS2005 on x64.
1782
1783 Daniel (23 April 2005)
1784 - Alex Suykov made the curl tool now assume that uploads using HTTP:// or
1785   HTTPS:// are the only ones that show output and thus motivates a switched
1786   off progress meter if the output is sent to the terminal. This makes FTP
1787   uploads without '>', -o or -O show the progress meter.
1788
1789 Daniel (22 April 2005)
1790 - Dave Dribin's MSVC makefile fix: set CURL_STATICLIB when it builds static
1791   library variants.
1792
1793 - Andres Garcia fixed configure to set the proper define when building static
1794   libcurl on windows.
1795
1796 - --retry-delay didn't work.
1797
1798 Daniel (18 April 2005)
1799 - Olivier reported that even though he used CURLOPT_PORT, libcurl clearly
1800   still used the default port. He was right. I fixed the problem and added the
1801   test cases 521, 522 and 523 to verify the fix.
1802
1803 - Toshiyuki Maezawa reported that when doing a POST with a read callback,
1804   libcurl didn't properly send an Expect: 100-continue header. It does now.
1805
1806 - I committed by mig change in the test suite's FTP server that moves out all
1807   socket/TCP code to a separate C program named sockfilt. And added 4 new
1808   test cases for FTP over IPv6.
1809
1810 Daniel (8 April 2005)
1811 - Cory Nelson reported a problem with a HTTP server that responded with a 304
1812   response containing an "illegal" Content-Length: header, which was not
1813   properly ignored by libcurl. Now it is. Test case 249 verifies.
1814
1815 Daniel (7 April 2005)
1816 - Added ability to build and run with GnuTLS as an alternative to OpenSSL for
1817   the secure layer. configure --with-gnutls enables with. Note that the
1818   previous OpenSSL check still has preference and if it first detects OpenSSL,
1819   it will not check for GnuTLS. You may need to explictly diable OpenSSL with
1820   --without-ssl.
1821
1822   This work has been sponsored by The Written Word.
1823
1824 Daniel (5 April 2005)
1825 - Christophe Legry fixed the post-upload check for FTP to not complain if the
1826   upload was skipped due to a time-condition as set with
1827   CURLOPT_TIMECONDITION. I added test case 247 and 248 to verify.
1828
1829 Version 7.13.2 (5 April 2005)
1830
1831 Daniel (4 April 2005)
1832 - Marcelo Juchem fixed the MSVC makefile for libcurl
1833
1834 - Gisle Vanem fixed a crash in libcurl, that could happen if the easy handle
1835   was killed before the threading resolver (windows only) still hadn't
1836   completed.
1837
1838 - Hardeep Singh reported a problem doing HTTP POST with Digest. (It was
1839   actually also affecting NTLM and Negotiate.) It turned out that if the
1840   server responded with 100 Continue before the initial 401 response, libcurl
1841   didn't take care of the response properly. Test case 245 and 246 added to
1842   verify this.
1843
1844 Daniel (30 March 2005)
1845 - Andres Garcia modified the configure script to check for libgdi32 before
1846   libcrypto, to make the SSL check work fine on msys/mingw.
1847
1848 Daniel (29 March 2005)
1849 - Tom Moers identified a flaw when you sent a POST with Digest authentication,
1850   as in the first request when curl sends a POST with Content-Length: 0, it
1851   still forcibly closed the connection before doing the next step in the auth
1852   negotiation.
1853
1854 - Jesper Jensen found out that FTP-SSL didn't work since my FTP
1855   rewrite. Fixing that was easy, but it also revealed a much worse problem:
1856   the FTP server response reader function didn't properly deal with reading
1857   responses in multiple tiny chunks properly! I modified the FTP server to
1858   allow it to produce such split-up responses to make sure curl deals with
1859   them as it should.
1860
1861 - Based on Augustus Saunders' comments and findings, the HTTP output auth
1862   function was fixed to use the proper proxy authentication when multiple ones
1863   are accepted. test 239 and test 243 were added to repeat the problems and
1864   verify the fixes.
1865
1866   --proxy-anyauth was added to the curl tool
1867
1868 Daniel (16 March 2005)
1869 - Tru64 and some IRIX boxes seem to not like test 237 as it is. Their
1870   inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted
1871   address which makes a different failure... Now I've modified the ipv4
1872   resolve code to use inet_pton() instead in an attempt to make these systems
1873   better detect this as a bad IP address rather than creating a toally bogus
1874   address that is then passed on and used.
1875
1876 Daniel (15 March 2005)
1877 - Dan Fandrich made the code properly use the uClibc's version of
1878   inet_ntoa_r() when built with it.
1879
1880 - Added test 237 and 238: test EPSV and PASV response handling when they get
1881   well- formated data back but using illegal values. In 237 PASV gets an IP
1882   address that is way bad. In 238 EPSV gets a port that is way out of range.
1883
1884 Daniel (14 March 2005)
1885 - Added a few missing features to the curl-config --features list
1886
1887 - Modified testcurl.pl to now offer
1888   1 - command line options for all info it previously only read from
1889       file: --name, --email, --desc and --configure
1890   2 - --nocvsup makes it not attempt to do cvs update
1891   3 - --crosscompile informs it and makes it not attempt things it can't do
1892
1893 - Fixed numerous win32 compiler warnings.
1894
1895 - Removed the lib/security.h file since it shadowed the mingw/win32 header
1896   with the same name which is needed for SSPI builds. The contents of the
1897   former security.h is now i krb4.h
1898
1899 - configure --enable-sspi now enables SSPI in the build. It only works for
1900   windows builds (including cross-compiles for windows).
1901
1902 Daniel (12 March 2005)
1903 - David Houlder added --form-string that adds that string to a multipart
1904   formpost part, without special characters having special meanings etc like
1905   --form features.
1906
1907 Daniel (11 March 2005)
1908 - curl_version_info() returns the feature bit CURL_VERSION_SSPI if it was
1909   built with SSPI support.
1910
1911 - Christopher R. Palmer made it possible to build libcurl with the
1912   USE_WINDOWS_SSPI on Windows, and then libcurl will be built to use the
1913   native way to do NTLM. SSPI also allows libcurl to pass on the current user
1914   and its password in the request.
1915
1916 Daniel (9 March 2005)
1917 - Dan F improved the SSL lib setup in configure.
1918
1919 - Nodak Sodak reported a crash when using a SOCKS4 proxy.
1920
1921 - Jean-Marc Ranger pointed out an embarassing debug printf() leftover in the
1922   multi interface code.
1923
1924 - Adjusted the man page for the curl_getdate() return value for dates after
1925   year 2038. For 32 bit time_t it returns 0x7fffffff but for 64bit time_t it
1926   returns either the correct value or even -1 on some systems that still seem
1927   to not deal with this properly. Tor Arntsen found a 64bit AIX system for us
1928   that did the latter. Gwenole Beauchesne's Mandrake patch put the lights on
1929   this problem in the first place.
1930
1931 Daniel (8 March 2005)
1932 - Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP
1933   file got a Last-Modified: header written to the data stream, corrupting the
1934   actual data. This was because some conditions from the previous FTP code was
1935   not properly brought into the new FTP code. I fixed and I added test case
1936   520 to verify. (This bug was introduced in 7.13.1)
1937
1938 - Dan Fandrich fixed the configure --with-zlib option to always consider the
1939   given path before any standard paths.
1940
1941 Daniel (6 March 2005)
1942 - Randy McMurchy was the first to report that valgrind.pm was missing from the
1943   release archive and thus 'make test' fails.
1944
1945 Daniel (5 March 2005)
1946 - Dan Fandrich added HAVE_FTRUNCATE to several config-*.h files.
1947
1948 - Added test case 235 that makes a resumed upload of a file that isn't present
1949   on the remote side. This then converts the operation to an ordinary STOR
1950   upload. This was requested/pointed out by Ignacio Vazquez-Abrams.
1951
1952   It also proved (and I fixed) a bug in the newly rewritten ftp code (and
1953   present in the 7.13.1 release) when trying to resume an upload and the
1954   servers returns an error to the SIZE command. libcurl then loops and sends
1955   SIZE commands infinitely.
1956
1957 - Dan Fandrich fixed a SSL problem introduced on February 9th that made
1958   libcurl attempt to load the whole random file to seed the PRNG. This is
1959   really bad since this turns out to be using /dev/urandom at times...
1960
1961 Version 7.13.1 (4 March 2005)
1962
1963 Daniel (4 March 2005)
1964 - Dave Dribin made it possible to set CURLOPT_COOKIEFILE to "" to activate
1965   the cookie "engine" without having to provide an empty or non-existing file.
1966
1967 - Rene Rebe fixed a -# crash when more data than expected was retrieved.
1968
1969 Daniel (22 February 2005)
1970 - NTLM and ftp-krb4 buffer overflow fixed, as reported here:
1971   http://www.securityfocus.com/archive/1/391042 and the CAN report here:
1972   http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0490
1973
1974   If these security guys were serious, we'd been notified in advance and we
1975   could've saved a few of you a little surprise, but now we weren't.
1976
1977 Daniel (19 February 2005)
1978 - Ralph Mitchell reported a flaw when you used a proxy with auth, and you
1979   requested data from a host and then followed a redirect to another
1980   host. libcurl then didn't use the proxy-auth properly in the second request,
1981   due to the host-only check for original host name wrongly being extended to
1982   the proxy auth as well. Added test case 233 to verify the flaw and that the
1983   fix removed the problem.
1984
1985 Daniel (18 February 2005)
1986 - Mike Dobbs reported a mingw build failure due to the lack of
1987   BUILDING_LIBCURL being defined when libcurl is built. Now this is defined by
1988   configure when mingw is used.
1989
1990 Daniel (17 February 2005)
1991 - David in bug report #1124588 found and fixed a socket leak when libcurl
1992   didn't close the socket properly when returning error due to failing
1993   localbind
1994
1995 Daniel (16 February 2005)
1996 - Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth"
1997   that picks NTLM. Thanks to David Byron letting me test NTLM against his
1998   servers, I could quickly repeat and fix the problem. It turned out to be:
1999
2000   When libcurl POSTs without knowing/using an authentication and it gets back
2001   a list of types from which it picks NTLM, it needs to either continue
2002   sending its data if it keeps the connection alive, or not send the data but
2003   close the connection. Then do the first step in the NTLM auth. libcurl
2004   didn't send the data nor close the connection but simply read the
2005   response-body and then sent the first negotiation step. Which then failed
2006   miserably of course. The fixed version forces a connection if there is more
2007   than 2000 bytes left to send.
2008
2009 Daniel (14 February 2005)
2010 - The configure script didn't check for ENGINE_load_builtin_engines() so it
2011   was never used.
2012
2013 Daniel (11 February 2005)
2014 - Removed all uses of strftime() since it uses the localised version of the
2015   week day names and month names and servers don't like that.
2016
2017 Daniel (10 February 2005)
2018 - Now the test script disables valgrind-testing when the test suite runs if
2019   libcurl is built shared. Otherwise valgrind only tests the shell that runs
2020   the wrapper-script named 'curl' that is a front-end to curl in this case.
2021   This should also fix the huge amount of reports of false positives when
2022   valgrind has identified leaks in (ba)sh and not in curl and people report
2023   that as curl bugs. Bug report #1116672 is one example.
2024
2025   Also, the valgrind report parser has been adapted to check that at least one
2026   of the sources in a stack strace is one of (lib)curl's source files or
2027   otherwise it will not consider the problem to concern (lib)curl.
2028
2029 - Marty Kuhrt streamlined the VMS build.
2030
2031 Daniel (9 February 2005)
2032 - David Byron fixed his SSL problems, initially mentioned here:
2033   http://curl.haxx.se/mail/lib-2005-01/0240.html. It turned out we didn't use
2034   SSL_pending() as we should.
2035
2036 - Converted lots of FTP code to a statemachine, so that the multi interface
2037   doesn't block while communicating commands-responses with an FTP server.
2038
2039   I've added a comment like BLOCKING in the code on all spots I could find
2040   where we still have blocking operations. When we change curl_easy_perform()
2041   to use the multi interface, we'll also be able to simplify the code since
2042   there will only be one "internal interface".
2043
2044   While doing this, I've now made CURLE_FTP_ACCESS_DENIED separate from the
2045   new CURLE_LOGIN_DENIED. The first one is now access denied to a function,
2046   like changing directory or retrieving a file, while the second means that we
2047   were denied login.
2048
2049   The CVS tag 'before_ftp_statemachine' was set just before this went in, in
2050   case of future need.
2051
2052 - Gisle made the DICT code send CRLF and not just LF as the spec says so.
2053
2054 Daniel (8 February 2005)
2055 - Gisle fixed problems when libcurl runs out of memory, and worked on making
2056   sure the proper error code is returned for those occations.
2057
2058 Daniel (7 February 2005)
2059 - Maruko pointed out a problem with inflate decompressing exactly 64K
2060   contents.
2061
2062 Daniel (5 February 2005)
2063 - Eric Vergnaud found a use of an uninitialised variable in the ftp when doing
2064   PORT on ipv6-enabled hosts.
2065
2066 - David Byron pointed out we could use BUFSIZE to read data (in
2067   lib/transfer.c) instead of using BUFSIZE -1.
2068
2069 Version 7.13.0 (1 February 2005)
2070
2071 Daniel (31 January 2005)
2072 - Added Lars Nilsson's htmltitle.cc example
2073
2074 Daniel (30 January 2005)
2075 - Fixed a memory leak when using the multi interface and the DO operation
2076   failed (as in test case 205).
2077
2078 - Fixed a valgrind warning for file:// operations.
2079
2080 - Fixed a valgrind report in the url globbing code for the curl command line
2081   tool.
2082
2083 - Bugfixed the parser that scans the valgrind report outputs (in runtests.pl).
2084   I noticed that it previously didn't detect and report the "Conditional jump
2085   or move depends on uninitialised value(s)" error. When I fixed this, I
2086   caught a few curl bugs with it. And then I had to spend time to make the
2087   test suite IGNORE these errors when OpenSSL is used since it produce massive
2088   amounts of valgrind warnings (but only of the "Conditional..." kind it
2089   seems). So, if a test that requires SSL is run, it ignores the
2090   "Conditional..." errors, and you'll get a "valgrind PARTIAL" output instead
2091   of "valgrind OK".
2092
2093 Daniel (29 January 2005)
2094 - Using the multi interface, and doing a requsted a re-used connection that
2095   gets closed just after the request has been sent failed and did not re-issue
2096   a request on a fresh reconnect like the easy interface did. Now it does!
2097
2098 - Define CURL_MULTIEASY when building libcurl (lib/easy.c to be exact), to use
2099   my new curl_easy_perform() that uses the multi interface to run the
2100   request. It is a great testbed for the multi interface and I believe we
2101   shall do it this way for real in the future when we have a successor to
2102   curl_multi_fdset(). I've used this approach to detect and fix several of the
2103   recent multi-interfaces issues.
2104
2105 - Adjusted the KNOWN_BUGS #17 fix a bit more since the FTP code also did some
2106   bad assumptions.
2107
2108 - multi interface: when a request is denied due to "Maximum redirects
2109   followed" libcurl leaked the last Location: URL.
2110
2111 - Connect failures with the multi interface was often returned as "connect()
2112   timed out" even though the reason was different.
2113
2114 Daniel (28 January 2005)
2115 - KNOWN_BUGS #17 fixed. A DNS cache entry may not remain locked between two
2116   curl_easy_perform() invokes. It was previously unlocked at disconnect, which
2117   could mean that it remained locked between multiple transfers. The DNS cache
2118   may not live as long as the connection cache does, as they are separate.
2119
2120   To deal with the lack of DNS (host address) data availability in re-used
2121   connections, libcurl now keeps a copy of the IP adress as a string, to be
2122   able to show it even on subsequent requests on the same connection.
2123
2124   The problem could be made to appear with this stunt:
2125
2126   1. create a multi handle
2127   2. add an easy handle
2128   3. fetch a URL that is persistent (leaves the connection alive)
2129   4. remove the easy handle from the multi
2130   5. kill the multi handle
2131   6. create a multi handle
2132   7. add the same easy handle to the new multi handle
2133   8. fetch a URL from the same server as before (re-using the connection)
2134
2135 - Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work
2136   when built ipv6-enabled. I've now made a fix for it. Writing test cases for
2137   custom port hosts turned too tricky so unfortunately there's none.
2138
2139 Daniel (25 January 2005)
2140 - Ian Ford asked about support for the FTP command ACCT, and I discovered it
2141   is present in RFC959... so now (lib)curl supports it as well. --ftp-account
2142   and CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an
2143   account string after PASS have been sent away. The client responds
2144   with "ACCT [account string]".) Added test case 228 and 229 to verify the
2145   functionality. Updated the test FTP server to support ACCT somewhat.
2146
2147 - David Shaw contributed a fairly complete and detailed autoconf test you can
2148   use to detect libcurl and setup variables for the protocols the installed
2149   libcurl supports: docs/libcurl/libcurl.m4
2150
2151 Daniel (21 January 2005)
2152 - Major FTP third party transfer overhaul.
2153
2154   These four options are now obsolete: CURLOPT_SOURCE_HOST,
2155   CURLOPT_SOURCE_PATH, CURLOPT_SOURCE_PORT (this option didn't work before)
2156   and CURLOPT_PASV_HOST.
2157
2158   These two options are added: CURLOPT_SOURCE_URL and CURLOPT_SOURCE_QUOTE.
2159
2160   The target-side didn't use the proper path with RETR, and thus this only
2161   worked correctly in the login path (i.e without doing any CWD). The source-
2162   side still uses a wrong path, but the fix for this will need to wait. Verify
2163   the flaw by using a source URL with included %XX-codes.
2164
2165   Made CURLOPT_FTPPORT control weather the target operation should use PORT
2166   (or not). The other side thus uses passive (PASV) mode.
2167
2168   Updated the ftp3rdparty.c example source to use the updated options.
2169
2170   Added support for a second FTP server in the test suite. Named... ftp2.
2171   Added test cases 230, 231 and 232 as a few first basic tests of very simple
2172   3rd party transfers.
2173
2174   Changed the debug output to include 'target' and 'source' when a 3rd party
2175   is being made, to make it clearer what commands/responses came on what
2176   connection.
2177
2178   Added three new command line options: --3p-url, --3p-user and --3p-quote.
2179
2180   Documented the command line options and the curl_easy_setopt options related
2181   to third party transfers.
2182
2183   (Temporarily) disabled the ability to re-use an existing connection for the
2184   source connection. This is because it needs to force a new in case the
2185   source and target is the same host, and the host name check is trickier now
2186   when the source is identified with a full URL instead of a plain host name
2187   like before.
2188
2189   TODO (short-term) for 3rd party transfers: quote support. The options are
2190   there, we need to add test cases to verify their functionality.
2191
2192   TODO (long-term) for 3rd party transfers: IPv6 support (EPRT and EPSV etc)
2193   and SSL/TSL support.
2194
2195 Daniel (20 January 2005)
2196 - Philippe Hameau found out that -Q "+[command]" didn't work, although some
2197   code was written for it. I fixed and added test case 227 to verify it.
2198   The curl.1 man page didn't mention the '+' so I added it.
2199
2200 Daniel (19 January 2005)
2201 - Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL
2202   contains %0a or %0d in the user, password or CWD parts. (A future fix would
2203   include doing it for %00 as well - see KNOWN_BUGS for details.) Test case
2204   225 and 226 were added to verify this
2205
2206 - Stephan Bergmann pointed out two flaws in libcurl built with HTTP disabled:
2207
2208   1) the proxy environment variables are still read and used to set HTTP proxy
2209
2210   2) you couldn't disable http proxy with CURLOPT_PROXY (since the option was
2211      disabled). This is important since apps may want to disable HTTP proxy
2212      without actually knowing if libcurl was built to disable HTTP or not.
2213
2214   Based on Stephan's patch, both these issues should now be fixed.
2215
2216 Daniel (18 January 2005)
2217 - Cody Jones' enhanced version of Samuel Díaz García's MSVC makefile patch was
2218   applied.
2219
2220 Daniel (16 January 2005)
2221 - Alex aka WindEagle pointed out that when doing "curl -v dictionary.com", curl
2222   assumed this used the DICT protocol. While guessing protocols will remain
2223   fuzzy, I've now made sure that the host names must start with "[protocol]."
2224   for them to be a valid guessable name. I also removed "https" as a prefix
2225   that indicates HTTPS, since we hardly ever see any host names using that.
2226
2227 Daniel (13 January 2005)
2228 - Inspired by Martijn Koster's patch and example source at
2229   http://www.greenhills.co.uk/mak/gentoo/curl-eintr-bug.c, I now made the
2230   select() and poll() calls properly loop if they return -1 and errno is
2231   EINTR. glibc docs for this is found here:
2232   http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html
2233
2234   This last link says BSD doesn't have this "effect". Will there be a problem
2235   if we do this unconditionally?
2236
2237 Daniel (11 January 2005)
2238 - Dan Torop cleaned up a few no longer used variables from David Phillips'
2239   select() overhaul fix.
2240
2241 - Cyrill Osterwalder posted a detailed analysis about a bug that occurs when
2242   using a custom Host: header and curl fails to send a request on a re-used
2243   persistent connection and thus creates a new connection and resends it. It
2244   then sent two Host: headers. Cyrill's analysis was posted here:
2245   http://curl.haxx.se/mail/archive-2005-01/0022.html
2246
2247 - Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5
2248   problem with the version byte and the check for bad versions. Bruce has lots
2249   of clues on this, and based on his suggestion I've now removed the check of
2250   that byte since it seems to be able to contain 1 or 5.
2251
2252 Daniel (10 January 2005)
2253 - Pavel Orehov reported memory problems with the multi interface in bug report
2254   #1098843. In short, a shared DNS cache was setup for a multi handle and when
2255   the shared cache was deleted before the individual easy handles, the latter
2256   cleanups caused read/writes to already freed memory.
2257
2258 - Hzhijun reported a memory leak in the SSL certificate code, that leaked the
2259   remote certificate name when it didn't match the used host name.
2260
2261 Gisle (8 January 2005)
2262 - Added Makefile.Watcom files (src/lib). Updated Makefile.dist.
2263
2264 Daniel (7 January 2005)
2265 - Improved the test script's valgrind log parser to actually work! Also added
2266   the ability to disable the log scanner for specific test cases. Test case
2267   509 results in numerous problems and leaks in OpenSSL and has to get it
2268   disabled.
2269
2270 Daniel (6 January 2005)
2271 - Fixed a single-byte read out of bounds in test case 39 in the curl tool code
2272   (i.e not in the library).
2273
2274 - Bug report #1097019 identified a problem when doing -d "data" with -G and
2275   sending it to two URLs with {}. Added test 199 to verify the fix.
2276
2277 Daniel (4 January 2005)
2278 - Marty Kuhrt adjusted a VMS build script slightly
2279
2280 - Kai Sommerfeld and Gisle Vanem fixed libcurl to build with IPv6 support on
2281   Win2000.
2282
2283 Daniel (2 January 2005)
2284 - Alex Neblett updated the MSVC makefiles slightly.
2285 Daniel (25 December 2004)
2286 - Removed src/config.h.in from CVS, it is now copied from the (generated)
2287   lib/config.h.in instead, as they can very well be the same. This removes a
2288   "manual hassle". You may want to re-run buildconf now.
2289
2290 - Werner Koch filed Debian bug report #286794, mentioning that curl contained
2291   non-free (by Debian's view) source code. This was Angus Mackay's
2292   src/getpass.c source code. I tried to contact him about it to quickly solve
2293   this issue, but his email addresses bounce and I got some time "over" and
2294   reimplemented the functionality once brought by Angus. We no longer use any
2295   of Angus' original code and the new function is much simpler (IMO). Issue
2296   solved.
2297
2298 Daniel (24 December 2004)
2299 - David Shaw added --protocols to curl-config, so that it now lists all
2300   protocols libcurl was built to support. --feature no longer lists disabled
2301   protocols.
2302
2303 Daniel (23 December 2004)
2304 - David Shaw fixed the configure --disable-[protocol] variables so that
2305   curl-config --feature now works correctly!
2306
2307 Daniel (22 December 2004)
2308 - Rune Kleveland fixed a minor memory leak for received cookies with the
2309   (rare) version attribute set.
2310
2311 - Marcin Konicki provided two configure fixes and a source fix to make curl
2312   build out-of-the-box on BeOS.
2313
2314 Daniel (21 December 2004)
2315 - Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the
2316   -w option support 'http_connect' to make it easier to verify!
2317
2318 - Fixed lib/select.c include order to build fine on FreeBSD
2319
2320 - Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD.
2321   Pointed out by Peter Pentchev.
2322
2323 Version 7.12.3 (20 December 2004)
2324
2325 Daniel (19 December 2004)
2326 - I investigated our PKCS12 build problem on Solaris 2.7 with OpenSSL 0.9.7e,
2327   and it turned out to be the fault of the zlib 1.1.4 headers doing a typedef
2328   named 'free_func' and the OpenSSL headers have a prototype that uses
2329   'free_func' in one of its arguments. This is why the compile errors out.
2330
2331   In other words, we need to include the openssl/pkcs12.h header before the
2332   zlib.h header and it builds fine. The configure script now checks for this
2333   file and it then gets included early in lib/urldata.h.
2334
2335 Daniel (18 December 2004)
2336 - Samuel Listopad added support for PKCS12 formatted certificates.
2337
2338 - Samuel Listopad fixed -E to support "C:/path" (with forward slash) as well.
2339
2340 Daniel (16 December 2004)
2341 - Gisle found and fixed a problem in the directory re-use for FTP.
2342
2343   I added test case 215 and 216 to better verify the functionality.
2344
2345 - Dinar in bug report #1086121, found a file handle leak when a multipart
2346   formpost (including a file upload part) was aborted before the whole file
2347   was sent.
2348
2349 Daniel (15 December 2004)
2350 - Tom Lee found out that globbing of strings with backslashes didn't work as
2351   you'd expect. Backslashes are such a central part of windows file names that
2352   forcing backslashes to have to be escaped with backslashes is a bit too
2353   awkward to users. Starting now, you only need to escape globbing characters
2354   such as the five letters: "[]{},". Added test case 214 to verify this.
2355
2356 Daniel (14 December 2004)
2357 - Harshal Pradhan patched a HTTP persistent connection flaw: if the user name
2358   and/or password were modified between two requests on a persistent
2359   connection, the second request were still made with the first setup!
2360
2361   I added test case 519 to verify the fix.
2362
2363 Daniel (13 December 2004)
2364 - Gisle added CURLINFO_SSL_ENGINES to curl_easy_getinfo() to allow an app
2365   to list all available crypto ENGINES.
2366
2367 - Gisle fixed bug report #1083542, which pointed out a problem with resuming
2368   large file (>4GB) file:// transfers on windows.
2369
2370 Daniel (11 December 2004)
2371 - Made the test suite HTTP server (sws) capable of using IPv6, and then
2372   extended the test environment to support that and also added three test
2373   cases (240, 241, 242) that run tests using IPv6. Test 242 uses a URL that
2374   didn't work before the 10 dec fix by Kai Sommerfeld.
2375
2376 - Made a failed file:// resume output an error message
2377
2378 - Corrected the CURLE_BAD_DOWNLOAD_RESUME error message in lib/strerror.c
2379
2380 - Dan Fandrich:
2381
2382   simplified and consolidated the SSL checks in configure and the usage of the
2383   defines in lib/setup.h
2384
2385   provided a first libcurl.pc.in file for pkg-config (but the result is not
2386   installed anywhere at this point)
2387
2388   extended the cross compile section in the docs/INSTALL file
2389
2390 Daniel (10 December 2004)
2391 - When providing user name in the URL and a IPv6-style IP-address (like in
2392   "ftp://user@[::1]/tmp"), the URL parser didn't get the host extracted
2393   properly.  Reported and fixed by Kai Sommerfeld.
2394
2395 Daniel (9 December 2004)
2396 - Ton Voon provided a configure fix that should fix the notorious (mostly
2397   reported on Solaris) problem where the size_t check fails due to the SSL
2398   libs being found in a dir not searched through by the run-time linker.
2399   patch-tracker entry #1081707.
2400
2401 - Bryan Henderson pointed out in bug report #1081788 that the curl-config
2402   --vernum output wasn't zero prefixed properly (as claimed in documentation).
2403   This is fixed in maketgz now.
2404
2405 Daniel (8 December 2004)
2406 - Matt Veenstra updated the mach-O framework files for Mac OS X.
2407
2408 - Rene Bernhardt found and fixed a buffer overrun in the NTLM code, where
2409   libcurl always and unconditionally overwrote a stack-based array with 3 zero
2410   bytes. This is not an exploitable buffer overflow. No need to get alarmed.
2411
2412 Daniel (7 December 2004)
2413 - Fixed so that the final error message is sent to the verbose info "stream"
2414   even if no errorbuffer is set.
2415
2416 Daniel (6 December 2004)
2417 - Dan Fandrich added the --disable-cookies option to configure to build
2418   libcurl without cookie support. This is mainly useful if you want to build a
2419   minimalistic libcurl with no cookies support at all. Like for embedded
2420   systems or similar.
2421
2422 - Richard Atterer fixed libcurl's way of dealing with the EPSV
2423   response. Previously, libcurl would re-resolve the host name with the new
2424   port number and attempt to connect to that, while it should use the IP from
2425   the control channel. This bug made it hard to EPSV from an FTP server with
2426   multiple IP addresses!
2427
2428 Daniel (3 December 2004)
2429 - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly
2430   at a chunk boundary it was not considered an error and thus went unnoticed.
2431   Fixed by Maurice Barnum.
2432
2433   Added test case 207 to verify.
2434
2435 Daniel (2 December 2004)
2436 - Fixed the CONNECT loop to default timeout to 3600 seconds.
2437
2438   Added test case 206 that makes CONNECT with Digest.
2439
2440   Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user-
2441   agent field.
2442
2443 Daniel (30 November 2004)
2444 - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream
2445
2446 - Dan also helped me with input data to create three more test cases for the
2447   --compressed option.
2448
2449 Daniel (29 November 2004)
2450 - I improved the test suite to enable binary contents in the tests (by proving
2451   it base64 encoded), like for testing decompress etc. Added test 220 and 221
2452   for this purpose. Tests can now also depend on libz to run.
2453
2454 - As reported by Reinout van Schouwen in Mandrake's bug tracker bug 12285
2455   (http://qa.mandrakesoft.com/show_bug.cgi?id=12285), when connecting to an
2456   IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables
2457   the ability to transfer a file. Now, when connected to an FTP server with
2458   IPv6, these FTP commands can't be disabled even if asked to with the
2459   available libcurl options.
2460
2461 Daniel (26 November 2004)
2462 - As reported in Mandrake's bug tracker bug 12289
2463   (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a
2464   newline to "finish" the progress meter after each redirect and not only
2465   after a completed transfer.
2466
2467 Daniel (25 November 2004)
2468 - FTP improvements:
2469
2470   If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on
2471   the same server again even if a following request is made using a persistent
2472   connection.
2473
2474   If a second request is made to a server, requesting a file from the same
2475   directory as the previous request operated on, libcurl will no longer make
2476   that long series of CWD commands just to end up on the same spot. Note that
2477   this is only for *exactly* the same dir. There is still room for improvements
2478   to optimize the CWD-sending when the dirs are only slightly different.
2479
2480   Added test 210, 211 and 212 to verify these changes. Had to improve the
2481   test script too and added a new primitive to the test file format.
2482
2483 Daniel (24 November 2004)
2484 - Andrés García fixed the configure script to detect select properly when run
2485   with Msys/Mingw on Windows.
2486
2487 Daniel (22 November 2004)
2488 - Made HTTP PUT and POST requests no longer use HEAD when doing multi-pass
2489   auth negotiation (NTLM, Digest and Negotiate), but instead use the request
2490   keyword "properly". Details in lib/README.httpauth. This also introduces
2491   CURLOPT_IOCTLFUNCTION and CURLOPT_IOCTLDATA, to be used by apps that use the
2492   "any" auth alternative as then libcurl may need to send the PUT/POST data
2493   more than once and thus may need to ask the app to "rewind" the read data
2494   stream to start.
2495
2496   See also the new example using this: docs/examples/anyauthput.c
2497
2498 - David Phillips enhanced test 518. I made it depend on a "feature" so that
2499   systems without getrlimit() won't attempt to test 518. configure now checks
2500   for getrlimit() and setrlimit() for this test case.
2501
2502 Daniel (18 November 2004)
2503 - David Phillips fixed libcurl to not crash anymore when more than FD_SETSIZE
2504   file descriptors are in use. Test case 518 added to verify.
2505
2506 Daniel (15 November 2004)
2507 - To test my fix for the CURLINFO_REDIRECT_TIME bug, I added time_redirect and
2508   num_redirects support to the -w writeout option for the command line tool.
2509
2510 - Wojciech Zwiefka found out that CURLINFO_REDIRECT_TIME didn't work as
2511   documented.
2512
2513 Daniel (12 November 2004)
2514 - Gisle Vanem modigied the MSVC and Netware makefiles to build without
2515   libcurl.def
2516
2517 - Dan Fandrich added the --disable-crypto-auth option to configure to allow
2518   libcurl to build without Digest support. (I figure it should also explicitly
2519   disable Negotiate and NTLM.)
2520
2521 -                 *** Modified Behaviour Alert ***
2522
2523   Setting CURLOPT_POSTFIELDS to NULL will no longer do a GET.
2524
2525   Setting CURLOPT_POSTFIELDS to "" will send a zero byte POST and setting
2526   CURLOPT_POSTFIELDS to NULL and CURLOPT_POSTFIELDSIZE to zero will also make
2527   a zero byte POST. Added test case 515 to verify this.
2528
2529   Setting CURLOPT_HTTPPOST to NULL makes a zero byte post. Added test case 516
2530   to verify this.
2531
2532   CURLOPT_POSTFIELDSIZE must now be set to -1 to signal "we don't know".
2533   Setting it to zero simply says this is a zero byte POST.
2534
2535   When providing POST data with a read callback, setting the size up front
2536   is now made with CURLOPT_POSTFIELDSIZE and not with CURLOPT_INFILESIZE.
2537
2538 Daniel (11 November 2004)
2539 - Dan Fandrich added --disable-verbose to the configure script to allow builds
2540   without verbose strings in the code, to save some 12KB space. Makes sense
2541   only for systems with very little memory resources.
2542
2543 - Jeff Phillips found out that a date string with a year beyond 2038 could
2544   crash the new date parser on systems with 32bit time_t. We now check for
2545   this case and deal with it.
2546
2547 Daniel (10 November 2004)
2548 - I installed Heimdal on my Debian box (using the debian package) and noticed
2549   that configure --with-gssapi failed to create a nice build. Fixed now.
2550
2551 Daniel (9 November 2004)
2552 - Gisle Vanem marked all external function calls with CURL_EXTERN so that now
2553   the Windows, Netware and other builds no longer need libcurl.def or similar
2554   files.
2555
2556 Daniel (8 November 2004)
2557 - Made the configure script check for tld.h if libidn was detected, since
2558   libidn 0.3.X didn't have such a header and we don't work with anything
2559   before libidn 0.4.1 anyway! Suse 9.1 apparently ships with a 0.3.X version
2560   of libidn which makes the curl 7.12.2 build fail. Jean-Philippe
2561   Barrette-LaPierre helped pointing this out.
2562
2563 - Ian Gulliver reported in debian bug report #278691: if curl is invoked in an
2564   environment where stderr is closed the -v output will still be sent to file
2565   descriptor 2 which then might be the network socket handle! Now we have a
2566   weird hack instead that attempts to make sure that file descriptor 2 is
2567   opened (with a call to pipe()) before libcurl is called to do the transfer.
2568   configure now checks for pipe() and systems without pipe don't get the weird
2569   hack done.
2570
2571 Daniel (5 November 2004)
2572 - Tim Sneddon made libcurl send no more than 64K in a single first chunk when
2573   doing a huge POST on VMS, as this is a system limitation. Default on general
2574   systems is 100K.
2575
2576 Daniel (4 November 2004)
2577 - Andres Garcia made it build on mingw againa, my --retry code broke the build.
2578
2579 Daniel (2 November 2004)
2580 - Added --retry-max-time that allows a maximum time that may not have been
2581   reached for a retry to be made. If not set there is no maximum time, only
2582   the amount of retries set with --retry.
2583
2584 - Paul Nolan provided a patch to make libcurl build nicely on Windows CE.
2585
2586 Daniel (1 November 2004)
2587 - When cross-compiling, the configure script no longer attempts to use
2588   pkg-config on the build host in order to detect OpenSSL compiler options.
2589
2590 Daniel (27 October 2004)
2591 - Dan Fandrich:
2592
2593   An improvement to the gzip handling of libcurl. There were two problems with
2594   the old version: it was possible for a malicious gzip file to cause libcurl
2595   to leak memory, as a buffer was malloced to hold the header and never freed
2596   if the header ended with no file contents.  The second problem is that the
2597   64 KiB decompression buffer was allocated on the stack, which caused
2598   unexpectedly high stack usage and overflowed the stack on some systems
2599   (someone complained about that in the mailing list about a year ago).
2600
2601   Both problems are fixed by this patch. The first one is fixed when a recent
2602   (1.2) version of zlib is used, as it takes care of gzip header parsing
2603   itself.  A check for the version number is done at run-time and libcurl uses
2604   that feature if it's present. I've created a define OLD_ZLIB_SUPPORT that
2605   can be commented out to save some code space if libcurl is guaranteed to be
2606   using a 1.2 version of zlib.
2607
2608   The second problem is solved by dynamically allocating the memory buffer
2609   instead of storing it on the stack. The allocation/free is done for every
2610   incoming packet, which is suboptimal, but should be dwarfed by the actual
2611   decompression computation.
2612
2613   I've also factored out some common code between deflate and gzip to reduce
2614   the code footprint somewhat.  I've tested the gzip code on a few test files
2615   and I tried deflate using the freshmeat.net server, and it all looks OK. I
2616   didn't try running it with valgrind, however.
2617
2618 - Added a --retry option to curl that takes a numerical option for the number
2619   of times the operation should be retried. It is retried if a transient error
2620   is detected or if a timeout occurred. By default, it will first wait one
2621   second between the retries and then double the delay time between each retry
2622   until the delay time is ten minutes which then will be the delay time
2623   between all forthcoming retries. You can set a static delay time with
2624   "--retry-delay [num]" where [num] is the number of seconds to wait between
2625   each retry.
2626
2627 Daniel (25 October 2004)
2628 - Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on a
2629   file that was already completely downloaded caused an error, while it
2630   doesn't if you don't use --fail! I added test case 194 to verify the fix.
2631   Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in
2632   libcurl v8 due to all the kludges needed to support it.
2633
2634 - Mohun Biswas found out that formposting a zero-byte file didn't work very
2635   good. I fixed.
2636
2637 Daniel (19 October 2004)
2638 - Alexander Krasnostavsky made it possible to make FTP 3rd party transfers
2639   with both source and destination being the same host. It can be useful if
2640   you want to move a file on a server or similar.
2641
2642 - Guillaume Arluison added CURLINFO_NUM_CONNECTS to allow an app to figure
2643   out how many new connects a previous transfer required.
2644
2645   I added %{num_connects} to the curl tool and added test case 192 and 193
2646   to verify the new code.
2647
2648 Daniel (18 October 2004)
2649 - Peter Wullinger pointed out that curl should call setlocale() properly to
2650   initiate the specific language operations, to make the IDN stuff work
2651   better.
2652
2653 Version 7.12.2 (18 October 2004)
2654
2655 Daniel (16 October 2004)
2656 - Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work
2657   fine even for third party transfers.
2658
2659 - runekl at opoint.com found out (and provided a fix) that libcurl leaked
2660   memory for cookies with the "max-age" field set.
2661
2662 Gisle (16 October 2004)
2663 - Issue 50 in TODO-RELEASE; Added Traian Nicolescu's patches for threaded
2664   resolver on Windows. Plugged some potential handle and memory leaks.
2665
2666 Daniel (14 October 2004)
2667 - Eric Vergnaud pointed out that libcurl didn't treat ?-letters in the user
2668   name and password fields properly in URLs, like
2669   ftp://us?er:pass?word@site.com/. Added test 191 to verify the fix.
2670
2671 Daniel (11 October 2004)
2672 - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or
2673   later is one) to inhibit the SIGPIPE signal when writing to a socket while
2674   the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to
2675   send() on other systems. Alan Pinstein verified the fix.
2676
2677 Daniel (10 October 2004)
2678 - Systems with 64bit longs no longer use strtoll() or our strtoll- replacement
2679   to parse 64 bit numbers. strtol() works fine. Added a configure check to
2680   detect if [constant]LL works and if so, use that in the strtoll replacement
2681   code to work around compiler warnings reported by Andy Cedilnik.
2682
2683 Gisle (6 October 2004)
2684 - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name
2685   used in fix_hostname(). Checks if characters in 'host->name' (indirectly
2686   via 'ace_hostname') are legal according to the TLD tables in libidn.
2687
2688 Daniel (6 October 2004)
2689 - Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabled
2690   CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even
2691   if the new URL would provide the resumed file. Test case 188 added to verify
2692   the fix (together with existing test 99).
2693
2694 - Dan Fandrich fixed a configure flaw for systems that need both nsl and socket
2695   libs to use gethostbyname().
2696
2697 - Removed tabs and trailing whitespace from lots of source files.
2698
2699 Daniel (5 October 2004)
2700 - Made configure --with-libidn=PATH try the given PATH before the default
2701   paths to make it possible to override.
2702
2703 - If idna_strerror() is present in libidn, we can use that instead of our
2704   internal replacement. This function was added by Simon in libidn 0.5.6 and
2705   is detected by configure.
2706
2707 - It seems basename() on IRIX is in the libgen library and since we don't use
2708   that, configure finds libgen.h but not basename and then we get a compiler
2709   error because our basename() replacement doesn't match the proto in
2710   libgen.h. Starting now, we don't include the file if basename wasn't found
2711   as well.
2712
2713 Daniel (4 October 2004)
2714 - Chris found a race condition resulting in CURLE_COULDNT_RESOLVE_HOST and
2715   potential crash, in the windows threaded name resolver code.
2716
2717 Daniel (3 October 2004)
2718 - Replaced the use of isspace() in cookie.c with our own version instead since
2719   we have most data as 'char *' and that makes us pass in negative values if
2720   there is 8bit data in the string. Changing to unsigned causes too much
2721   warnings or too many required typecasts to the normal string functions.
2722   Harshal Pradhan identified this problem.
2723
2724 Daniel (2 October 2004)
2725 - Bertrand Demiddelaer found a case where libcurl could read already freed
2726   data when CURLOPT_VERBOSE is used and a (very) persistent connection. It
2727   happened when the dns cache entry for the connection was pruned while the
2728   connection was still alive and then again re-used. We worked together on
2729   this fix.
2730
2731 - Gisle Vanem provided code that displays an error message when the (libidn
2732   based) IDN conversion fails. This is really due to a missing suitable
2733   function in the libidn API that I hope we can remove once libidn gets a
2734   function like this.
2735
2736 Daniel (1 October 2004)
2737 - Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see
2738   https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133) and not to
2739   anyone involved in the curl project! This happens when you try to curl a
2740   file from a proftpd site using SSL. It seems proftpd sends a somewhat
2741   unorthodox response code (232 instead of 230). I relaxed the response code
2742   check to deal with this and similar cases.
2743
2744 - Based on Fedor Karpelevitch's formpost path basename patch, file parts in
2745   formposts no longer include the path part. If you _really_ want them, you
2746   must provide your preferred full file name with CURLFORM_FILENAME.
2747
2748   Added detection for libgen.h and basename() to configure. My custom
2749   basename() replacement function for systems without it, might be a bit too
2750   naive...
2751
2752   Updated 6 test cases to make them work with the stripped paths.
2753
2754 Daniel (30 September 2004)
2755 - Larry Campbell added CURLINFO_OS_ERRNO to curl_easy_getinfo() that allows an
2756   app to retrieve the errno variable after a (connect) failure. It will make
2757   sense to provide this for more failures in a more generic way, but let's
2758   start like this.
2759
2760 - Günter Knauf and Casey O'Donnell worked out an extra #if condition for the
2761   curl/multi.h header to work better in winsock-using apps.
2762
2763 - Jean-Philippe Barrette-LaPierre made buildconf run better on Mac OS X by
2764   properly using glibtoolize instead of plain libtoolize. (This is made if
2765   glibtool was found and used instead of plain libtool.)
2766
2767 Daniel (29 September 2004)
2768 - Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly
2769   enable the progress meter.
2770
2771 Daniel (28 September 2004)
2772 - "Mekonikum" found out that if you built curl without SSL support, although
2773   your current SSL installation supports Engine, the compile fails.
2774
2775 Daniel (27 September 2004)
2776 - When --with-ssl=PATH is used to the configure script, it no longer uses
2777   pkg-config to figure out extra details. That is now only done if no PATH is
2778   included or if SSL is checked for by default without the --with-ssl option.
2779
2780 Daniel (25 September 2004)
2781 - Peter Sylvester pointed out that CURLOPT_SSLENGINE couldn't even be set to
2782   NULL when no engine was supported. It can now.
2783
2784 Daniel (22 September 2004)
2785 - Dan Fandrich fixed three test cases to no longer use "localhost" but instead
2786   use "127.0.0.1" to avoid requiring that localhost resolves nicely.
2787
2788 - Jean-Claude Chauve fixed an LDAP crash when more than one record was
2789   retrieved.
2790
2791 Daniel (19 September 2004)
2792 - Andreas Rieke pointed out that when attempting to connect to a host without
2793   a service on the specified port, curl_easy_perform() didn't properly provide
2794   an error message in the CURLOPT_ERRORBUFFER buffer.
2795
2796 Daniel (16 September 2004)
2797 - Daniel at touchtunes uses the FTP+SSL server "BSDFTPD-SSL from
2798   http://bsdftpd-ssl.sc.ru/" which accordingly doesn't properly work with curl
2799   when "AUTH SSL" is issued (although the server responds fine and everything)
2800   but requires that curl issues "AUTH TLS" instead. See
2801   http://curl.haxx.se/feedback/display.cgi?id=10951944937603&support=yes
2802
2803   Introducing CURLOPT_FTPSSLAUTH that allows the application to select which
2804   of the AUTH strings to attempt first.
2805
2806 - Anonymous filed bug report #1029478 which identified a bug when you 1) used
2807   a URL without properly seperating the host name and the parameters with a
2808   slash. 2) the URL had parameters to the right of a ? that contains a slash
2809   3) curl was told to follow Location:s 4) the request got a response that
2810   contained a Location: to redirect to "/dir". curl then appended the new path
2811   on the wrong position of the original URL.
2812
2813   Test case 187 was added to verify that this was fixed properly.
2814
2815 Daniel (11 September 2004)
2816 - Added parsedate.c that contains a rewrite of the date parser currently
2817   provided by getdate.y. The new one is MUCH smaller and will allow us to run
2818   away from the yacc/bison jungle. It is also slightly lacking in features
2819   compared to the old one, but it supports parsing of all date formats HTTP
2820   involves (and a fair bunch of others).
2821
2822 Daniel (10 September 2004)
2823 - As found out by Jonas Forsman, curl didn't allow -F to set Content-Type on
2824   text-parts. Starting now, we can do -F "name=daniel;type=text/extra". Added
2825   test case 186 to verify.
2826
2827 - Bug report #1025986. When following a Location: with a custom Host: header
2828   replacement, curl only replaced the Host: header on the initial request
2829   and didn't replace it on the following ones. This resulted in requests with
2830   two Host: headers.
2831
2832   Now, curl checks if the location is on the same host as the initial request
2833   and then continues to replace the Host: header. And when it moves to another
2834   host, it doesn't replace the Host: header but it also doesn't make the
2835   second Host: header get used in the request.
2836
2837   This change is verified by the two new test cases 184 and 185.
2838
2839 Daniel (8 September 2004)
2840 - Modified the test suite to be able to use and run with customized port
2841   numbers. This was always intended but never before possible. Now a simple
2842   change in the runtests.pl script can make all tests use different ports.
2843   The default ports in use from now on are 8990 to 8993.
2844
2845 Daniel (2 September 2004)
2846 - Minor modification of an SSL-related error message.
2847
2848 Daniel (31 August 2004)
2849 - David Tarendash found out that curl_multi_add_handle() returned
2850   CURLM_CALL_MULTI_PERFORM instead of CURLM_OK.
2851
2852 Daniel (30 August 2004)
2853 - Make "Proxy-Connection: close" close the current proxy connection, as Roman
2854   Koifman found out.
2855
2856 Daniel (24 August 2004)
2857 - Fixed a getdate problem by post-replacing the getdate.c file after the
2858   bison/yacc process to add the fix Harshal Pradhan suggested. The problem
2859   caused a crash on Windows when parsing some dates.
2860
2861 Daniel (23 August 2004)
2862 - Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs
2863   even when told to use HTTP 1.0, which is not correct. Test case 180 and
2864   181 verify this.
2865
2866 - Added test case 182 to verify that zero byte transfers call the callback
2867   properly.
2868
2869 Daniel (20 August 2004)
2870 - Alexander Krasnostavsky made the write callback get called even when a zero
2871   byte file is downloaded.
2872
2873 Daniel (18 August 2004)
2874 - Ling Thio pointed out that when libcurl is built ipv6-enabled, it still did
2875   reverse DNS lookups when fed with a numerical IP-address (like
2876   http://127.0.0.1/), although it doesn't when built ipv6-disabled. libcurl
2877   should never do reverse lookups.
2878
2879 Daniel (17 August 2004)
2880 - Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an
2881   empty file, libcurl would return with the file still open.
2882
2883 - Alexander Krasnostavsky pointed out that the configure script needs to define
2884   _THREAD_SAFE for AIX systems to make libcurl built really thread-safe.
2885
2886   Also added a check for the xlc compiler on AIX, and if that is detect we use
2887   the -qthreaded compiler option
2888
2889 Daniel (16 August 2004)
2890 - libcurl now allows a custom "Accept-Encoding:" header override the
2891   internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex.
2892
2893 - Roland Krikava found and fixed a cookie problem when using a proxy (the
2894   path matching was wrong). I added test case 179 to verify that we now do
2895   right.
2896
2897 Daniel (15 August 2004)
2898 - Casey O'Donnell fixed some MSVC makefile targets to link properly.
2899
2900 Daniel (11 August 2004)
2901 - configure now defines _XOPEN_SOURCE to 500 on systems that need it to build
2902   warning-free (the only known one so far is non-gcc builds on 64bit SGI
2903   IRIX). (Reverted this change later as it caused compiler errors.)
2904
2905 - the FTP code now includes the server response in the error message when the
2906   server gives back a 530 after the password is provided, as it isn't
2907   necessary because of a bad user name or password.
2908
2909 Version 7.12.1 (10 August 2004)
2910
2911 Daniel (10 August 2004)
2912 - In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input is
2913   already UTF-8 encoded. This made the certificate verification fail if the
2914   remote server used a certificate with the name UTF-8 encoded.
2915
2916   Work-around brought by Alexis S. L. Carvalho.
2917
2918 Daniel (9 August 2004)
2919 - I fixed the configure script for krb4 to use -lcom_err as well, as I started
2920   to get link problems with it unless I did that on my Solaris 2.7 box. I
2921   don't understand why I started to get problems with this now!
2922
2923 Daniel (5 August 2004)
2924 - Enrico Scholz fixed the HTTP-Negotiate service name to be uppercase as
2925   reported in bug report #1004105
2926
2927 Daniel (4 August 2004)
2928 - Gisle Vanem provided a fix for the multi interface and connecting to a host
2929   using multiple IP (bad) addresses.
2930
2931 - Dylan Salisbury made libcurl no longer accept cookies set to a TLD only (it
2932   previously allowed that on the seven three-letter domains).
2933
2934 Daniel (31 July 2004)
2935 - Joel Chen reported that the digest code assumed quotes around the contents a
2936   bit too much.
2937
2938 Daniel (28 July 2004)
2939 - Bertrand Demiddelaer fixed the host name to get setup properly even when a
2940   connection is re-used, when a proxy is in use. Previously the wrong Host:
2941   header could get sent when re-using a proxy connection to a different target
2942   host.
2943
2944 - Fixed Brian Akins' reported problems with duplicate Host: headers on re-used
2945   connections. If you attempted to replace the Host: header in the second
2946   request, you got two such headers!
2947
2948 - src/Makefile.am now includes the Makefile.inc file to get info about files
2949
2950 Daniel (26 July 2004)
2951 - Made "curl [URL] -o name#2" work as expected. If there's no globbing for the
2952   #-number, it will simply be used as #2 in the file name.
2953
2954 - Bertrand Demiddelaer fixed testing with valgrind 2.1.x and added two missing
2955   newlines in the cookie informationals.
2956
2957 Daniel (24 July 2004)
2958 - I fixed the autobuilds with ares, since they now need to have buildconf run
2959   in the ares dir before the configure script is run.
2960
2961 - Added Casey O'Donnell's curl_easy_reset() function. It has a proto in
2962   curl/curl.h but we have no man page yet.
2963
2964 Daniel (20 July 2004)
2965 - Added buildconf and buildconf.bat to the release archives, since they are
2966   handy for rebuilding curl when using a daily snapshot (and not a pure CVS
2967   checkout).
2968
2969 Daniel (16 July 2004)
2970 - As suggested by Toby Peterson, libcurl now ignores Content-Length data if the
2971   given size is a negative number. Test case 178 verifies this.
2972
2973 Daniel (14 July 2004)
2974 - Günter Knauf has made the Netware builds do without the config-netware.h
2975   files, so they are now removed from the dist packages.
2976
2977 - Günter Knauf made curl and libcurl build with Borland again.
2978
2979 - Andres Garcia fixed the common test 505 failures on windows.
2980
2981 Daniel (6 July 2004)
2982 - Andrés García found out why the windows tests failed on file:// "uploads".
2983
2984 Daniel (2 July 2004)
2985 - Andrés García reported a curl_share_cleanup() crash that occurs when no
2986   lock/unlock callbacks have been set and the share is cleaned up.
2987
2988 Daniel (1 July 2004)
2989 - When using curl --trace or --trace-ascii, no trace messages that were sent
2990   by curl_easy_cleanup() were included in the trace file. This made the
2991   message "Closing connection #0" never appear in trace dumps.
2992
2993 Daniel (30 June 2004)
2994 - Niels van Tongeren found that setting CURLOPT_NOBODY to TRUE doesn't disable
2995   a previously set POST request, making a very odd request get sent (unless
2996   you disabled the POST) a HEAD request with a POST request-body. I've now
2997   made CURLOPT_NOBODY enforce a proper HEAD. Added test case 514 for this.
2998
2999 Daniel (29 June 2004)
3000 - Günter Knauf made the testcurl.pl script capable of using a custom setup
3001   file to easier run multiple autobuilds on the same source tree.
3002
3003 - Gisle fixed the djgpp build and fixed a memory problem in some of the
3004   reorged name resolved code.
3005
3006 - Fixed code to allow connects done using the multi interface to attempt the
3007   next IP when connecting to a host that resolves to multiple IPs and a
3008   connect attempt fails.
3009
3010 Daniel (27 June 2004)
3011 - Based on Rob Stanzel's bug report #979480, I wrote a configure check that
3012   checks if poll() can be used to wait on NULL as otherwise select() should be
3013   used to do it. The select() usage was also fixed according to his report.
3014
3015   Mac OS X 10.3 says "poll() functionality for Mac OS X is implemented via an
3016   emulation layer on top of select(), not in the kernel directly. It is
3017   recommended that programs running under OS X 10.3 prefer select() over
3018   poll(). Configure scripts should look for the _POLL_EMUL_H_ define (instead
3019   of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not
3020   implemented in the kernel."
3021
3022   Yes, we can probably use select() on most platforms but today I prefered to
3023   leave the code unaltered.
3024
3025 Daniel (24 June 2004)
3026 - The standard curl_version() string now only includes version info about
3027   involved libraries and not about particular features. Thus it will no longer
3028   include info about ipv6 nor GSS. That info is of course still available in
3029   the feature bitmask curl_version_info() offers.
3030
3031 - Replaced all occurances of sprintf() with snprintf(). This is mostly because
3032   it is "A Good Thing" rather than actually fixing any known problem. This
3033   will help preventing future possible mistakes to cause buffer overflows.
3034
3035 - Major reorganization in the host resolve code (again). This time, I've
3036   modified the code to now always use a linked list of Curl_addrinfo structs
3037   to return resolved info in, no matter what resolver method or support that
3038   is available on the platform. It makes it a lot easier to write code that
3039   uses or depends on resolved data.
3040
3041   Internally, this means amongst other things that we can stop doing the weird
3042   "increase buffer size until it works" trick when resolving hosts on
3043   ipv4-only with gethostbyname_r(), we support socks even on libcurls built
3044   with ipv6 enabled (but only to socks servers that resolve to an ipv4
3045   address) and we no longer deep-copy or relocate hostent structs (we create
3046   Curl_addrinfo chains instead).
3047
3048   The new "hostent to Curl_addrinfo" converter function is named Curl_he2ai()
3049   and is slightly naive and simple, yet I believe it is functional enough to
3050   work for libcurl.
3051
3052 Daniel (22 June 2004)
3053 - David Cohen pointed out that RFC2109 says clients should allow cookies to
3054   contain least 4096 bytes while libcurl only allowed 2047. I raised the limit
3055   to 4999 now and made the used buffer get malloc()ed instead of simply
3056   allocated on stack as before. Extended test case 46 to include a cookie with
3057   very huge content to verify the fix.
3058
3059 - Günter Knauf fixed getdate.y to remove a few warnings. I removed the
3060   ifdef'ed test we never ever use anyway.
3061
3062 - Gisle Vanem fixed the certificate wildcard checks to support a '*'-letter
3063   anywhere in the wildcard string, support multiple '*'-letters in the
3064   wildcard and to allow the '*'-letter to match a string that includes a dot.
3065
3066 Daniel (21 June 2004)
3067 - testcurl.sh is now removed completely, tests/testcurl.pl is the script to
3068   use when autobuilding curl!
3069
3070 - Kjetil Jacobsen brought my attention to the fact that you cannot properly
3071   abort an upload with the readfunction callback, since returning 0 or -1 only
3072   stops the upload and libcurl will continue waiting for downloaded data and
3073   the server often waits for the rest of the upload data to arrive.
3074
3075   Thus, I've now added the ability for read callbacks to return
3076   CURL_READFUNC_ABORT to abort an upload from a read callback. This will stop
3077   the transfer immediately with a CURLE_ABORTED_BY_CALLBACK return code.
3078
3079   Test case 513 was added to verify that it works. I had to improve the test
3080   HTTP server too to dump the request to a file even when the client
3081   disconnects prematurely.
3082
3083 Daniel (19 June 2004)
3084 - Luca Alteas provided a test case with a failing curl operation: when we POST
3085   to a site with --digest (or similar) set, and the server responded with a 302
3086   Location: to the "authprobe" request, it was not treated correctly. We still
3087   will behave badly if FOLLOWLOCATION is enabled for this case, but I'm not
3088   in the mood to dive into this right now and will leave it as-is for now.
3089   Verified my fix with test case 177.
3090
3091 Daniel (18 June 2004)
3092 - Gisle Vanem's patch that provides more details from the SSL layers (if you
3093   use an OpenSSL version that supports it). It also introduces two new types
3094   of data that can be sent to the debug callback: CURLINFO_SSL_DATA_IN and
3095   CURLINFO_SSL_DATA_OUT.
3096
3097 - With David Byron's test server I could repeat his problem and make sure that
3098   POSTing over HTTPS:// with NTLM works fine now. There was a general problem
3099   with multi-pass authentication with non-GET operations with CONNECT.
3100
3101 Daniel (16 June 2004)
3102 - Modified to keep the upload byte counter in an curl_off_t, not an int as
3103   before. 32bits is not enough. This is most likely the bug Jean-Louis Lemaire
3104   reported that makes 2GB FTP uploads to report error ("unaligned file sizes")
3105   when completed.
3106
3107 Daniel (15 June 2004)
3108 - Luca Alteas reported a problem that I fixed: if you did a POST with
3109   CURLAUTH_DIGEST set but the server didn't require any authentication,
3110   libcurl would repeatedly send HEAD lots of times until it gives up. This was
3111   actually the case for all multi-pass authentications. Added test case 174,
3112   175 and 176 to verify this.
3113
3114 Daniel (14 June 2004)
3115 - Multipart formposts uploading files no longer inserts the files themselves
3116   into the huge prebuilt chunk. This enables libcurl to formpost files that is
3117   larger than the amount of system memory. When the file given is passed on
3118   stdin, libcurl still uses the old method of reading the full fill before the
3119   upload takes place. This approach was selected in order to not alter the
3120   behavior for existing applications, as when using stdin libcurl can't know
3121   the size of the upload and chunked transfer-encoding can only be used on
3122   HTTP 1.1 servers.
3123
3124 Daniel (13 June 2004)
3125 - Gisle found out that we did wildcard cert name checks wrong, so that parts
3126   of the check wrongly was case sensitive.
3127
3128 Daniel (11 June 2004)
3129 - Tim Sneddon brought a minor VMS fix to make curl build properly on his VMS
3130   machine. He also had some interesting libcurl patches... they might be able
3131   to do in a slightly nicer way. Discussions are in progress.
3132
3133 Daniel (10 June 2004)
3134 - Gisle Vanem brought code cleanupsm better verbose output and better connect
3135   timeout handling when attempting to connect to a host that resolves to
3136   multiple IP addresses.
3137
3138 - Steven Bazyl and Seshubabu Pasam pointed out a bug on win32 when freeing the
3139   path after a file:// transfer.
3140
3141 Daniel (9 June 2004)
3142 - Alexander Krasnostavsky made 'configure --disable-http' work to build libcurl
3143   without HTTP support. I added a new return code for curl_formadd() in case
3144   libcurl is built with HTTP disable: CURL_FORMADD_DISABLED.
3145
3146 - Alexander Krasnostavsky pointed out a missing file in the generated
3147   curllib.dsp file, and now people building with this should get a libcurl.lib
3148   file generated as it used to do before we generated this file.
3149
3150 Daniel (8 June 2004)
3151 - Marty Kuhrt fixed a minor build problem for VMS.
3152
3153 Daniel (7 June 2004)
3154 - Reverted the configure check from the 4th since it obviously didn't work.
3155   Remade it in a different manner that hopefully works better.
3156
3157 Daniel (4 June 2004)
3158 - Günter Knauf brought patches to make curl build fine on NetWare again.
3159
3160 - Made the configure checks for strerror_r() not exit the configure script
3161   when built for cross-compiling.
3162
3163 Daniel (3 June 2004)
3164 - Chris Gaukroger pointed out that 'make test' attempts to run the tests even
3165   if curl is built cross-compiled. I've now made it output a short message
3166   instead, saying it isn't possible to do.
3167
3168 - Alexander Krasnostavsky brought FTP 3rd party transfer support to libcurl.
3169   You can now use libcurl to transfer files between two remote hosts using
3170   FTP. There are a bunch of new options to control this with:
3171    CURLOPT_SOURCE_HOST
3172    CURLOPT_SOURCE_USERPWD
3173    CURLOPT_SOURCE_PATH
3174    CURLOPT_SOURCE_PORT
3175    CURLOPT_PASV_HOST
3176    CURLOPT_SOURCE_PREQUOTE
3177    CURLOPT_SOURCE_POSTQUOTE
3178
3179   (They still remain to be documented properly in the curl_easy_setopt man
3180   page.)
3181
3182   When using this, the ordinary CURLOPT_URL specifies the target URL, and you
3183   specify the source data with these additional options. ftp3rdparty.c is a
3184   new example source code showing how to use this.
3185
3186 - Vincent Bronner fixed the HTTP Digest code to use the proxy user name and
3187   password when doing proxy authentication, it previously always used the host
3188   user name and password!
3189
3190 Daniel (2 June 2004)
3191 - CURLOPT_UPLOAD and CURLOPT_PUT now do the exact same thing internally, which
3192   fixes some old confusions on when which of these should be used and what the
3193   differences are.
3194
3195 - Applied Gisle's fixes to make curl build fine with lcc-win32
3196
3197 Version 7.12.0 (2 June 2004)
3198
3199 Daniel (1 June 2004)
3200 - I clarified the --create-dirs option somewhat in the curl man page.
3201
3202 - Renaud Duhaut corrected the curl_unescape man page.
3203
3204 - David Byron modified one of Massimiliano Ziccardi's recent MSVC makefile
3205   changes to now again use the mm lib by default.
3206
3207 Daniel (26 May 2004)
3208 - Mohun Biswas added release-zlib and debug-zlib targets to the MSVC libcurl
3209   Makefile
3210
3211 - David Byron reported a problem with proxy authentication when doing CONNECT,
3212   like when accessing HTTPS sites wiht a proxy. This probably broke when I
3213   rewrote the auth stuff recently.
3214
3215 - I added fileupload.c in the examples directory, showing how an upload to a
3216   file:// URL is made.
3217
3218 Daniel (25 May 2004)
3219 - Massimiliano Ziccardi updated the MSVC makefiles.
3220
3221 Daniel (24 May 2004)
3222 - libcurl now supports "uploading" to file:// URLs. Test 204 and 205 were
3223   added to verify.
3224
3225 - Simon Josefsson added a idn_free() function in libidn 0.4.5 as a reaction to
3226   Gisle's previous mail. We now use this function, and thus we require libidn
3227   0.4.5 or later. No earlier version will do.
3228
3229 - Robert D. Young reported that CURLOPT_COOKIEFILE and CURLOPT_COOKIE could
3230   not be used both in one request. Fixed it and added test case 172 to verify.
3231
3232 Daniel (21 May 2004)
3233 - While talking to host a.b.c, libcurl did wrongly not accept cookies that
3234   were set to the domain .a.b.c (that is with a dot prefix). This is now fixed
3235   and test case 171 verifies it.
3236
3237 Daniel (20 May 2004)
3238 - Jesse Noller reported that the upload speed info reported by libcurl was
3239   wrong. The same was true for the download speed. Fixed now.
3240
3241 Daniel (19 May 2004)
3242 - David Byron added test case 170 - this used to crash the previous version of
3243   curl.
3244
3245 Daniel (17 May 2004)
3246 - Peter Sylvester's patch that addresses two flaws in the peer certificate
3247   name verification:
3248   o when multiple common names are used (as in the curl tests), the last name
3249     needs to be selected.
3250   o allow comparing with encoded values, at least with BMP and ISO latin1
3251     encoded T61strings.
3252
3253 - All 191 test cases run through the torture test OK! 'make test-torture' is
3254   now available in the root makefile (on configure-based environments).
3255
3256 Daniel (14 May 2004)
3257 - With a slightly modified ftpserver.pl I've now run almost all tests through
3258   with runtests.pl -t. This is goodness!
3259
3260 - Since I have been unable to contact the CVS admins for several months, I've
3261   decided that the current CVS hosting was not good enough. I've now moved the
3262   CVS repo once again, see README for updated cvs checkout instructions.
3263
3264 Daniel (13 May 2004)
3265 - runtests.pl -t now runs fine all the way to test 100. I believe test case
3266   100 fails because of an FTP server problem.
3267
3268 Daniel (12 May 2004)
3269 - General cleanups all over to make libcurl survive and do well when a memory
3270   function returns NULL. runtests.pl -t now works fine for the first 26 test
3271   cases.
3272
3273 Daniel (11 May 2004)
3274 - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() -
3275   like normal curl_global_init() but allows the app to replace all memory
3276   functions with its own set. I modified it slightly.
3277
3278 - Based on Luca Alteas' comments, I modified the curllib.dsp generation code.
3279
3280 Daniel (10 May 2004)
3281 - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a
3282   separate free()-function by that lib to make sure the memory is freed by the
3283   same memory subsystem that allocated it. He responded positively and this
3284   will likely cause us to require a newer version of libidn as soon as Simon
3285   releases one with such a libidn_free() function.
3286
3287 - James Bursa made runtests.pl's -t option work for any given test case, and I
3288   edited to allow -g too. Not even test case 1 worked...
3289
3290 - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers.
3291
3292 - Andrés García fixed a problem in the test script that made it fail to
3293   recognize our own running HTTP server.
3294
3295 Daniel (7 May 2004)
3296 - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to
3297   free() and he made two failed-resolve error messages use the new display-
3298   name instead of the internally-used name.
3299
3300 - Gisle Vanem tried curl with
3301   www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com
3302   which caused problems, and I fixed the single zero byte buffer overwrite
3303   that occurred (due to a stupid protocol buffer size and parser).
3304
3305 - Made the lib/curllib.dsp file get generated automaticly when a distribution
3306   package is made, with the msvcproj.* files as templates and all
3307   win32-sources added. I think this can be made to work better than the always
3308   lagging-behind previous approach. I'm not sure this builds a working project
3309   file right now though!
3310
3311 Daniel (6 May 2004)
3312 - Michael Benedict brought a fix that fills in the errorbuffer properly when
3313   ares fails to resolve a name for a case not previously dealt with like this.
3314
3315 Daniel (5 May 2004)
3316 - Joe Halpin fixed the annoying typecast warning in lib/ldap.c
3317
3318 - Gisle Vanem fixes:
3319   o memdebug to not access NULL on several places
3320   o libcurl.def; curl_formparse is gone.
3321   o progress.c; fixed the percent values being trunced to 0.
3322   o if2ip.*; constified the 'interface' argument.
3323
3324 - Tor Arntsen reported that many of his autobuilds froze and I found and fixed
3325   a problem introduced with the HTTP auth overhaul that could lead to a
3326   never-ending internal request-loop due to un-initialized variables!
3327
3328 - Removed several compiler warnings on various compilers/platforms.
3329
3330 Daniel (4 May 2004)
3331 - curl_formparse() has been removed from the library. It has been marked and
3332   mentioned as deprecated for several years.
3333
3334 Daniel (3 May 2004)
3335 - Rewritten HTTP authentication code. The previous code could not properly
3336   deal with the added test cases 167, 168 and 169. I've now rewritten the code
3337   to better separate host and proxy authentication and not re-use the same
3338   variables as much as before as it proved non working in the more involved
3339   cases. All the current tests run OK now, and so do the new ones. The curl
3340   tool got a new option named --proxy-digest to enable HTTP Digest
3341   authentication with the proxy. I also made the library support it.
3342
3343 - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with
3344   Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used
3345   on these Windows versions.
3346
3347 Daniel (30 April 2004)
3348 - runtests.pl now scans the valgrind log for valgrind-detected memory leaks
3349   after each test case if valgrind was found and used.
3350
3351 - I modified the app-code in curl to include the new lib/curlx.h and only
3352   access those functions using the curlx_-prefix in preparation for the future
3353   removal of several curl_-functions from the public libcurl API.
3354
3355 - Introduced lib/curlx.h as a single header to provide the curlx_-functions
3356   to apps.
3357
3358 - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal
3359   and curl_strnequal that they are subject for removal in a future release.
3360   STOP USING THESE FUNCTIONS.
3361
3362 - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file
3363   names and yes, I broke that on April 23. Sigh. I fixed it now and added
3364   test case 166 to verify it.
3365
3366 - Luca Altea pointed out a mistake left from the Digest patch of yesterday.
3367
3368 Daniel (29 April 2004)
3369 - Made IDN domains work when sending requsts over HTTP proxy as well. Added
3370   test case 165 to verify the functionality.
3371
3372 - Fixed a bug in the new internal host name setup when re-using connections.
3373
3374 - James Bursa found out that curl_easy_duphandle() with ares-built libcurl
3375   created a bad handle that would crash in the first name resolve attempt. This
3376   is now fixed and test case 512 was added to verify it.
3377
3378 - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow
3379   the Digest RFC a lot better.
3380
3381 - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable.
3382
3383 Daniel (27 April 2004)
3384 - I remodeled Gisle's IDN code slightly and now we convert both the host name
3385   and proxy name to the ACE encoded version to use internally for resolves and
3386   cookies etc. They are now using one 'struct hostname' each that keep both
3387   the original name and the possibly encoded name. IDN resolves work for me
3388   now using ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to
3389   do right. I got some failures at first when CHARSET wasn't set at all which
3390   confused libidn completely and it decided by encoding of choice was
3391   'ANSI_X3.4-1968'...
3392
3393 - made 'configure --without-libidn' work
3394
3395 Daniel (25 April 2004)
3396 - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to
3397   make the problems with USE_MANUAL on windows go away.
3398
3399 - configure --without-ssl could still wrongly include some OpenSSL info in the
3400   Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by
3401   Martin.
3402
3403 - Since we can now build and use quite a large set of 3rd party libraries, I
3404   decided I would make configure produce a summary at the end showing what
3405   libraries it uses and if not, what option to use to make it use that. I also
3406   added some other random info that is nice in a "configure summary" output.
3407
3408 - Applied TommyTam's patch that now make curl work with telnet and stdin
3409   properly on Windows.
3410
3411 - The changes for today below were made by me and Gisle Vanem.
3412
3413   The file previously known as hostip.c has now undergone a huge cleanup and
3414   split:
3415
3416   hostip.c explained
3417   ==================
3418
3419   The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
3420   source file are these:
3421
3422   CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
3423   that. The host may not be able to resolve IPv6, but we don't really have to
3424   take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
3425   defined.
3426
3427   CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
3428   name resolves. It cannot have ENABLE_IPV6 defined at the same time, as
3429   c-ares has no ipv6 support. This can be Windows or *nix.
3430
3431   CURLRES_THREADED - is defined if libcurl is built to run under (native)
3432   Windows, and then the name resolve will be done in a new thread, and the
3433   supported asynch API will be the same as for ares-builds.
3434
3435   If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
3436   libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
3437   defined.
3438
3439   The host*.c sources files are split up like this:
3440
3441   hostip.c   - method-independent resolver functions and utility functions
3442   hostasyn.c - functions for asynchronous name resolves
3443   hostsyn.c  - functions for synchronous name resolves
3444   hostares.c - functions for ares-using name resolves
3445   hostthre.c - functions for threaded name resolves
3446   hostip4.c  - ipv4-specific functions
3447   hostip6.c  - ipv6-specific functions
3448
3449   The hostip.h is the single united header file for all this. It defines the
3450   CURLRES_* defines based on the config*.h and setup.h defines.
3451
3452 - Added function header comments to many functions in an attempt to better
3453   explain the purpose of them all.
3454
3455 - configure --with-libidn is now supported. It makes the configure script
3456   check for libidn libs and include files in the prefix path given. If you
3457   say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib
3458   and the includes in /usr/local/include etc.
3459
3460 - curl_version_info() now returns a struct aged CURLVERSION_THIRD including
3461   libidn version info. The string curl_version() returns also includes libidn
3462   version info, if available.
3463
3464 Version 7.11.2 (26 April 2004)
3465
3466 Daniel (25 April 2004)
3467 - Erwin Authried pointed out that configure --disable-manual didn't do right
3468   if you already had a src/hugehelp.c source file present (which most people
3469   do I guess). It now uses the USE_MANUAL define properly.
3470
3471 Daniel (23 April 2004)
3472 - Gisle Vanem found and fixed a memory leak when doing (failing) Windows
3473   threaded name resolves.
3474
3475 - I also added test case 163 just to make sure -F "var=<file" works fine and
3476   can pass on characters such as newlines, carriage-return and tabs.
3477
3478 - When we added test case 162 without adding the necessary requirement field
3479   in the test meta data we could see that curl didn't complain if you used
3480   --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I
3481   now made it check this first, and it now exists with a "the installed
3482   libcurl version doesn't support this" message if it happens again.
3483
3484 Daniel (22 April 2004)
3485 - David Byron found and fixed a small bug with the --fail and authentication
3486   stuff added a few weeks ago.  Turns out that if you specify --proxy-ntlm and
3487   communicate with a proxy that requires basic authentication, the proxy
3488   properly returns a 407, but the failure detection code doesn't realize it
3489   should give up, so curl returns with exit code 0. Test case 162 added to
3490   verify the functionality.
3491
3492 - allow newlines in the contents when doing -F "var=[contents]"
3493   Robert Marlow reported.
3494
3495 - If a transfer is found out to be only partial, libcurl will now treat that
3496   as a problem serious enough to skip the final QUIT command before closing
3497   the control connection. To avoid the risk that it will "hang" waiting for
3498   the QUIT response. Added test case 161 to verify this.
3499
3500 Daniel (21 April 2004)
3501 - Modified the heuristics for dealing with the test 160 scenario. When a
3502   connection is re-used and nothing at all is received from it (because the
3503   server closes the connection), we will now retry the request on a fresh new
3504   connection. The previous ECONNRESET stuff from January 30 was removed again
3505   as it didn't detect the situation good enough.
3506
3507 Daniel (20 April 2004)
3508 - Added test case 160 to verify that curl works correctly when it gets a
3509   connection reset when trying to re-use a connection. It should then simply
3510   create a new connection and resend the request.
3511
3512 Daniel (19 April 2004)
3513 - No more 512 byte limit for host name (inclusing name + password) in libcurl.
3514   An added bonus is that we use less memory for the typical (shorter URL)
3515   case.
3516
3517 - Cleaned up the sources to better use the terms 'hostname' and 'path'
3518   internally when referring to that data. The buffers used for keep that info
3519   is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand
3520   than the previous mess.
3521
3522 Daniel (15 April 2004)
3523 - Modified runtests.pl again to remove all log files in the log/ dir between
3524   each test, and then made -p display all non-zero byte files in the log dir.
3525   It should make that data more usable and contain less rubbish.
3526
3527 - ftpserver.pl now produces log files more similar to how the sws ones look
3528   and they now also contains a bit more details to help debugging ftp
3529   problems.
3530
3531 - Removed the fixed maximum amount of dir levels the FTP code supported.
3532   Previously we had a fixed array for 100 levels, now we save space in each
3533   handle by allocating only for a few level by default and then enlarging that
3534   in case of need (with no maximum depth). Adjusted test case 142 to verify
3535   that 150 dir levels work fine.  An added bonus is that we use less memory
3536   for the typical (not very deep) case.
3537
3538 Daniel (14 April 2004)
3539 - Asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will
3540   now cause the resolve function to return NULL immediately. This flaw was
3541   pointed out by Gisle Vanem.
3542
3543 - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl.
3544
3545 - runtests.pl now has a new option (-p) that will display "interesting" log
3546   files to stdout in case of a test failure. This is primarily intended to be
3547   used in the 'full-test' make target that is used by the autobuild tests, as
3548   we then get a much better chance to understand (remote) test failures based
3549   on autobuild logs alone.
3550
3551 Daniel (13 April 2004)
3552 - Gisle Vanem made the multi interface work again on Windows even when built
3553   without ares. Before this, select() would return -1 during the name resolve
3554   phase since curl_multi_fdset() didn't return any fd_set at all which wasn't
3555   appreciated!
3556
3557 - curl_easy_duphandle() now duplicates the tcp_nodelay info as well.
3558
3559 Daniel (11 April 2004)
3560 - Applied David Byron's patch for the MSVC libcurl makefile for builds with
3561   zlib.
3562
3563 Daniel (9 April 2004)
3564 - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now
3565   be down to usec if the system sypports it.
3566
3567 Daniel (7 April 2004)
3568 - A request that sends "Expect: 100-continue" and gets nothing but a single
3569   100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.
3570
3571 - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
3572   approach fully.
3573
3574 Daniel (6 April 2004)
3575 - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
3576   made libcurl on Windows leak a small amount of memory in each name resolve
3577   when not used as a DLL.
3578
3579 - New authentication code added, particularly noticable when doing POST or PUT
3580   with Digest or NTLM. libcurl will now use HEAD to negotiate the
3581   authentication and when done perform the requested POST. Previously libcurl
3582   sent POST immediately and expected the server to reply a final status code
3583   with an error and then libcurl would not send the request-body but instead
3584   send then next request in the sequence.
3585
3586   The reason for this change is due to IIS6 barfing on libcurl when we attempt
3587   to POST with NTLM authentication. The reason for the problems is found in
3588   RFC2616 section 8.2.3 regarding how servers should deal with the 100
3589   continue request-header:
3590
3591         If it responds with a final status code, it MAY close the transport
3592         connection or it MAY continue to read and discard the rest of the
3593         request.
3594
3595   Previous versions of IIS clearly did close the connection in this case,
3596   while this newer version decided it should "read and discard". That would've
3597   forced us to send the whole POST (or PUT) data only to have it discarded and
3598   then be forced to send it again. To avoid that huge penality, we switch to
3599   using HEAD until we are authenticated and then send the POST.
3600
3601   The only actual drawback I can think of (except for the odd sites that might
3602   treat HEAD differently than they would treat POST/PUT when given the same
3603   URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO
3604   authentication, libcurl will still use a HEAD in a first round and then do a
3605   POST.
3606
3607   If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send
3608   an un-authenticated request at once, which then is the only request if the
3609   site requires no auth.
3610
3611   Alan Pinstein helped me work out the protocol details by figuring out why
3612   libcurl failed and what IIS6 expects.
3613
3614 - The --limit-rate logic was corrected and now it works a lot better for
3615   higher speeds, such as '10m' or similar. Reported in bug report #930249.
3616
3617 - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion.
3618   #include "timeval.h" from the lib dir to get the protos etc.  Note that
3619   these are NOT part of the libcurl API. The curl app simply uses the same
3620   source files as the library does and therefore the file needs to be compiled
3621   and linked with curl too, not just when creating libcurl.
3622
3623 - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it
3624   isn't portable enough
3625
3626 Daniel (2 April 2004)
3627 - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file
3628   name to work better. As pointed out by Robin Kay.
3629
3630 - Andrés García updated the mingw makefiles.
3631
3632 - Dirk Manske fixed a problem I recently added in the progress meter code that
3633   broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a
3634   mistake in the code that produces the final update of the progress meter
3635   that would often prevent it from actually being updated that final time.
3636
3637 Daniel (1 April 2004)
3638 - Dirk Manske fixed a memory leak that happened when we use ares for name
3639   resolves and decides to time-out before ares does it. This fix uses the
3640   brand new ares_cancel() function which is not present in c-ares 1.1.0.
3641
3642   When told to enable ares, the configure script now checks for presence of
3643   the ares_cancel function to alert users if they attempt to use a too old
3644   c-ares library.
3645
3646 Daniel (31 March 2004)
3647 - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur!
3648
3649 - Dirk Manske found out that libcurl timed out waiting for resolves far too
3650   easy when libcurl was built to use (c-)ares for name resolving.
3651
3652 - Further Digest fixing and a successful test case 153 now makes me believe
3653   Mitz Wark's problems are fixed.
3654
3655 - Andres Garcia figured out that test case 63, while working, only proved a
3656   flaw in libcurl's 'http_proxy' parser when a user name and password is
3657   provided. The user name was not extracted properly (and 'http' was always
3658   used as user name).
3659
3660 - Andrés García fixed compiler warnings in our ioctlsocket() usage.
3661
3662 Daniel (30 March 2004)
3663 - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the
3664   particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel.  I've now
3665   written a configure test that checks for a working NI_WITHSCOPEID
3666   implemenation. No code uses the result from this test yet, it is still
3667   experimental. James Carlson wrote in comp.unix.solaris: "It's a bug
3668   (5006623) -- it's not supported and shouldn't be in the header file."
3669
3670 - I provided Mitz Wark with a first patch in order to fix libcurl's problems
3671   to re-negotiate Digest authentication (when 'stale=true' is included in the
3672   response header).
3673
3674 - Roy Shan discovered that the multi interface didn't properly timeout name
3675   lookups which could make handles get stuck in that state and thus never get
3676   completed. I've produced a first test patch that attempts to correct this.
3677
3678 - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
3679   even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
3680   and 152 were added to verify the functionality.
3681
3682 Daniel (29 March 2004)
3683 - Gisle Vanem updated files for the djgpp/MS-DOS build.
3684
3685 - Andrés García helped me work out a fix for the runtests.pl script to make
3686   the file:// tests run fine when tested with the mingw-built version of curl.
3687
3688 - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
3689   This also required a minor fix of the configure script.
3690
3691 - The postit2.c source example used the wrong struct name for the post data.
3692
3693 Daniel (26 March 2004)
3694 - Gisle Vanem improved ipv6 support on windows by making the curl build to use
3695   the correct getaddrinfo() function.
3696
3697 Daniel (25 March 2004)
3698 - It turned out that AIX, despite having a "thread-safe libc", doesn't offer
3699   all traditional functions thread-safe. This URL is informative on this
3700   subject:
3701
3702     http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
3703     genprogc/thread_quick_ref.htm
3704
3705   As a result of this, we now check for three *_r() functions on recent AIX
3706   versions as well that the URL mentions aren't thread-safe in AIX 5.1.
3707
3708 - renamed curl_strerror.[ch] to strerror.[ch]
3709
3710 - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
3711   for users to disable the Nagle algorthim-usage.
3712
3713 - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
3714   own API which differs from the POSIX one. Daniel adjusted the configure
3715   script to detect the version in use, and the code now uses the new defines
3716   accordingly.
3717
3718 - Fixed some build flaws with the new lib/curl_strerror.c source file.
3719
3720 Daniel (24 March 2004)
3721 - Gisle Vanem's fix to replace the bad use of strerror(). This introduces
3722   Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
3723
3724 - Tor Arntsen spell-fixed lots of libcurl man pages.
3725
3726 - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
3727   made it not use chdir .. to go back, as that isn't very good when you've
3728   setup a testdir containing symlinks.
3729
3730 - Added a check for strerror_r() in the configure script.
3731
3732 Daniel (23 March 2004)
3733 - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
3734   use this script for the real distributed testing just yet, but it is only
3735   a matter of time.
3736
3737 - Gisle Vanem provided code that makes curl report a better error message
3738   if --interface fails on windows.
3739
3740 - The regular progress meter is now fixed to never wrap due to long lines. All
3741   fields are now static sized. If the time in the time fields get a time value
3742   that would represent a time that is 100 hours or more (if not, it remains
3743   using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
3744   days and hours) and if that isn't enough it switches to a "NNNd" display if
3745   it is more than 999 days.
3746
3747   Several of the calculations were also moved to fixed-point math instead of
3748   using doubles.
3749
3750 Daniel (22 March 2004)
3751 - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
3752   used to do if CURLOPT_NOBODY is set TRUE.
3753
3754 - Kevin Roth patched the cygwin package makefile and README to adjust to
3755   new cygwin packaging guidelines.
3756
3757 - Enabled "NT responses" in the NTLM authentication. Doing this simply means
3758   that we provide an extra chunk of data in each "type-3 message". The only
3759   reason for doing this is that it seems that using only the "Lanmanager hash"
3760   (as we've been doing until now) doesn't support passwords longer than 14
3761   characters and it turns out there are users out there who want to use
3762   libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
3763   updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
3764   #915609
3765
3766 - Moved the generated libcurl version info to a new header file, named
3767   curl/curlver.h. Now interested parties can include ONLY version info, should
3768   anyone want that (and it seems at least some windows resource files would).
3769   Mentioned as issue 27 in TODO-RELEASE.
3770
3771 Daniel (21 March 2004)
3772 - Fixed the root Makefile to use tabs for the netware target. Günter Knauf
3773   pointed this out.
3774
3775 - Marty Kuhrt's VMS cleanup
3776
3777 - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
3778   with particular pre-determined options.
3779
3780 Version 7.11.1 (19 March 2004)
3781
3782 Daniel (18 March 2004)
3783 - Tor Arntsen brought some info about SGI IRIX:
3784
3785   IRIX supports 3 different executable/object formats, -32, -n32 and -64.
3786   -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
3787   the 64-bit format.  Libraries for the different formats are in lib, lib32
3788   and lib64 respectively.
3789
3790   We've now adjusted the configure script to adapt to this when scanning for
3791   3rd party libs, such as OpenSSL.
3792
3793 Daniel (17 March 2004)
3794 - Watz pointed out a few missing files in the MSVC project description file.
3795
3796 - Günter Knauf brought patches, code and makefiles to build curl on Novell
3797   NetWare.
3798
3799 Daniel (15 March 2004)
3800 - Lots of libcurl man pages were updated to contain references to other man
3801   pages the recognized way so that they appear as nice hyperlinks in the HTML
3802   versions.
3803
3804 - buildconf now checks the m4 version too, since autoconf requires a GNU m4
3805   version to build proper configure scripts.
3806
3807 Daniel (12 March 2004)
3808 - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
3809   CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
3810
3811 - David Byron fixed an uninitialized variable case/crash.
3812
3813 Daniel (10 March 2004)
3814 - Jeff Lawson fixed the SSL connection to deal with received signals during the
3815   connect.
3816
3817 - Changed the OS string for win32 to become "i386-pc-win32".
3818
3819 Daniel (9 March 2004)
3820 - Changed the internals to use curl_socket_t for socket variable type. This
3821   should enable us to build with less warnings on Windows, where SOCKET is
3822   used which is an unsigned int, while most other platforms use a mere int.
3823
3824 - Modified lib/config-win32.h to build fine on MSVC again.
3825
3826 Version 7.11.1-pre1 (8 March 2004)
3827
3828 Daniel (8 March 2004)
3829 - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
3830   larger than 4 bytes.
3831
3832 Daniel (4 March 2004)
3833 - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
3834
3835 - Modified the test HTTP server a lot to work with the upcoming changes for
3836   PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
3837   García's win32-changes. Improved the logging.
3838
3839 - Fixed the file:-related progress/getinfo stuff a bit more.
3840
3841 Daniel (4 March 2004)
3842 - I corrected a problem with the multi interface when following a Location:
3843   header or when doing multiple-request authentications. A subsequent request
3844   could erroneously re-use a previous connection that was sent with
3845   Connection: close. Christopher R. Palmer reported.
3846
3847 - Andrés García patched curl to prevent warnings while compiling with mingw,
3848   mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
3849   defined.
3850
3851 - When transferring files from a file: URL, the progress meter and other
3852   transfer metrics were not updated properly.
3853
3854 - David Byron provided a "version resource" file to the curl executable for
3855   the windows builds.
3856
3857 Daniel (3 March 2004)
3858 - David Byron's work on making libcurl only require winsock 1.1 on Windows
3859   machines.
3860
3861 - More variable cleanups based on compiler warnings generated by Tor Arntsen's
3862   autobuilds with MIPSPro.
3863
3864 - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
3865
3866 - Applied Tom Bates' patch to build on nsr-tandem-nsk.
3867
3868 - Dan Fandrich corrected some flaws in the configure GSS detection.
3869
3870 Daniel (2 March 2004)
3871 - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
3872   curl_off_t types internally.
3873
3874 Daniel (1 March 2004)
3875 - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
3876   response, that signals if this libcurl supports >2GB files. curl -V now
3877   outputs 'Largefile' in the Features: field if this is the case. Most systems
3878   are likely to support this.
3879
3880 - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
3881   to printf() curl_off_t variables. We also modified the libcurl sources to
3882   use this define instead of the previous %Od approach (although I've left the
3883   O-flag functional in the code). This should also prevent compilers to warn
3884   on the home-grown option.
3885
3886 - Fixed the resume-check code to test for a working resume at the end of the
3887   headers and not at the first body-byte.
3888
3889 - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
3890   you need a global DNS cache for whatever reason, use the share interface and
3891   you'll get a global cache that works the way it should work. You can even
3892   have any number of global caches, all at your command. This is now also
3893   mentioned in the docs.
3894
3895 - Made the *printf code support the z-flag to enable size_t printf() in a
3896   manner similar to how glibc allows it. To make printfing of this work on
3897   platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
3898
3899 - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
3900   CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
3901   loop without succeeding to authenticate due to the new connection that was
3902   made for all round-trips in the authentication. Now, the FRESH_CONNECT is
3903   remade to only matter for the first connection made with curl_easy_perform()
3904   and all the rest that might follow due to FOLLOWLOCATION or HTTP
3905   authentication are now ignoring that option.
3906
3907 - Adjusted the QUIT code slightly since it could core-dump.
3908
3909 - Corrected the test suite's FTP server to provide a correct size to the
3910   'verifiedserver' request.
3911
3912 Daniel (27 February 2004)
3913 - Joe Halpin made the FTP code send QUIT on the control connection before
3914   disconnecting the TCP connection. This is what good-behaving ftp clients
3915   should do.
3916
3917 Daniel (26 February 2004)
3918 - David Byron updated several files to make curl build fine on MSVC 6. He
3919   also added the 'buildconf.bat' that works like the 'buildconf + configure'
3920   combo does on unixes.
3921
3922 - Gisle Vanem made the memdebug stuff support calloc() as well.
3923
3924 - Tor Arntsen pointed out that testcurl.sh needed to remove the generated
3925   files in order to have them re-generated in each build.
3926
3927 - Andy Serpa found out that the share interface did not enjoy life when not
3928   having the lock and unlock callbacks set, even though documented to be
3929   OK. It still is OK, and now the code won't segfault anymore!
3930
3931 Daniel (25 February 2004)
3932 - Based on a patch by Greg Hewgill I modified how long long is used in the
3933   mprintf code, as we can use a 64bit type with MSVC that is a long long
3934   equivalent. This corrects some weird large file behaviors on windows.
3935
3936 - Tor Arntsen helped me work out --enable-debug to work better with different
3937   versions of the gcc and icc compilers.
3938
3939 - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
3940
3941 Daniel (22 February 2004)
3942 - Applied the final pieces of Gisle Vanem's patch that brings a working name
3943   resolve timeout to the windows versions of curl!
3944
3945 Daniel (21 February 2004)
3946 - David Byron's fix to allow the speed-limit logic work even if you set
3947   limit-rate. It does work on the expense of the rate limiter.
3948
3949 Daniel (20 February 2004)
3950 - configure --enable-debug with gcc now also tries to detect the icc compiler
3951   (which somehow gets treated as if it is a gcc) to stop using all the gcc
3952   options with it, and we also provide -isystem options for each extra -I
3953   option the configure script has figured out (for OpenSSL, kerberos, zlib,
3954   Heimdal etc). This of course to prevent warnings on headers we don't have
3955   control of.
3956
3957 Daniel (19 February 2004)
3958 - Doug Porter made libcurl use the HOME environment variable before the
3959   getpwuid results when looking for .netrc files.
3960
3961 - If 'configure --enable-debug' is used with gcc, it now checks which gcc
3962   version it is and uses as picky compiler options as possible for the
3963   particular version.
3964
3965 - Code that can be used in both the lib and in the curl app is now made to use
3966   the curlx_ prefix. The first function to be available like this is the
3967   curlx_strtoll() function. This is made to allow the app to use existing code,
3968   but without polluting the libcurl API. Further explanations posted here:
3969
3970     http://curl.haxx.se/mail/lib-2004-02/0215.html
3971
3972 Daniel (18 February 2004)
3973 - Fixed buildconf to not use "which" as AIX and Tru64 have what have been
3974   referred to as "horribly broken 'which' programs".
3975
3976 - Made sure dns cache timeout set to -1 really means caching forever.
3977
3978 Daniel (17 February 2004)
3979 - Made it possibly to build c-ares with the libcurl memdebug system to better
3980   track memory.
3981
3982 Daniel (16 February 2004)
3983 - When using ares, we now initialize the ares 'channel' in curl_easy_init()
3984   and re-use that same handle during the entire curl handle's life-time. It
3985   improves performance.
3986
3987 - Fixed a problem when displaying verbose for ipv6-enabled libcurls and
3988   re-used connections. Problem reported and fix verified by Grigory Entin.
3989
3990 - Jeff Lawson fixed the version-check in the SOCKS5 code.
3991
3992 Daniel (15 February 2004)
3993 - Fixed a case where a host cache entry was not flagged in-use properly when a
3994   cached entry was used.
3995
3996 - Andrés García's patch that checks for winmm in the configure script was
3997   applied.
3998
3999 Daniel (13 February 2004)
4000 - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
4001   specific network interface.
4002
4003 - Greg Hewgill found out that the variable holding 'contentlength' wasn't big
4004   enough to hold a large file!
4005
4006 - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
4007   department, and there was another potential problem in the name resolve code
4008   too.
4009
4010 Daniel (11 February 2004)
4011 - Removed a few variables that were only set but never used, as some compilers
4012   warn about that and we do not like compiler warnings!
4013
4014 - Removed the need for symlinks in the tests/data directory if curl is built
4015   outside of the source directory and the 'make test' is used. This was done
4016   by providing a "source dir path" to the scripts/servers.
4017
4018 - Now, if the configure script can't find an nroff tool or an option to nroff
4019   to use to convert man pages with, it will completely switch off the built-in
4020   manual.
4021
4022 - 'configure --disable-manual' completely disables the built-in manual from
4023   the curl command tool.
4024
4025 - Andrés García fixed the configure script and a minor source edit, and now
4026   he has managed to get msys/mingw to run configure and then build!
4027
4028 Daniel (9 February 2004)
4029 - The default HTTP Accept: header was modified to the much simpler
4030   "Accept: */*".
4031
4032 - P R Schaffner updated the curl-ssl spec file for RPMs.
4033
4034 - Dominick Meglio brought lots of documentation for the share interface's man
4035   pages that were previously missing.
4036
4037 - Tor Arntsen provided a patch that makes libcurl work-around a bug in the
4038   AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
4039   ipv6-enabled AIX builds.
4040
4041 - Ken Rastatter provided portability fixes for the curlgtk.c example, and now
4042   it runs on windows with GTK as well!
4043
4044 Daniel (6 February 2004)
4045 - Andrés García made the configure script find gethostbyname() fine when run
4046   with mingw on windows.
4047
4048 - Modified the ldap code to use proper function pointers all over (instead of
4049   mixed data and function pointers) to work-around the picky MIPSPro compiler
4050   warnings.
4051
4052 - A custom Host: header is only considered if the request is not made by
4053   following a location. After discussions with Tim Baker.
4054
4055 Daniel (5 February 2004)
4056 - The libz part of the configure script now only set the two libz-related
4057   define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
4058   If one is missing, none of the defines is set.
4059
4060 - Andrés García fixed the Mingw makefiles.
4061
4062 - Len Krause reported that curl 7.9.X could do uploading from stdin without
4063   doing chunked encoding, which current curl cannot do even if you disable
4064   the transfer-encoding chunked header. Now it can again, and test case 98
4065   verifies this functionality.
4066
4067 - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
4068   the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
4069   messages when bailing out in the that function.
4070
4071 - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
4072   compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
4073   numerous minor quirks to make less warnings appear.
4074
4075 Daniel (4 February 2004)
4076 - Based on a patch by Gilad, we now use the custom timeouts when waiting for a
4077   server to connect when using FTP PORT. Previously we always waited 10
4078   seconds, no more no less. We now also changed the default (if no timeout is
4079   set) to wait 60 seconds for the connect before we fail.
4080
4081 Daniel (3 February 2004)
4082 - Modified to link with c-ares instead of ares.
4083
4084 Daniel (2 February 2004)
4085 - Added a configure test to check for which option the (g)nroff tool wants
4086   to extract plain text from the man pages. Tor Arntsen told us the AIX
4087   version of GNU gnroff doesn't support -man!
4088
4089 - Added an undef of accept in memdebug.h to make curl build with --enable-debug
4090   on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
4091
4092 - curl_version() now includes c-ares version info, and curl_version_info() now
4093   returns a struct with version SECOND that also includes that info.
4094
4095 - We are now officially using c-ares for asynch name resolves. c-ares is the
4096   new library, based on the existing ares but with an extended and slightly
4097   modified API.
4098
4099 - Dirk improved the ares timeout code, and now we also include the ares error
4100   string when we fail to resolve a name.
4101
4102 - Another tweak to make test case 91 run fine. Now we have another bit on a
4103   connection that is set true if the connection is marked for 'retry'. That
4104   makes the connection get closed and re-opened and the HTTP-done code must
4105   not complain on the fact that no data was received.
4106
4107 - Based on Dirk Manske's patch, I modified the name resolving with ares to
4108   feature a timeout for really slow lookups. It now defaults to 300 seconds,
4109   but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
4110   is set.
4111
4112 - Fixed the inclusion of ca-bundle.h to really use the one in the build dir
4113   before the one in the source dir. Domenico Andreoli found out and reported.
4114
4115 - Added test case 97, a simple POST with a custom Content-Type header
4116   replacing the original application/x-www-form-urlencoded one.
4117
4118 Daniel (30 January 2004)
4119 - Added code that attempts to fix the test 91 failure. As has been figured out
4120   by Patrick Smith, the error happens because we re-use a connection that the
4121   server is just about to close and we even manage to send away the request
4122   without seeing an error. On the first read attempt we get a ECONNRESET.
4123   Starting now, we attempt to detect this and if so, we retry the request on a
4124   fresh connection.
4125
4126 - I added test case 510 which is a custom program that does a POST using a
4127   read callback, with chunked transfer-encoding.
4128
4129 - Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
4130
4131 - Added --socks as a recognized option. It works just like --proxy but sets a
4132   SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
4133   while, just not provided by the curl tool. This does not currently work for
4134   IPv6-enabled libcurls.
4135
4136 Daniel (29 January 2004)
4137 - Stadler Stephan pointed out that src/hugehelp.c included config.h without
4138   checking the define if its present...
4139
4140 - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
4141   system.
4142
4143 - Dan Fandrich compiled curl with lots of aggressively pedantic compiler
4144   options and thus found a few minor errors and did some general cleanups to
4145   avoid them.
4146
4147 - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
4148   sockets properly.
4149
4150 Daniel (28 January 2004)
4151 - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
4152   CRLF combo properly.
4153
4154 Daniel (27 January 2004)
4155 - Made the response-headers during a CONNECT request to a proxy get passed on
4156   as regular headers, so they appear with -i/-I options and similar.
4157
4158 - Based on a patch by Gisle Vanem, I've made the progress meter display
4159   properly switch to a GB-display when more than 9999MB have been transfered.
4160
4161 Daniel (23 January 2004)
4162 - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
4163   required didn't have one and was on the last line of a file.
4164
4165 - More Windows fixes for large files. We now build and link with
4166   ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
4167   libcurl function... Perhaps we should consider a 'common' dir or similar
4168   where we put source code used in both the lib and the client. Or perhaps
4169   we'll just make this function available in the library...
4170
4171 - Vincent Bronner found out the socks5 code crashed when no username was
4172   set.
4173
4174 - Vincent Bronner spotted a problem with proxy username/password when re-using
4175   a persistent connection.
4176
4177 - Fixed the progress meter display for files larger than 2^31 bytes. Gisle
4178   Vanem reported.
4179
4180 Daniel (22 January 2004)
4181 - Gisle Vanem made strtoll() get used when curl is built with the mingw
4182   compiler.
4183
4184 - Gisle Vanem fixed the compressed help text code to display properly.
4185
4186 - Removed the '#define HttpPost' from the public header file, as curl_httppost
4187   is the proper name and it has been for quite some time now. Fixes another
4188   name space pollution.
4189
4190 - Added 'curl_off_t' typedef in the public header file, to be used to provide
4191   large file sizes to the *_LARGE options. Adjusted the code all over to use
4192   this variable type instead of 'off_t'. This is an attempt to make the large
4193   file support work on more platforms. The configure script now checks the
4194   size of the curl_off_t instead of the plain off_t.
4195
4196 Version 7.11.0 (22 January 2004)
4197
4198 Daniel (21 January 2004)
4199 - Removed the defines in the public header file with TIMECOND_ prefixes. They
4200   have been obsolete since April 22nd 2002, and if this causes anyone any
4201   problems now it is very easy to just add CURL_ to the names. This corrects
4202   this name space pollution.
4203
4204 Daniel (19 January 2004)
4205 - David Byron cleaned up how --trace with no option was treated, and also
4206   arguments in a config file without a required parameter!
4207
4208 Daniel (16 January 2004)
4209 - Gisle Vanem fixed a few issues where compilers warned about variables
4210   possibly being used unassigned.
4211
4212 - Minor Interix build problem fixed.
4213
4214 Daniel (15 January 2004)
4215 - Peter Sylvester pointed out some necessary escaping needed in the
4216   acinclude.m4 file when automake 1.8 or later is used.
4217
4218 Daniel (14 January 2004)
4219 - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
4220   Steve Green provided on december 3...
4221
4222 Daniel (13 January 2004)
4223 - Luke Call made the win32 version of the password prompting function support
4224   backspace.
4225
4226 - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
4227   an uncompressed version in the distribution, so that more people easier can
4228   build curl with the compressed version.
4229
4230 - Diego Casorran brought another AmigaOS build patch for native Amiga builds.
4231
4232 - Matt Veenstra updated the Mac OS X framework files.
4233
4234 - Brian R Duffy brought a section to the INSTALL file on how to build a
4235   SSL-enabled curl using the free Borland C++ compiler. He also updated the
4236   Borland lib/Makefile.b32.
4237
4238 - I fixed the test case 509 which I broke yesterday. Now the libtest are
4239   compiled with an include path that points to the library's source dir, so
4240   that the libtests can include files from the source tree. This was made to
4241   make it possible to use the USE_SSLEAY define in the library test files.
4242
4243 Daniel (12 January 2004)
4244 - Peter Sylvester brought code that now allows a callback to modified the URL
4245   even when the multi interface is used, and then libcurl will simulate a
4246   "follow location" to that new URL. Test 509 was added to test this feature.
4247
4248 - Extended the time we retry servers in the test script, and I also made it
4249   retry the https and ftps servers before they are considered bad. I believe
4250   the previous approach could turn problematic on really slow hosts.
4251
4252 Version 7.11.0-pre1 (12 January 2004)
4253
4254 Daniel (11 January 2004)
4255 - Dominick Meglio pointed out FTPS should use default port 990 according to
4256   IANA.
4257
4258 Daniel (8 January 2004)
4259 - Fixed the SPNEGO configure check to not use -R or other non-portable options
4260   in the LDFLAGS. Reported by Pierre in bug report #872930.
4261
4262 Daniel (5 January 2004)
4263 - Dan Fandrich provided a fix on our zlib usage.
4264
4265 - David J Meyer's patch that introduce large file support to libcurl was
4266   applied. New curl_easy_setopt options that accept 'off_t' arguments are:
4267
4268   INFILESIZE_LARGE
4269   RESUME_FROM_LARGE
4270   MAXFILESIZE_LARGE
4271
4272 Daniel (4 January 2004)
4273 - Based on Dominick Meglio's comments, I made our private version of
4274   gettimeofday() declared static. This would otherwise collide with the same
4275   function in other libs (like ares for example).
4276
4277 - Added Dominick Meglio's description on how to build libcurl with ares
4278   on win32.
4279 Daniel (19 December)
4280 - CURLOPT_IPRESOLVE was not possible to set.
4281
4282 - Gisle Vanem updated the djgpp build files.
4283
4284 Daniel (18 December)
4285 - John McGowan reported a redirect-problem that happened if a site used a URL
4286   like "url.com?var=content" (without a proper slash) and from that address
4287   redirected the user-agent to an absolute directory.
4288
4289 - David Byron made libcurl build fine with both the .NET and VC6 versions of
4290   MSVC
4291
4292 Daniel (16 December)
4293 - Updated test 506 since it started to fail after the cache prune change
4294   yesterday. I also changed it slightly to feature a counter in each debug
4295   output for easier tracing.
4296
4297 Daniel (15 December)
4298 - Old DNS cache entries are now only pruned after curl is done with a request,
4299   and not in the actual name resolve call.
4300
4301 - corrected the --enable-ares patch
4302
4303 - Giuseppe Attardi found and fixed a problem within libcurl that re-used
4304   already freed memory.
4305
4306 Daniel (10 December)
4307 - Gisle Vanem reported that the dict support was broken. I broke it during my
4308   ftps-changes overhaul. I've now added a 'curlassert' function that can be
4309   used to verify expressions, to prevent future errors of the same
4310   kind. They're only present in debug-builds.
4311
4312 - Diego Casorran made curl and libcurl possible to build natively (no more
4313   need for the ixemul library) on AmigaOS.
4314
4315 - Dominick Meglio made configure --enable-ares support a given path to the
4316   installed ares lib, instead of always using it in the curl source tree.
4317   This also fixed the curl-config --libs output.
4318
4319 - Eric S. Raymond patched a very minor man page format error in
4320   libcurl-errors.3
4321
4322 Daniel (8 December)
4323 - Fixed the flaw that made -lz appear twice on the link command line.
4324
4325 - After correspondence with Gisle Vanem, I changed the 'connection aborted'
4326   error text when the FTP response reader failed to more specificly identify
4327   what the problem is.
4328
4329 - Based on a patch from Dominick Meglio, curl-config --feature now outputs
4330   'AsynchDNS' as a feature if libcurl was built with ares. The feature name
4331   is the same that 'curl -V' outputs, for simplicity.
4332
4333 Daniel (3 December)
4334 - Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS-
4335   specific stuff in the client code to a separate header file.
4336
4337 - Steve Green fixed a return code bug in Curl_resolv(), that made the socks5
4338   code fail.
4339
4340 - swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers
4341   when Transfer-Encoding: chunked is used, as mandated by RFC2616.
4342
4343 Daniel (2 December)
4344 - --ftp-pasv was added, which serves the only purpose of overriding a
4345   previously set --ftpport option. Starting now, --ftp-port is a recognized
4346   alias for --ftpport for consistency.
4347
4348 - Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use
4349   send() and recv(). I added checks for the define in the configure script and
4350   adjusted the code accordingly. If the symbol is present, we won't attempt
4351   to ignore the SIGPIPE signal.
4352
4353 Daniel (1 December)
4354 - Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl
4355   run fine against its FTPS implementation. Now these FTPS-related things
4356   work:
4357    o explicit and implicit FTPS
4358    o active (PORT) and passive (PASV)
4359    o upload and download
4360    o verified against bsdftpd-ssl and RaidenFTPD
4361
4362 Daniel (27 November)
4363 - James Clancy made the Borland Makefiles up to date.
4364
4365 - Markus Moeller improved the SPNEGO detection in the configure script.
4366
4367 Daniel (25 November)
4368 - Dave May filed bug report #848371, identifying that if you'd do POST over a
4369   proxy to a https server, libcurl didn't POST at all, it just made a GET! It
4370   turned out to be because libcurl wrongly didn't consider the authentication
4371   "negotiation phase" to be complete yet.
4372
4373   I added test case 95 to verify my fix for this.
4374
4375 Daniel (24 November)
4376 - Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it
4377   seems to work somewhat fine now.
4378
4379   The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft
4380   (version 12). There seems to exist quite a few servers that have implemented
4381   the server side of this.
4382
4383   We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control
4384   connection and the data connection (dealing with two SSL connections forced
4385   me to change a lot of stuff in libcurl).
4386
4387   Alternatively, and what seems to be the recommended way, we can set the new
4388   option CURLOPT_FTP_SSL to one of these values:
4389
4390      CURLFTPSSL_NOPE,   - do not attempt to use SSL
4391      CURLFTPSSL_TRY     - try using SSL, proceed anyway otherwise
4392      CURLFTPSSL_CONTROL - SSL for the control connection or fail
4393      CURLFTPSSL_ALL     - SSL for all communication or fail
4394
4395   Any failure to set the desired level will make libcurl fail with the error
4396   code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer
4397   attempt to be made securely.
4398
4399   I've been able to login and get files (passively) from Mathias' server using
4400   both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl
4401   option that sets CURLFTPSSL_TRY.)
4402
4403 - Gaz Iqbal fixed a range string memory leak.
4404
4405 - Gisle Vanem fixed the Windows builds.
4406
4407 - Added the new FTPSSL defines in curl/curl.h
4408
4409 Daniel (20 November)
4410 - Josh Kapell filed bug report #845247 as he found an endless loop when
4411   getting a 407 back from a proxy when no user+password was given. Added test
4412   case 94 to verify the fix.
4413
4414 Daniel (19 November)
4415 - Kevin Roth fixed a progress-bar problem on Windows.
4416
4417 - While working with Nicolas Croiset's bug report #843739, I noticed two minor
4418   problems related to ftp partial downloads: if a partial transfer is
4419   detected, we must close the connection as we cannot know in what state it is
4420   anymore. This looks like a ProFTPD bug:
4421   http://curl.haxx.se/mail/lib-2003-11/0079.html
4422
4423 Daniel (17 November)
4424 - Maciej W. Rozycki made the configure script use a cache variable for the
4425   writable argv test. This way, the default can be overridden better (for
4426   cross-compiles etc)
4427
4428 Daniel (15 November)
4429 - Mathias Axelsson found out libcurl sometimes freed the server certificate
4430   twice, leading to crashes!
4431
4432 Daniel (14 November)
4433 - Siddhartha Prakash Jain found a case with a bad resolve that we didn't
4434   properly bail out from, when using ares.
4435
4436 Daniel (13 November)
4437 - Default Content-Type for parts in multipart formposts has changed to
4438   "application/octet-stream".  This seems more appropriate, and I believe
4439   mozilla and the likes do this. In the same area: .html files now get
4440   text/html as Content-Type. (Pointed out in bug report #839806)
4441
4442 - Gisle Vanem corrected the --progress-bar output by doing a flush of the
4443   output, which apparently makes it look better on at least windows, but
4444   possibly other platforms too.
4445
4446 - Peter Sylvester identified a problem in the connect code, which made the
4447   multi interface on a ipv6-enabled solaris box do bad. Test case 504 to be
4448   specific. I've spent some time to clean-up the Curl_connecthost() function
4449   now to use less duplicated code for the two different sections: ipv6 and
4450   ipv4.
4451
4452 Daniel (11 November)
4453 - Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead
4454   of trying to find a .netrc in the current user's home directory. The
4455   existing .netrc file finder is somewhat naive and is far from perfect on
4456   several platforms that aren't unix-style. If this option isn't set when
4457   CURLOPT_NETRC is set, the previous approach will still be used.
4458
4459   The current .netrc check code now also support longer than 256 bytes path
4460   names.
4461
4462 Daniel (10 November)
4463 - Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be
4464   written in the source dir if a different build dir is used.
4465
4466 - After Sébastien Willemijns' bug report, we now check the separators properly
4467   in the 229-reply servers respond on a EPSV command and bail out better if
4468   the reply string is not RFC2428-compliant.
4469
4470 Daniel (7 November)
4471 - Based on Gisle Vanem's patch, I made curl try harder to get the home
4472   directory of the current user, in order to find the default .curlrc file.
4473   We're also considering moving out the HOME-dir code from libcurl, and
4474   instead have the app pass in the path to the .netrc file (which is the only
4475   logic left in libcurl that uses the HOME dir). Then curl can use the home
4476   dir for that purpose too.
4477
4478 - Ralph Mitchell's updated testcurl.sh to the script to take an existing
4479   directory name and build/run/test curl in there instead of trying to update
4480   from CVS. Using this approach, the script can now be used to test daily
4481   tarballs etc.
4482
4483 - Gisle Vanem added a "resource file" to the Windows DLL builds, to contain
4484   information such as version number, library name, copyright info etc.
4485
4486 Daniel (6 November)
4487 - curl checks if the existing libcurl supports things like --ntlm, --negotiate
4488   and --krb4 and returns error if not.
4489
4490 - I added three new global defines in the curl/curl.h header:
4491   LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They
4492   are the three numbers in the library's version number, separated for easier
4493   usage. 'maketgz' was updated accordingly to generate these numbers properly
4494   when building release-archives.
4495
4496 - Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin
4497   Gerard.
4498
4499 - Matt Veenstra provided build files to build libcurl as a "framework" under
4500   Mac OS X. See the lib/libcurl.framework.make for details.
4501
4502 - Removed the defines of TRUE and FALSE from the curl/curl.h header file.
4503   They're not in our name space so we should not fiddle with them.
4504
4505 Daniel (5 November)
4506 - Replaced the man page to HTML converter program with a new one: roffit.
4507   Makes nicer web pages.
4508
4509 Daniel (4 November)
4510 - Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine
4511   on Windows.
4512
4513 - Kevin Roth corrected the cygwin package generator and spell-fixed the
4514   comment in the ca-bundle.h file.
4515
4516 Version 7.10.8 (1 November 2003)
4517
4518 Daniel (31 October)
4519 - Assume that MDTM on an FTP server returns the timestamp using the UTC time
4520   zone. This changes the time CURLINFO_FILETIME returns for a given file over
4521   FTP, and will change existing uses of CURLOPT_TIMECONDITION. It will make
4522   the functionality more similar to how the HTTP one is already working.
4523
4524 - Command line options that take numerical parameters (such as -y, -Y, -C etc)
4525   now report error and exit if the parameter isn't truly a number greater than
4526   or equal to zero. This helps users to notice bad usage earlier. Before, when
4527   a user forgot or missed to add a numerical parameter to an option, the
4528   command line parser would simply "eat" the following option and it would
4529   cause great confusion.
4530
4531 Daniel (30 October)
4532 - David Hull made libcurl deal with NOBODY and HEADER for file:// the same way
4533   it already does for FTP: it provides HTTP-looking headers that provide info
4534   only about the file, without doing the actual transfer. The curl tool then
4535   lets --head do this.
4536
4537 Daniel (29 October)
4538 - runtests.pl now checks for and use valgrind if present. It will redirect the
4539   valgrind results in log/valgrind[num] but it currently doesn't scan that
4540   file for any errors or anything, that is still only made manually.
4541
4542 - David Hull made the file: URL parser also accept the somewhat sloppy file
4543   syntax: file:/path. I added test case 203 to verify this.
4544
4545 Daniel (28 October)
4546 - Dan C tracked down yet another weird behavior in the glibc gethostbyname_r()
4547   function for some specific versions (reported on 2.2.5 and 2.1.1), and
4548   provided a fix. On Linux machines with these glibc versions, non-ipv6
4549   builds of libcurl would often fail to resolve perfectly resolvable host
4550   names.
4551
4552 Daniel (26 October)
4553 - James Bursa found out that curl_msnprintf() could write the trailing
4554   zero-byte outside its given buffer size. This could happen if you generated
4555   a very long error message as then libcurl would overwrite the ERRORBUFFER
4556   with one byte. Using a non-existing very long local file:// name is one case
4557   that could make this occur.
4558
4559 Daniel (24 October)
4560 - David Hull filed bug report #829827. It identified a problem with -C - if
4561   the full file already was downloaded and thus the server responded with a
4562   416. libcurl would then wrongly use the Content-Length: header and expect
4563   that size to get transfer, causing a "hang" until the server closed the
4564   connection and then an error 18 ("still N bytes data left of the transfer").
4565
4566   Now we don't return any error at all, but I think libcurl should perhaps
4567   return some kind of info since the requested range was out of the size of
4568   the document.
4569
4570 - Based on David Hull's fix in bug report #804599, we now check for solaris and
4571   gcc in configure and set the -mimpure-text link flag for linking the lib
4572   better.
4573
4574 - I've introduced a -t option to the runtests.pl script. With that option set,
4575   the script runs special "memory torture" tests. For each test command line
4576   in that section, the script first runs the command line and counts the total
4577   amount of allocations made. It then runs the exact same command line again,
4578   forcing allocation number N to fail. It will try every N from 1 to the total
4579   number of amounts made. For every invoke, it checks that no memory was
4580   leaked as that would indicate a bad cleanup somewhere in the code.
4581
4582   This is just beginning to work, and I've already made some corrections in
4583   libcurl code. When this code works somewhat fine, I'll make sure 'make test'
4584   in the root dir will run these tests as well.
4585
4586 Daniel (23 October)
4587 - Georg Horn fixed how the CA verification is made. Verifications can now be
4588   made while at the same time the result of it can be ignored. This also
4589   affects the curl tool as -k can now be used together with --cacert or
4590   --capath.
4591
4592 Daniel (22 October)
4593 - Gisle Vanem found out --disable-eprt didn't work and patched it.
4594
4595 - Test case 91 was modified and could now repeat the problem Kevin Roth has
4596   reported, and the bug was fixed.
4597
4598 - Dylan Ellicott added vc-libcurl-ssl-dll as a target to the root makefile
4599   to build a static libcurl that links with a shared OpenSSL using MSVC.
4600
4601 Daniel (21 October)
4602 - Andrés García updated the mingw32 makefiles.
4603
4604 Version 7.10.8-pre5 (21 October 2003)
4605
4606 Daniel (19 October)
4607 - Georg Horn made libcurl output more info on SSL failures when receiving
4608   data.
4609
4610 Version 7.10.8-pre4 (18 October 2003)
4611
4612 Daniel (17 October)
4613 - Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize.
4614
4615 - Made libcurl show verbose info about what auth type and user name that is
4616   being sent in its HTTP request-headers.
4617
4618 Daniel (16 October)
4619 - Removed support for CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. libcurl
4620   no longer prompt for passwords under any circumstances. Password prompting
4621   was instead moved to curl, which now prompts for password if -u or -U lack
4622   it. This solves the problem Kevin Roth reported when curl prompted for
4623   password twice when doing NTLM authentication.
4624
4625 - I rewrote the SSL subjectAltName check to avoid having to rely on OpenLDAP-
4626   licensed derivate code.
4627
4628 Daniel (15 October)
4629 - Avoid doing getsockopt() on Windows to verify connects. It seems that this
4630   hogs Windows machines when libcurl is being used multi-threaded (with > ~50
4631   threads). Andrew Fuller helped us verify and test this.
4632
4633 Daniel (14 October)
4634 - Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG is set.
4635
4636 - Gisle Vanem made libcurl build and work with IPv6 on Windows.
4637
4638 Daniel (13 October)
4639 - Giuseppe Attardi reported yet another segfault with ares and the multi
4640   interface. Me fixed.
4641
4642 - Domenico Andreoli removed the extra LDFLAGS assignment in lib/Makefile.am
4643   that was reported about in the debian bug report #212086.
4644
4645   Domenico also fixed two makefiles where we used 'gnroff' instead of the more
4646   portable $(NROFF).
4647
4648 Daniel (12 October)
4649 - Dirk Manske made the share locking around DNS lookups slightly different to
4650   allow the share system's DNS lookups to run somewhat more
4651   independent/faster.
4652
4653 Daniel (9 October)
4654 - Lachlan O'Dea fixed a resume problem: "If I set CURLOPT_RESUME_FROM, perform
4655   an HTTP download, then reset CURLOPT_RESUME_FROM to 0, the next download
4656   still has a Range header with a garbage value." bug report #820502
4657
4658 - Dominick Meglio made the inet_pton.c file build fine using MSVC.
4659
4660 - The 'sws' test suite web server now #include setup.h from the lib directory.
4661   This makes it more portable easier.
4662
4663 Version 7.10.8-pre3 (8 October 2003)
4664
4665 Daniel (8 October)
4666 - Frank Ticheler provided a patch that fixes how libcurl connects to multiple
4667   addresses, if one of them fails (ipv4-code).
4668
4669 Daniel (7 October)
4670 - Neil Dunbar provided a patch that now makes libcurl check SSL
4671   subjectAltNames when matching certs. This is apparently detailed in RFC2818
4672   as the right thing to do. I had to add configure checks for inet_pton() and
4673   our own (strictly speaking, code from BIND written by Paul Vixie) provided
4674   code for the function for platforms that miss it.
4675
4676 - HTTP POST using the read callback didn't work, as Florian Schoppmann
4677   reported.
4678
4679 Daniel (5 October)
4680 - Shared provided a few fixes to make libcurl build on BeOS
4681   out-of-the-box. New code for BeOS-style non-blocking sockets, provided by
4682   Shard and Jeremy Friesner. Modified the autoconf check for non-blocking
4683   sockets to check for this kind too.
4684
4685 Daniel (4 October)
4686 - Vincent Bronner pointed out that if you set CURLOPT_COOKIE for a transfer
4687   and then set it to NULL in a subsequent one, the previous cookie was still
4688   sent off!
4689
4690 - Jon Turner fixed a problem libcurl had when it failed on an FTP transfer due
4691   to a bad path, it would cause the next transfer to use a bad path as well.
4692
4693 - Siddhartha Prakash Jain provided a patch with a fix for libcurl with ares,
4694   when working on IP-only names as we then could return "wait" status when the
4695   name in fact already was resolved. I edited the patch slightly to not expose
4696   asynch details to non-ares aware source code.
4697
4698 Daniel (3 October)
4699 - Neil Spring posted the debian bug report #213180, and pointed out that using
4700   the name 'access' in a function prototype is not very wise as some compilers
4701   complain.
4702
4703 - Peter Sylvester provided his and Jean-Paul Merlin's curlx.c example source
4704   code that shows how they use ssl and callbacks.
4705
4706 Daniel (2 October)
4707 - James MacMillan's patch makes curl build on QNX 6.2.x.
4708
4709 Daniel (26 September)
4710 - My daughter was born!
4711
4712 Daniel (23 September)
4713 - Added support for -4/--ipv4 and -6/--ipv6 to force names to resolve to that
4714   particular IP version. They only work for IPv6-enabled libcurls.
4715
4716 - curl -V now outputs 'SPNEGO' as a feature in case libcurl was built to
4717   support that.
4718
4719 Version 7.10.8-pre2 (22 September 2003)
4720
4721 Daniel (22 September)
4722 - Giuseppe Attardi found a segfault in libcurl when using the multi interface
4723   with ares and doing repeated operations against a non-resolving host name.
4724
4725 Daniel (19 September)
4726 - Added the CURLOPT_IPRESOLVE option, that allows an application to select
4727   what kind of IP addresses he wants to use when resolving host names. This
4728   is only interesting when using host names that resolve addresses using more
4729   than one version of IP.
4730
4731 - Applied Markus Moeller's patch that introduces SPNEGO support if libcurl
4732   is built with the FBopenssl libraries. curl_version_info() now returns
4733   info on SPNEGO availability. The patch also made the GSSAPI stuff work fine
4734   with the MIT GSS-library (the Heimdal one still works too).
4735
4736 Daniel (16 September)
4737 - Doing PUT with --digest failed, as reported in bug report #805853.
4738
4739 - Using --anyauth that picked NTLM, and then a redirect closed the connection
4740   and took curl to a second NTLM page made curl fail. Bug report #806328
4741   identified the problem, test case 90 was added to verify the fix.
4742
4743 Daniel (14 September)
4744 - codemastr brought a patch for ares to make the Windows portions of it work
4745   properly on NT4. I uploaded a new diff and updated the docs on where to get
4746   it etc.
4747
4748 - Jeff Pohlmeyer tracked down a very hard-to-find bug where we removed a
4749   cached DNS entry even though it may be in use, which caused "random" memory
4750   to get overwritten and thus "random" crashes.
4751
4752 Daniel (12 September)
4753 - Based on a bug report by David Kimdon, I made the runtests.pl script clear
4754   all possible proxy environment variables before the tests are run.
4755
4756 - By default, easy handles within a multi handle now share DNS cache.
4757
4758 - Tim Bartley brought a patch that makes the GSSNEGOTIATE option work for
4759   Microsoft's "Negotiate" authentication as well.
4760
4761 Daniel (11 September)
4762 - A zero-length proxy string confused FTP transfers.
4763
4764 - Bjorn Reese found a case with an uninitialized pointer, only present when
4765   built for ares.
4766
4767 Version 7.10.8-pre1 (8 September 2003)
4768
4769 Daniel (7 September)
4770 - Jurij Smakov found out that the non-OpenSSL MD5 code was not working on
4771   Alpha (or ia64). Only the OpenSSL-version did. I made a fix I think corrects
4772   the problem. 
4773
4774 Daniel (5 September)
4775 - Kevin Fisk reported that configure --enable-thread didn't work. I fixed.
4776
4777 - De-macrofied the lib/hash.c source code somewhat.
4778
4779 Daniel (4 September)
4780 - CURLINFO_HTTPAUTH_AVAIL and CURLINFO_PROXYAUTH_AVAIL added, Based on Joerg
4781   Mueller-Tolk's patch,
4782
4783 Early (4 September)
4784 - Added CURLOPT_FTP_RESPONSE_TIMEOUT - allows user to set strict timeout
4785   requirements on the FTP server's ability to respond to individual commands
4786   without placing global requirements on transfer or connect time.  Files
4787   affected:
4788     - include/curl/curl.h
4789         Added option CURLOPT_FTP_RESPONSE_TIMEOUT
4790     - lib/ftp.c
4791         Added branch inside Curl_GetFTPResponse to check for 
4792         data->set.ftp_response_timeout
4793     - lib/url.c
4794         Modified Curl_setopt to recognize CURLOPT_FTP_RESPONSE_TIMEOUT
4795     - lib/urldata.h
4796         Added ftp_response_timeout to struct UserDefined
4797
4798 Daniel (3 September)
4799 - Peter Pentchev found and fixed two problems in the test suite's web server
4800   code, that made it segfault at times.
4801
4802 - Jörg Mueller-Tolk improved the proxy user+password handling, especially
4803   when providing a blank password.
4804
4805 Daniel (2 September)
4806 - Fix for making CONNECT to proxies do the correct magic to allow NTLM, Digest
4807   and similar to work.
4808
4809 Daniel (1 September)
4810 - Henrik Storner made libcurl work fine with OpenLDAP 2.1.22 (current).
4811
4812 - Jeff Pohlmeyer added a proper error message for non-resolving hosts when
4813   using ares for lookups.
4814
4815 Daniel (25 August)
4816 - John McGowan reported that curl -k still failed if the HTTPS server's CN
4817   field wasn't obtainable. This was due to the CURLOPT_SSL_VERIFYHOST being
4818   set to 1, and libcurl failed if the CN was missing. Starting now, having it
4819   set to 1 will simply output a warning if no CN could be obtained (as having
4820   a mismatch is OK).
4821
4822 Daniel (21 August)
4823 - Vincent Sanders provided a fix for name resolving when linked with uClibc.
4824
4825 Daniel (20 August)
4826 - Gerd v. Egidy provided a patch that makes libcurl store the FTP response
4827   code from ftp servers. Using curl_easy_getinfo() with CURLINFO_HTTP_CODE
4828   returns that data. The option is therefore now also known as
4829   CURLINFO_RESPONSE_CODE.
4830
4831 - Antoine Calando found a segfault when doing multi-part/formpost using
4832   the multi interface.
4833
4834 - Antoine Calando pointed out that curl_multi_info_read() didn't set the
4835   msgs_in_queue to 0 properly when returning NULL.
4836
4837 Daniel (19 August)
4838 - I made curl support multiple -T options, as well as -T "{file1,file2}"
4839   style globbing. One -T for each URL is supported.
4840
4841 - Jeff Pohlmeyer found a segfault when using ares-enabled libcurl and the
4842   multi interface when trying a non-existing host name.
4843
4844 - Made the libcurl printf code support long longs if available.
4845
4846 - Loren Kirkby pointed out that we did not clean up all SSL-allocated memory
4847   in curl_global_cleanup().
4848
4849 Daniel (17 August)
4850 - Setting CURLOPT_WRITEFUNCTION or CURLOPT_READFUNCTION to NULL will now make
4851   them get the internal defaults restored. Previously this could cause a
4852   segfault. We should aim at having all pointer-related options get restored
4853   to default/safe values when set to NULL.
4854
4855 Version 7.10.7 (15 August 2003)
4856
4857 Daniel (14 August)
4858 - I modified the memdebug system to return failure on memory allocation
4859   functions after a set amount of successful ones. This enables us to test
4860   out-of-memory situations in a controlled manner and we can make sure that
4861   curl/libcurl behaves good in those.
4862
4863   This made me find and fix several spots where we did not cleanup properly
4864   when bailing out due to errors (low memory).
4865
4866 - Corrected test case 74. Made using -o with bad #[num] codes complain and
4867   bail out. Made #[num] support numbers larger than 9 as well. Added test
4868   case 86 for a proper range globbing test as well.
4869
4870 Version 7.10.7-pre4 (12 August 2003)
4871
4872 Daniel (12 August)
4873 - curl_version_info() now returns a flag if libcurl was built with asynch DNS
4874   support, and this is now also displayed with 'curl -V'.
4875
4876 - Added a few new man pages to the docs/libcurl dir: curl_share_init,
4877   curl_share_setopt, curl_share_cleanup, libcurl-easy and libcurl-share.
4878
4879 Daniel (11 August)
4880 - Mike Cherepov made the local binding code work for Windows, which makes
4881   the option CURLOPT_INTERFACE work on Windows as well.
4882
4883 - Vincent Sanders updated the fopen.c example code a lot.
4884
4885 - --proxy-ntlm is now supported by the curl tool. It forces the proxy
4886   authentication to be made using NTLM. It does not yet work for HTTPS over
4887   proxies (or other proxy-tunneling options). Test case 81 and 82 do some
4888   simple initial ntlm testing.
4889
4890 - Found and fixed a minor memory leak on re-used connections with
4891   proxy-authentication.
4892
4893 - I removed -@ and -Z as valid short options. They were very rarely used (@
4894   wasn't even documented).
4895
4896 - Serge Semashko introduced CURLOPT_PROXYAUTH, and make it work when set to
4897   CURLAUTH_NTLM and/or CURLAUTH_BASIC. The PROXAUTH is similar to HTTPAUTH,
4898   but is for the proxy connection only, and HTTPAUTH is for the remote host.
4899
4900 - Fixed loading of cookies with blank contents from a cookie jar. Also made the
4901   cookie functions inform on added and skipped cookies (for cookie debugging).
4902
4903 Version 7.10.7-pre3 (8 August 2003)
4904
4905 Daniel (8 August)
4906 - Applied David Byron's fix for file:// URLs with drive letters included.
4907
4908 - I added the --ftp-create-dirs to the client code, which activates Early's
4909   CURLOPT_FTP_CREATE_MISSING_DIRS option, and wrote test case 147 to verify
4910   it. Added the option to the curl.1 man page too. Added the option to the
4911   curl_easy_setopt.3 man page too.
4912
4913 Daniel (7 August)
4914 - Test case 60 failed on ia64 and AMD Opteron. Fixed now.
4915
4916 - Fixed a printf problem that resulted in urlglobbing bugs (bug #203827 in the
4917   debian bug tracker). Added test case 74 to verify the fix and to discover if
4918   this breaks in the future.
4919
4920 - "make distcheck" works again.
4921
4922 Version 7.10.7-pre2 (6 August 2003)
4923
4924 Daniel (5 August)
4925 - Duncan Wilcox helped me verify that the latest incarnation of my ares patch
4926   builds fine on Mac OS X (see the new lib/README.ares) file for all details.
4927
4928 - Salvatore Sorrentino filed bug report #783116 and Early Ehlinger posted a
4929   bug report to the libcurl list, both identifying a problem with FTP
4930   persistent connections and how the dir hierarchy was not properly reset
4931   between files.
4932
4933 - David Byron's thoughts on a fixed Makefile in tests/ were applied.
4934
4935 - Jan Sundin reported a case where curl ignored a cookie that browsers don't,
4936   which turned up to be due to the number of dots in the 'domain'. I've now
4937   made curl follow the the original netscape cookie spec less strict on that
4938   part.
4939
4940 Daniel (4 August)
4941 - Dirk Manske added cookie support for the experimental, hidden and still
4942   undocumented share feature!
4943
4944 - Mark Fletcher provided an excellent bug report that identified a problem
4945   with FOLLOWLOCATION and chunked transfer-encoding, as libcurl would not
4946   properly ignore the body contents of 3XX response that included the
4947   Location: header.
4948
4949 Early (6 August)
4950 - Added option CURLOPT_FTP_CREATE_MISSING_DIRS
4951     This option will force the target file's path to be created if it
4952     does not already exist on the remote system.
4953  
4954   Files affected:
4955     - include/curl/curl.h
4956         Added option CURLOPT_FTP_CREATE_MISSING_DIRS
4957     - lib/ftp.c
4958         Added function ftp_mkd, which issues a MKD command
4959         Added function ftp_force_cwd, which attempts a CWD,
4960           and does a MKD and retries the CWD if the original CWD
4961           fails
4962         Modified ftp_perform() to call its change directory function
4963           through a pointer.  The pointer points to ftp_cwd by default,
4964           and is modified to point to ftp_force_cwd IFF
4965           data->set.ftp_create_missing_dirs is not 0.        
4966     - lib/url.c
4967         Modified Curl_setopt to recognize CURLOPT_FTP_CREATE_MISSING_DIRS
4968     - lib/urldata.h
4969         Added ftp_create_missing_dirs to struct UserDefined
4970        
4971 - Minor Bugfix for CURLOPT_TIMECONDITION with FTP - if the file was not
4972   present to do the time comparison, it would fail.
4973   Files affected:
4974     - lib/ftp.c
4975         In ftp_perform(), the call to ftp_getfiletime() used to be followed
4976         by
4977           if (result)
4978             return result;
4979         And then by the code that actually did the time comparison.
4980         The code that did the comparison handled the case where the filetime
4981         was not available (as indicated by info.filetime < 0 or set.timevalue 
4982         < 0), so I replaced the if (result) return result with a switch(result)
4983         that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the 
4984         normal time comparison.
4985
4986 Daniel (3 August)
4987 - When proxy authentication is used in a CONNECT request (as used for all SSL
4988   connects and otherwise enforced tunnel-thru-proxy requests), the same
4989   authentication header is also wrongly sent to the remote host.
4990
4991   This is a rather significant info leak. I've fixed it now and mailed a patch
4992   and warning to the mailing lists.
4993
4994 Daniel (1 August)
4995 - David Byron provided a patch to make 7.10.6 build correctly with the
4996   compressed hugehelp.c source file.
4997
4998 Version 7.10.7-pre1 (31 July 2003)
4999
5000 Daniel (30 July)
5001 - Jörg Müller-Tolk updated the VC makefile.
5002
5003 - Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar
5004   style like other faked HTTP headers when NOBODY and HEADER are used. I
5005   updated two corresponding test cases too.
5006
5007 - Marty Kuhrt pointed out a compilation problem on VMS due to my having
5008   changed a type from long to time_t, and I'm now changing it back to work
5009   more portably...
5010
5011   He also indicated that distributing the src/hugehelp.c in a compressed state
5012   like I accidentally did may not be the smartest move... I've now fixed the
5013   distribute procedure to automatically generate an uncompressed version when I
5014   make release archives.
5015
5016 Daniel (29 July)
5017 - Gisle Vanem brought changes to the mkhelp script for the generation of the
5018   compressed help text on some platforms.
5019
5020 Version 7.10.6 (28 July 2003)
5021
5022 Daniel (28 July)
5023 - François Pons brought a patch that once again made curl deal with ftp and
5024   "double slash" as indicating the root directory. In the RFC1738-fix of April
5025   30, that ability was removed (since it is not the "right" way). So, starting
5026   now we can list the root dir of an ftp server both these ways:
5027
5028     curl ftp://server.com/%2f  as well as
5029     curl ftp://server.com//
5030
5031 Daniel (24 July)
5032 - Henry Bland pointed out that we included sys/resource.h without good reason
5033   in several source files. Without it included, QNX builds better...
5034
5035 - Andrés García updated the mingw makefiles.
5036
5037 Daniel (23 July)
5038 - Tracy Boehrer experienced DNS cache problems and did some nice debugging
5039   and tracking which made it easy for me to correct the problem and Tracy
5040   could verify that it did cure the problem! When re-using a connection we
5041   now make sure we don't re-use the 'connect_addr' struct.
5042
5043 - Daniel Kouril corrected the GSS-Negotiate code.
5044
5045 - Juan F. Codagnone provided fixes to allow curl to build fine on Windows
5046   again.
5047
5048 Daniel (22 July)
5049 - Edited the curl/curl.h include file to build on Windows properly.
5050
5051 Daniel (21 July)
5052 - Moved the proxy credentials from the SessionHandle struct to the connectdata
5053   struct, to make multiple proxy connections with differerent user names work.
5054
5055 - Adjusted the NTLM code to support proxy functionality.
5056
5057 - Made the krb4 stuff compile with the user+password fields moved.
5058
5059 Version 7.10.6-pre4 (21 July 2003)
5060
5061 Daniel (20 July)
5062 - David Gardner pointed out in bug report 770755 that using the FTP command
5063   CWD with a blank argument is a bad idea and I made libcurl skip empty path
5064   segments starting now.
5065
5066 Daniel (18 July)
5067 - Cris pointed out that my fix on July 16th didn't work fully. His pointing
5068   out this (and his patch) also made me realize that we have a very similar
5069   bug in the FTP connection re-use code. We must store a separate user and
5070   password field for each connection we keep (at least for FTP and HTTP+NTLM
5071   connections, so I made us do this unconditionally).
5072
5073 - Since NTLM authenticates connections instead of single requests, I had to
5074   re-arrange how we store the NTLM data and I had to improve the test suite to
5075   finally work properly with persistency to make the NTLM tests run fine
5076   again. This also forced me to have to update lots of HTTP test cases.
5077
5078 Daniel (16 July)
5079 - Cris Bailiff's bug report 768275 pointed out that using Basic auth with
5080   wrong user+password caused an endless loop. Fixed now. He also found out that
5081   we didn't properly authenticate connections with NTLM. Fixed too.
5082
5083 - Dan Winship provided fixes for the NTLM code.
5084
5085 Daniel (5 July)
5086 - Doug Kaufman provided additional fixes for the DOS port.
5087
5088 Daniel (4 July)
5089 - Rick Richardson pointed out that using setvbuf() to achieve non-buffering
5090   on output is no-good for SCO Xenix and other unixes. We switched over to
5091   using plain fflush() instead.
5092
5093 - Dan Grayson pointed out that we set the CURL_CA_BUNDLE variable wrongly in
5094   the configure script, and I had to change some build stuff to make the new
5095   way work.
5096
5097 - Peter Sylvester's patch was applied that introduces the following:
5098
5099    CURLOPT_SSL_CTX_FUNCTION to set a callback that gets called with the
5100    OpenSSL's ssl_ctx pointer passed in and allow a callback to act on it. If
5101    anything but CURLE_OK is returned, that will also be returned by libcurl
5102    all the way back. If this function changes the CURLOPT_URL, libcurl will
5103    detect this and instead go use the new URL.
5104
5105    CURLOPT_SSL_CTX_DATA is a pointer you set to get passed to the callback set
5106    with CURLOPT_SSL_CTX_FUNCTION.
5107
5108 Daniel (1 July)
5109 - David Byron provided a patch that allows a client to quit the test suite's
5110   HTTP server.
5111
5112 - Gisle Vanem found and patched a lib handle leak in the ldap code.
5113
5114 Daniel (25 June)
5115 - More NTLM-improvements. Less code. Smaller packets back and forth.
5116
5117 Daniel (23 June)
5118 - Eric Glass provided us with a better doc on NTLM details, and I added more
5119   comments and clarified the current code more. Using the new knowledge, we
5120   should be able to make the NTLM stuff work even better.
5121   Eric's original URL: http://davenport.sourceforge.net/ntlm.html
5122   Version stored and provided at curl site: http://curl.haxx.se/rfc/ntlm.html
5123
5124 - Fixed the minor compile problems pre3 had if built without GSSAPI and/or
5125   SSL.
5126
5127 Version 7.10.6-pre3 (19 June 2003)
5128
5129 Daniel (19 June)
5130 - Made curl use curl_free() on memory returned by curl_getenv(), as this
5131   should theoreticly make it possibly to build and run curl and libcurl with
5132   different memory allocation schemes with no problems.
5133
5134 Daniel (18 June)
5135 - Improved the mkhelp.pl a bit further to make a nicer hugehelp text and to
5136   include a better comment in the top for the gzip compressed version.
5137
5138 Daniel (17 June)
5139 - CURLOPT_HTTPAUTH is now a bitmask, in which you set which authentication
5140   type(s) you want to use. If more than one is set, libcurl will use one of
5141   the selected one and the one it considers is more secure. Test case 67 and
5142   68 (for NTLM) were fixed and we've reduced a round-trip for specific --ntlm
5143   fetches, and test case 69 and 70 were added for testing authentication
5144   "picking". --anyauth is the new command line tool option, and I also added
5145   --basic for completeness (that's the default type).
5146
5147 - Fixed the runtests.pl script to use the info provided by the new curl -V
5148   output.
5149
5150 - --enable-debug now sets the CURLDEBUG define instead of MALLOCDEBUG, as it
5151   is meant to be a generic debug conditional.
5152
5153 - curl_version_info() can now return CURL_VERSION_DEBUG as a feature bit, to
5154   indicate that the library was built with CURLDEBUG set.
5155
5156 - Ralph Mitchell found out that some web applications very badly uses white
5157   spaces in Location: redirects, and apparently IE is a browser (the only
5158   one?) that supports this abomination. Based on Ralph's patch, I added code
5159   that now attempts to replace white spaces with the proper "%20" or "+".
5160   Test case 40 and 42 were added to verify my changes.
5161
5162 - curl -V now also outputs a list of features the available library offers (if
5163   any).
5164
5165 - The curl_version() string now includes "GSS" if libcurl is built with GSSAPI
5166   support.
5167
5168 - David Orrell reported that libcurl still crashed when sending HUGE requests
5169   over HTTPS... I fixed.
5170
5171 Version 7.10.6-pre2 (16 June 2003)
5172
5173 Daniel (16 June)
5174 - curl_version_info() now returns bitmasked information weather NTLM and
5175   GSSNEGOTIATE are supported, since it is doomed to vary on different
5176   installations.
5177
5178 - I remade the HTTP Digest code to use the MD5-code provided by OpenSSL if
5179   that is present, and only use our own MD5-code if it isn't.
5180   
5181 Daniel (13 June)
5182 - More NTLM help, fixes and patches from Cris Bailiff.
5183
5184 - Marty Kuhrt brought include fixes for making VMS builds warning-free.
5185
5186 Daniel (12 June)
5187 - NTLM authentication works somewhat against the test servers provided by
5188   Mathias Axelsson and Cris Bailiff. Use by setting CURLOPT_HTTPAUTH to
5189   CURLAUTH_NTLM to libcurl, or --ntlm for the curl tool. Test case 67 and 68
5190   were added for this. NTLM-support requires OpenSSL.
5191
5192 - Dan Fandrich provided a patch, that granted that gzip and libz are available
5193   at build-time, compresses the hugehelp text in the curl command line and
5194   uncompresses it at request. Saves some ~60K in the final output executable.
5195
5196 Daniel (11 June)
5197 - Long day of fighting the NTLM demons.
5198
5199 Daniel (10 June)
5200 - Modified how to set auth type to libcurl. Now use CURLOPT_HTTPAUTH instead,
5201   and pick method. Supported ones currently are:
5202   CURLAUTH_BASIC     - default selection
5203   CURLAUTH_DIGEST    - formerly CURLOPT_HTTPDIGEST
5204   CURLAUTH_GSSNEGOTIATE
5205
5206 - Daniel Kouril added HTTP GSS-Negotiate authentication support, as defined in
5207   the IETF draft draft-brezak-spnego-http-04.txt. In use already by various
5208   Microsoft web applications. --negotiate is the new family member. To take
5209   advantage of this, you need one of these packages:
5210
5211   o Heimdal Kerberos5               http://www.pdc.kth.se/heimdal/heimdal.html
5212   o GSSAPI from Globus                   http://www.globus.org/
5213   o GSSAPI libraries from MIT Kerberos5  http://web.mit.edu/kerberos/www/
5214
5215 - A missing ending bracket (']') while doing URL globbing could lead to a
5216   segfault. While fixing this, I also introduced better error reporting in the
5217   globbing code. (All this is application code outside libcurl.)
5218
5219 Daniel (6 June)
5220 - David Orrell found out that sending a huge GET request over HTTPS could
5221   make libcurl fail and return an error code.
5222
5223 Daniel (2 June)
5224 - Richard Bramante found out that "Content-Length: 0" was not properly used by
5225   libcurl if the response-headers indicated that the connection would be
5226   closed.
5227
5228 - David Byron's patch was applied, that makes the --progress-bar take the
5229   local size into account when doing resumed downloads.
5230
5231 - Feedback from Serge Semashko made me change the error message returned when
5232   CURLE_HTTP_RETURNED_ERROR is returned.
5233
5234 - Anonymous in bug report #745122 pointed out that we should really be using
5235   SSL_CTX_set_options(... SSL_OP_ALL) to work around flaws in existing SSL
5236   implementations.
5237
5238 Daniel (27 May)
5239 - Andreas Ley and Rich Gray helped me point out that no version of HP-UX has
5240   the sys/select.h header file so including it unconditionally in curl/multi.h
5241   is not a good thing. Now we check for HPUX and avoid using that header on
5242   such systems.
5243
5244 - Rudy Koento experienced problems with curl's recent habit of POSTing data in
5245   two separate send() calls, first the headers and then the data. I've now
5246   made a fix that for static and known content that is less than 100K in size,
5247   everything is now sent in one single system call again. This is also better
5248   for network performance reasons.
5249
5250 - I modified the main makefile to not build the test suite and a few other
5251   unnecessary things by default. Now, the test suite is built when 'make test'
5252   is run.  This reduces build time for those who don't care for the test
5253   suite, and it also reduces confusion for people using platforms where the
5254   test suite build fails!
5255
5256 Daniel (26 May)
5257 - Chris Lewis pointed out a flaw in the #ifdefs in curl/multi.h for Windows,
5258   which is now corrected.
5259
5260 - Jis Joy found another flaw in the SOCK5 code, as libcurl treated the socks5
5261   proxy a little too much like as if it was a http proxy.
5262
5263 Daniel (23 May)
5264 - Ricardo Cadime found a socket leak when listing directories without
5265   contents. Test cases 144 and 145 were added to verify the fix.
5266
5267 - Rudy Koento found yet another problem when a HTTP server returns only a
5268   single-line of contents without any headers at all. libcurl then failed to
5269   count the data, thus returning error 52 "no contents". Test case 66 was
5270   added to verify that we now do right.
5271
5272 Version 7.10.6-pre1 (23 May 2003)
5273
5274 Daniel (23 May)
5275 - Jis in bug report #741841, fixed a bug in the SOCKS5 proxy-using code.
5276
5277 Daniel (22 May)
5278 - David Remahl set up a test-server for me providing Digest authentication,
5279   and I wrote the first working code that support it. The test suite was
5280   modified slightly as well to work better for it and --digest was added to
5281   the command line options (and CURLOPT_HTTPDIGEST to the library)...  RFC2617
5282   has all the gory details.
5283
5284 Daniel (21 May)
5285 - David Balazic pointed out that curl_unescape() didn't check that %-codes
5286   were correctly followed by two hexadecimal digits when it unescape strings.
5287   Now, we do the check and only %XX codes are unescaped if the X letters are
5288   hexadecimals.
5289
5290 - Gisle Vanem made curl build with djgpp on DOS.
5291
5292 - Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is
5293   shown with curl -M.
5294
5295 Daniel (20 May)
5296 - Gisle Vanem provided a fix that makes libcurl more conservative, not
5297   expecting h_aliases of the hostent struct to always be non-NULL.
5298
5299 Daniel (19 May)
5300 - As requested by Martin Michlmayr in Debian bug report #193630, libcurl now
5301   supports user name and password in the proxy environment variables. Added
5302   test case 63 to verify this.
5303
5304 Version 7.10.5 (19 May 2003)
5305
5306 Daniel (15 May)
5307 - Changed the order for the in_addr_t testing, as 'unsigned long' seems to be
5308   a very common type inet_addr() returns.
5309
5310 Daniel (14 May)
5311 - George Comninos provided a fix that calls the progress meter when waiting
5312   for FTP command responses take >1 second. It'll make applications more
5313   "responsive" even when dealing with very slow ftp servers.
5314
5315 Daniel (12 May)
5316 - George Comninos pointed out that libcurl uploads had two quirks:
5317    o when using FTP PORT command, it used blocking sockets!
5318    o it could loop a long time without doing progress meter updates
5319   Both items are fixed now.
5320
5321 Daniel (9 May)
5322 - Dan Fandrich changed CURLOPT_ENCODING to select all supported encodings if
5323   set to "".  This frees the application from having to know which encodings
5324   the library supports.
5325
5326 - Dan Fandrich pointed out we had three unnecessary files in CVS that is
5327   generated with libtoolize, so they're now removed and libtoolize is invoked
5328   accordingly in the buildconf script.
5329
5330 - Avery Fay found out that the CURLOPT_INTERFACE way of first checking if the
5331   given name is a network interface gave a real performance penalty on Linux,
5332   so now we more appropriately first check if it is an IP number and if so
5333   we don't check for a network interface with that name.
5334
5335 - CURLOPT_FTP_USE_EPRT added. Set this to FALSE to disable libcurl's attempts
5336   to use EPRT and LPRT before the traditional PORT command. The command line
5337   tool sets this option with '--disable-eprt'.
5338
5339 Version 7.10.5-pre2 (6 May 2003)
5340
5341 Daniel (6 May)
5342 - Kevin Delafield reported another case where we didn't correctly check for
5343   EAGAIN but only EWOULDBLOCK, which caused badness on HPUX.
5344
5345 Daniel (4 May)
5346 - Ben Greear noticed that the check for 'writable argv' exited the configure
5347   script when run for cross-compiling, which wasn't nice. Now it'll default to
5348   no and output a warning about the fact that it was not checked for.
5349
5350 Daniel (2 May)
5351 - Added test case 62 and fixed some more on the cookie sending with a custom
5352   Host: header set.
5353
5354 Daniel (1 May)
5355 - Andy Cedilnik fixed a few compiler warnings.
5356
5357 - Made the "SSL read error: 5" error message more verbose, by adding code that
5358   queries the OpenSSL library to fill in the error buffer.
5359
5360 Daniel (30 Apr)
5361 - Added sys/select.h include in the curl/multi.h file, after having been
5362   reminded about this by Rich Gray.
5363
5364 - I made each test set its own server requirements, thus abandoning the
5365   previous system where the test number implied what server(s) to use for a
5366   specific test.
5367
5368 - David Balazic made curl more RFC1738-compliant for FTP URLs, by fixing so
5369   that libcurl now uses one CWD command for each path part. A bunch of test
5370   cases were fixed to work accordingly.
5371
5372 - Cookie fixes:
5373
5374   A. Save domains in jars like Mozilla does. It means all domains set in
5375      Set-Cookie: headers are dot-prefixed.
5376   B. Save and use the 'tailmatch' field in the Mozilla/Netscape cookie jars
5377      (the second column).
5378   C. Reject cookies using illegal domains in the Set-Cookie: line. Concerns
5379      both domains with too few dots or domains that are outside the currently
5380      operating server host's domain.
5381   D. Set the path part by default to the one used in the request, if none was
5382      set in the Set-Cookie line.
5383
5384   To make item C really good, I also made libcurl notice custom Host: headers
5385   and extract the host name set in there and use that as the host name for the
5386   site we're getting the cookies from. This allows user to specify a site's
5387   IP-address, but still be able to receive and send its cookies properly if
5388   you provide a valid Host: name for the site.
5389
5390 Daniel (29 Apr)
5391 - Peter Kovacs provided a patch that makes the CURLINFO_CONNECT_TIME work fine
5392   when using the multi interface (too).
5393
5394 Version 7.10.5-pre1 (23 Apr 2003)
5395
5396 Daniel (23 Apr)
5397 - Upgraded to libtool 1.5.
5398
5399 Daniel (22 Apr)
5400 - Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly)
5401   return CURLE_OK no matter what happens.
5402
5403 - Dan Fandrich fixed some gzip decompression bugs and flaws.
5404
5405 Daniel (16 Apr)
5406 - Fixed minor typo in man page, reported in the Debian bug tracker.
5407
5408 Daniel (15 Apr)
5409 - Fixed some FTP tests in the test suite that failed on my Solaris host, due
5410   to the config.h not being included before the system headers. When done that
5411   way, it did get a mixed sense of if big files are supported or not and then
5412   stat() and fstat() (as used in test case 505) got confused and failed to
5413   return a proper file size.
5414
5415 - Formposting a file using a .html suffix is now properly set to Content-Type:    text/html.
5416
5417 Daniel (14 Apr)
5418 - Fixed the SSL error handling to return proper SSL error messages again, they
5419   broke in 7.10.4. I also attempt to track down CA cert problems and then
5420   return the CURLE_SSL_CACERT error code.
5421
5422 - The curl tool now intercepts the CURLE_SSL_CACERT error code and displays
5423   a fairly big and explanatory error message. Kevin Roth helped me out with
5424   the wording.
5425
5426 Daniel (11 Apr)
5427 - Nic Hines provided a second patch for gzip decompression, and fixed a bug
5428   when deflate or gzip contents were downloaded using chunked encoding.
5429
5430 - Dan Fandrich made libcurl support automatic decompression of gzip contents
5431   (as an addition to the previous deflate support).
5432
5433 - I made the CWD command during FTP session consider all 2xy codes to be OK
5434   responses.
5435
5436 Daniel (10 Apr)
5437 - Vlad Krupin fixed a URL parsing issue. URLs that were not using a slash
5438   after the host name, but still had "?" and parameters appended, as in
5439   "http://hostname.com?foobar=moo", were not properly parsed by libcurl.
5440
5441 Daniel (9 Apr)
5442 - Made CURLOPT_TIMECONDITION work for FTP transfers, using the same syntax as
5443   for HTTP. This then made -z work for ftp transfers too. Added test case 139
5444   and 140 for verifying this.
5445
5446 - Getting the file date of an ftp file used the wrong time zone when
5447   displayed. It is supposedly always GMT. Added test case 141 for this.
5448
5449 - Made the test suite's FTP server support MDTM.
5450
5451 - The default DEBUGFUNCTION, as enabled with CURLOPT_VERBOSE now outputs
5452   CURLINFO_HEADER_IN data as well. The most notable effect from this is that
5453   using curl -v, you get to see the incoming "headers" as well. This is
5454   perhaps most useful when doing ftp.
5455
5456 Daniel (8 Apr)
5457 - James Bursa fixed a flaw in the Content-Type extraction code, which missed
5458   the first letter if no space followed the colon.
5459
5460 - Magnus Nilsson pointed out that share.c was missing in the MSVC project
5461   file.
5462
5463 Daniel (6 Apr)
5464 - Ryan Weaver provided a patch that makes the CA cert bundle not get installed
5465   anymore when 'configure --without-ssl' has been used.
5466
5467 Daniel (4 Apr)
5468 - Martijn Broenland found another cases where a server application didn't
5469   like the boundary string used by curl when doing a multi-part/formpost. We
5470   modified the boundary string to look like the one IE uses, as this is
5471   probably gonna make curl work with more applications.
5472
5473 Daniel (3 Apr)
5474 - Kevin Roth reported that a bunch of tests fails on cygwin. One set fails
5475   when using perl 5.8 (and they run fine with perl 5.6), and another set
5476   failed because of an artifact in the test suite's FTP server that I
5477   corrected. It turned out the FTP server code was still having a file opened
5478   while the main test script removed it and invoked the HTTP server that
5479   attempted to create the same file name of the file the FTP server kept open.
5480   This operation works fine on unix, but not on cygwin.
5481
5482 Version 7.10.4 (2 Apr 2003)
5483
5484 Daniel (1 Apr)
5485 - Added test case 505 to exercise FTP upload with rename done with libcurl,
5486   and for that I had to extend the test suite's FTP server to deal with the
5487   RNFR and RNTO commands.
5488
5489 Daniel (31 Mar)
5490 - Even more SSL config check modifications after Richard's testing.
5491
5492 Version 7.10.4-pre6 (31 Mar 2003)
5493
5494 Daniel (31 Mar)
5495 - More fixes for the SSL session ID cache checks when SSL configs are changed
5496   between connections. Based on tests and talks with Richard Bramante.
5497
5498 - Guillaume Cottenceau provided a patch that added CURLOPT_UNRESTRICTED_AUTH.
5499   When enabled, it will prevent libcurl from limiting to which host it sends
5500   user+password to when following locations. By default, libcurl only sends
5501   name and password to the original host used in the first URL, but with this
5502   option set it will send the auth info to all hosts it follows location
5503   headers to. The new tool command line option for this is named
5504   "--location-trusted".
5505
5506 - Frankie Fong reported a problem with libcurl if you re-used an easy handle
5507   with a proxy, and you first made a https:// connection to a host and then
5508   switched to a http:// one to the same host. libcurl would then wrongly re-use
5509   the same connection for it and fail to get the second URL properly
5510
5511 Daniel (29 Mar)
5512 - Dan Shearer's fix that makes curl complain if invoked with nothing but "curl
5513   -O" was applied.
5514
5515 Daniel (26 Mar)
5516 - Bryan Kemp was friendly enough to lend me an account on his Redhat 9 box and
5517   I could fix the configure problems on redhat 8.1 and 9 in no time thanks to
5518   this. Thanks a bunch Bryan!
5519
5520 Daniel (25 Mar)
5521 - Renamed configure.in to configure.ac
5522
5523 Version 7.10.4-pre5 (25 Mar 2003)
5524
5525 Daniel (25 Mar)
5526 - Richard Bramante provided a fix for a handle re-use problem seen when you
5527   change options on an SSL-enabled connection between requests. Previously,
5528   changing peer verification or host verification and similar things was not
5529   taken into account when a connection were checked for re-use and thus
5530   enabling stricter check between requests on a re-used connection made no
5531   difference and the connection would thus be used erroneously.
5532
5533 Daniel (24 Mar)
5534 - Götz Babin-Ebell pointed out that the ca-bundle.crt file contained a
5535   certificate from Trustcenter that was a demo certificate only that was never
5536   intended to be part of a CA bundle.
5537
5538 Daniel (21 Mar)
5539 - Life is a mystery. Within a time period of 17 hours, Tim Pope and Michael
5540   Churchill filed one bug report each, both identifying problems with a second
5541   transfer when doing persistent transfers re-using a connection. Tim's one is
5542   #706624, labeled "Multiple uploads per handle fail" and Michael's #707003
5543   "Does not send Authorization: header when reusing connection". I could track
5544   both down to the same piece of logic and it turned out libcurl was not using
5545   new settings properly when re-using an existing connection. This concerned
5546   both uploading and downloading and involved exactly those pieces these two
5547   reports identified. This code has been this faulty since the day I
5548   introduced persistent connection support in libcurl, more than 2 years ago.
5549
5550 Daniel (20 Mar 2003)
5551 - Five year anniversary. Today five years ago, the first ever curl release saw
5552   the light of day.
5553
5554 Daniel (17 Mar)
5555 - Andy Cedilnik corrected flaws in some libcurl example-usage sources.
5556
5557 Daniel (16 Mar)
5558 - Juan F. Codagnone reported that the fix from March 2nd was incomplete.
5559
5560 - Added code to the configure.in to check for select() argument types. I've
5561   not made any code use the results just yet though.
5562
5563 Daniel (15 Mar)
5564 - Gisle Vanem provided two patches to build better on Windows.
5565
5566 - Adjusted the test suite code to better make sure that the server(s) required
5567   for a specific test is properly started before the test case is attempted.
5568   Many tests now run a lot faster than before.
5569
5570 Daniel (14 Mar)
5571 - Another configure.in adjustment made the configure detect functions properly
5572   on HPUX now.
5573
5574 Daniel (13 Mar)
5575 - Philippe Raoult fixed pre4-compile quirks for FreeBSD.
5576
5577 Version 7.10.4-pre4 (13 Mar 2003)
5578
5579 Daniel (13 Mar)
5580 - Added a backup-check for functions that aren't found by AC_CHECK_FUNCS()
5581   as I believe some checks on HPUX need this. At least some of the info given
5582   to us by Rick Jones seemed to indicate this.
5583
5584 Daniel (12 Mar)
5585 - Thomas Tonino found out that if you used the curl tool to do PUT operations
5586   as in 'curl www.foo.com/dir/ -T file' and the file name included for example
5587   space or other characters that don't belong in URLs, curl did not properly
5588   URL encode them before using them in the URL.
5589
5590 - Added an option to configure called --enable-libgcc that simply adds -lgcc
5591   to the LIBS variable, as this seems to be a common problem.
5592
5593 - I modified the configure.in file, so that the headers are now checked in an
5594   order of "viality". We must also make sure to use the "default headers"
5595   parameter to AC_CHECK_HEADERS() so that headers are checked with the proper
5596   prerequisites included (i.e all the major and generally important header
5597   files are included there by default). This might be what we need for various
5598   Sun, HP, AIX and Tru64 systems to behave good again on the header check
5599   front.
5600
5601 - Rick Jones pointed out a few compiler warnings on HP-UX that I addressed.
5602
5603 - I made the configure --help output nicer by using AC_HELP_STRING() a lot
5604   more.
5605
5606 Daniel (11 Mar)
5607 - Christophe Demory fixed the socket sending code to work better on HP-UX
5608   when sending data to a socket that would block. It then returns EAGAIN, not
5609   EWOULDBLOCK.
5610
5611 - Richard Gorton improved the seeding function for systems without a good
5612   and reliable random source.
5613
5614 - Richard Gorton fixed a few warnings that popped up when you built curl
5615   using the Sun compiler on a 64bit SPARC platform.
5616
5617 - Martin C. Martin fixed a case where a connect failure using the multi
5618   interface didn't produce a human readable error string.
5619
5620 Daniel (10 Mar)
5621 - Reverted ltmain.sh back to libtool 1.4.2 status again, as the 1.4.3 version
5622   broke the build on numerous platforms. It seems that libtool 1.4.3 puts some
5623   requirements on what versions of the other tools (autoconf + automake) that
5624   I am not familiar with and thus I couldn't fulfill at this point.
5625
5626   Yes, this is more than mildly frustrating.
5627
5628 Daniel (7 Mar)
5629 - Run libtoolize version 1.4.3.
5630
5631 Version 7.10.4-pre3 (4 Mar 2003)
5632
5633 Daniel (3 Mar)
5634 - Added share.obj to the VC6 and Borland libcurl makefiles.
5635
5636 - Troels Walsted Hansen found and investigated a problem with libcurl on AIX,
5637   presumably only on 4.3 or later. gethostbyname_r() is not returning data
5638   that is possible to "keep" and cache the way libcurl does. But instead these
5639   versions of AIX uses a gethostbyname() that works thread-safely we can
5640   instead use the ordinary gethostbyname() and our pack_hostent() approach to
5641   achieve what we want. The configure script now attempts to detect AIX 4.3 or
5642   later to adjust for this.
5643
5644 Daniel (2 Mar)
5645 - Juan F. Codagnone found a problem introduced in 7.10.3 when you first did a
5646   POST and then back to a GET using the same easy handle.
5647
5648 Daniel (28 Feb)
5649 - Removed the strequal and strnequal defines from curl/curl.h header. They
5650   were never meant for the public header anyway. Philippe Raoult brought it
5651   up.
5652
5653 - James Bursa fixed the RISC OS build.
5654
5655 Daniel (27 Feb)
5656 - Avery Fay pointed out the very misleading curl_multi_info_read man page, and
5657   I updated it to become more accurate.
5658
5659 - Salvatore Sorrentino found a problem with FTP downloading that turned out to
5660   be his FTP server returning size zero (0 bytes) when SIZE was used on a file
5661   while being in BINARY mode. We now make a second check for the actual size
5662   by scanning the RETR reply anyway, even if the SIZE command returned 0.
5663
5664 Daniel (26 Feb)
5665 - Kyle Sallee reported a case where he would do a transfer that didn't update
5666   the progress meter properly. It turned out to be a case where libcurl would
5667   loop a little too eagerly in the transfer loop, which isn't really good for
5668   the APIs, especially not the multi API.
5669
5670 Version 7.10.4-pre2 (24 Feb 2003)
5671
5672 Daniel (24 Feb)
5673 - Kjetil Jacobsen found out that setting CURLOPT_MAXCONNECTS to a value higher
5674   than 5 could cause a segfault.
5675
5676 - I believe I fixed the 'Expect: 100-continue' behavior that has been broken
5677   for a while (I think since my change dated Dec 10 2002). When this header is
5678   used, libcurl should wait for a HTTP 100 (or timeout) before sending the
5679   post/put data.
5680
5681 Daniel (14 Feb)
5682 - Matthew Clarke provided some info what to modify to make curl build
5683   flawlessly on AIX 3.2.5.
5684
5685 - Martin C. Martin found and fixed a problem in the multi interface when
5686   running on Windows and trying to connect to a port without a listener.
5687
5688 Daniel (13 Feb)
5689 - Christopher R. Palmer fixed Curl_base64_encode() to deal with zeroes in the
5690   data to encode.
5691
5692 Daniel (4 Feb)
5693 - Jean-Philippe added the first code that enables the 'share' system. This
5694   should now enable sharing of DNS data between two curl easy handles.
5695
5696 - Incorporated Nico Baggus' fixes to again compile flawlessly on VMS.
5697
5698 - James Bursa corrected a bad comment in the public include file curl/multi.h
5699
5700 - Peter Forret reported one of those error:00000000 cases in libcurl again
5701   when connecting to a HTTPS site, and this time I did discover some oddities
5702   in how curl reports SSL errors back. It could miss showing the actual error.
5703
5704 Version 7.10.4-pre1 (3 Feb 2003)
5705
5706 Daniel (3 Feb)
5707 - Removed things in the docs saying capath doesn't work on Windows, as Julian
5708   Noble told us it works fine.
5709
5710 Daniel (31 Jan)
5711 - Kevin Roth fixed the zlib build stuff in the Mingw32 makefile.
5712
5713 Daniel (30 Jan)
5714 - Kevin Roth found out that curl on Windows always checked for the CA cert
5715   bundle using the environment variable and the path scan, even though
5716   -k/--insecure was used.
5717
5718 - Hamish Mackenzie pointed out that curl only did strict host name verifying
5719   if capath or cainfo was used. Now it'll always do it unless -k / --insecure
5720   is used!
5721
5722 - Pavel Cenek pointed out that the Content-Type extraction was done wrongly
5723   as the full string was not fetched. Added test case 57 to verify that curl
5724   does it right now.
5725
5726 Daniel (29 Jan)
5727 - Jamie Wilkinson provided a patch that now makes curl attempt to clear out
5728   "sensitive" command line arguments so that they don't appear in ps outputs
5729   (only on platforms that allow writing to argv[]).
5730
5731 - John McGowan found out that the DEBUGFUNCTION could be called with bad
5732   arguments and thus cause the --trace outputs to go wrong.
5733
5734 - Removed all the emacs local variables from all files. Mats Lidell provided
5735   the new sample.emacs file (for a sample of what to include in your .emacs)
5736   and the curl-style.el that sets a better c-style for editing curl sources.
5737
5738 - Dave Halbakken found a problem with FTP downloads that could accidently
5739   return CURLE_PARTIAL_FILE when curl_easy_perform() was called with NOBODY
5740   set TRUE.
5741
5742 Daniel (27 Jan)
5743 - The fopen.c example was flawed as Nick Humfrey noticed, and I fixed it to
5744   work again.
5745
5746 Daniel (24 Jan)
5747 - Bertrand Demiddelaer found and fixed a memory leak (the content-type string)
5748   when following locations.
5749
5750 Daniel (22 Jan 2003)
5751 - Ian Wilkes and Legoff Vincent both independently provided fixes for making
5752   curl/multi.h work properly when compiled with a C++ compiler.
5753
5754 Daniel (20 Jan 2003)
5755 - Fixed 'buildconf' to check version number of the required tools before
5756   they're actually used.
5757
5758 - Wrote 'testcurl.sh', a script targeted for automatic and distributed curl
5759   tests on various platforms.
5760
5761 - David Thiel pointed out that the .netrc file was not being dealt with
5762   properly anymore. I broke this in the password prompting "fix".
5763
5764 - Markus F.X.J. Oberhumer patched libcurl to allocate the scratch buffer only
5765   on demand and thus we save 32KB in each curl handle that don't use that
5766   buffer. This need appeared when some people started using thousands of
5767   simultaneous curl handles... :-)
5768
5769 Daniel (16 Jan 2003)
5770 - Markus Oberhumer fixed curl-config --cflags when the includedir was not
5771   /usr/include.
5772
5773 - Markus Oberhumer fixed CURLINFO_PRIVATE to properly return NULL if it was
5774   set to NULL!
5775
5776 Version 7.10.3 (14 Jan 2003)
5777
5778 Daniel (10 Jan 2003)
5779 - Steve Oliphant pointed out that test case 105 did not work anymore and this
5780   was due to a missing fix for the password prompting.
5781
5782 Version 7.10.3-pre6 (10 Jan 2003)
5783
5784 Daniel (9 Jan 2003)
5785 - Bryan Kemp pointed out that curl -u could not provide a blank password
5786   without prompting the user. It can now. -u username: makes the password
5787   empty, while -u username makes curl prompt the user for a password.
5788
5789 - Kjetil Jacobsen found a remaining connect problem in the multi interface on
5790   ipv4 systems (Linux only?), that I fixed and Kjetil verified that it fixed
5791   his problems.
5792
5793 - memanalyze.pl now reads a file name from the command line, and no longer
5794   takes the data on stdin as before.
5795
5796 Version 7.10.3-pre5 (9 Jan 2003)
5797
5798 Daniel (9 Jan 2003)
5799 - Fixed tests/memanalyze.pl to work with file names that contain colons (as on
5800   Windows).
5801   
5802 - Kjetil Jacobsen quickly pointed out that lib/share.h was missing...
5803
5804 Version 7.10.3-pre4 (9 Jan 2003)
5805
5806 Daniel (9 Jan 2003)
5807 - Updated lib/share.c quite a bit to match the design document at
5808   http://curl.haxx.se/dev/sharing.txt a lot more.
5809
5810   I'll try to update the document soonish. share.c is still not actually used
5811   by libcurl, but the API is slowly getting there and we can start
5812   implementing code that takes advantage of this system.
5813
5814 Daniel (8 Jan 2003)
5815 - Updated share stuff in curl/curl.h, including data types, structs and
5816   function prototypes. The corresponding files in lib/ were also modified
5817   of course to remain compilable. Based on input from Jean-Philippe and also
5818   to make it more in line with the design document.
5819
5820 - Jean-Philippe Barrette-LaPierre patched a very trivial memory leak in
5821   curl_escape() that would happen when realloc() returns NULL...
5822
5823 - Matthew Blain provided feedback to make the --create-dirs stuff build
5824   properly on Windows.
5825
5826 - Fixed the #include in tests/libtest/first.c as Legoff Vincent pointed out.
5827
5828 Daniel (7 Jan 2003)
5829 - Philippe Raoult provided a patch that now makes libcurl properly support
5830   wildcard checks for certificate names.
5831
5832 - Simon Liu added CURLOPT_HTTP200ALIASES, to let an application set other
5833   strings recognized as "HTTP 200" to allow http-like protocols to get
5834   downloaded fine by curl.
5835
5836 - Now using autoconf 2.57 and automake 1.7.2
5837
5838 - Doing "curl -I ftp://domain/non-existing-file" still outputed a date!
5839   Wayne Haigh reported.
5840
5841 - The error message is now written properly with a newline in the --trace
5842   file.
5843
5844 Daniel (6 Jan 2003)
5845 - Sterling Hughes fixed a possible bug: previously, if you called
5846   curl_easy_perform and then set the global dns cache, the global cache
5847   wouldn't be used. Pointed out by Jean-Philippe Barrette-LaPierre.
5848
5849 - Matthew Blain's fixed the VC6 libcurl makefile to include better debug data
5850   on debug builds.
5851 Daniel (27 Dec 2002)
5852 - Philippe Raoult reported a bug with HTTPS connections which I evidently
5853   added in my 19 dec fix. I corrected it.
5854
5855 Daniel (20 Dec)
5856 - Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
5857   script to make the default makefile less confusing "to the casual
5858   installer".
5859
5860 Version 7.10.3-pre3 (20 Dec)
5861
5862 Daniel (19 Dec)
5863 - Matthew Blain patched the Curl_base64_decode() function.
5864
5865 - Evan Jordan reported in bug report #653022 that the SSL_read() usage was
5866   wrong, and it certainly was. It could lead to curl using too much CPU due to
5867   a stupid loop.
5868
5869 Daniel (18 Dec)
5870 - As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
5871   CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
5872   CURLOPT_FAILONERROR is set.
5873
5874 Daniel (17 Dec)
5875 - Bug reported #651464, reported by Christopher Palmer, provided an example
5876   source code using the multi interface that hang when trying to connect to a
5877   proxy on a localhost port where no proxy was listening. This bug was not
5878   repeatable on libcurls that were IPv6-enabled.
5879
5880 Daniel (16 Dec)
5881 - Christopher Palmer also noticed what Vojtech Janota already was
5882   experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
5883   to crash when used on some older glibc versions. The problem is of course
5884   the silliness of the 2.2.93. I committed a fix that hopefully should make
5885   the binary run fine on either one of the versions, even though the solution
5886   is not as nice as I'd like it to be.
5887
5888 Daniel (13 Dec)
5889 - Bug report #651460 by Christopher R. Palmer showed that when using libcurl
5890   to for example go over a proxy on localhost, it would attempt to connect
5891   through the proxy TWICE.
5892
5893   I added test case 503 with which I managed to repeat this problem and I
5894   fixed the code to not re-attempt any connects (which also made it a nicer
5895   fix for the #650941 bug mentioned below).
5896
5897   The sws server was extended to deal with CONNECT in order to make test
5898   case 503 do good.
5899
5900 - Evan Jordan posted bug report #650989 about a memory leak in the public key
5901   retrieving code. He provided a suggested fix and I merely applied it!
5902
5903 - Bug report #650941, posted by Christopher R. Palmer identified a problem
5904   with the multi interface and getting file:// URLs. This was now fixed and
5905   test case 502 was added to verify this.
5906
5907 Daniel (12 Dec)
5908 - Test case 500 and 501 are the first ever libcurl test cases that run.
5909
5910 - Made "configure --enable-debug" cut off all -O* options to the compiler
5911
5912 - Finally fixed the test suite's ftp server so that test case 402 doesn't
5913   cause the following test case to fail anymore!
5914
5915 Daniel (11 Dec)
5916 - CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
5917   version perform uploads much faster!!! RBramante did lots of research on
5918   this topic.
5919
5920 - Fixed the #include in curl/curl.h to include the other files outside the
5921   extern "C" scope.
5922
5923 Daniel (10 Dec)
5924 - Moved around and added more logic:
5925
5926   First, POST data is never sent as part of the request headers in the http.c
5927   code. It is always sent the "normal" read callback then send() way. This now
5928   enables a plain HTTP POST to be sent chunked if we want to. This also
5929   reduces the risk of having very big POSTs causing problems.
5930
5931   Further, sending off the initial HTTP request is not done using a loop
5932   anymore. If it wasn't all sent off in the first send(), the rest of the
5933   request is sent off in the normal transfer select() loop. This makes several
5934   things possible, but mainly it makes libcurl block less when used from the
5935   multi interface and it also reduces the risk of problems with issuing very
5936   large requests.
5937
5938 Daniel (9 Dec)
5939 - Moved the read callback pointer and data within the structs to a more
5940   suitable place. This in preparation for a better HTTP-request sending code
5941   without (a silly) loop.
5942
5943 - The Dodds fix seems not to work.
5944
5945 - Vojtech Janota tests proved that the resolve fix from oct 21st is not good
5946   enough since obviously older glibcs might return EAGAIN without this meaning
5947   that the buffer was too small.
5948
5949 - [the other day] Made libcurl loop on recv() and send() now until done, and
5950   then get back to select(). Previously it went back to select() more often
5951   which really was a slight overhead. This was due to the reported performance
5952   problems on HTTP PUT on Windows. I couldn't see any notable difference on
5953   Linux...
5954
5955 Version 7.10.3-pre2 (4 Dec 2002)
5956
5957 Daniel (4 Dec 2002)
5958 - Lots of work with Malcolm Dodds made me add a temporary code fix that now
5959   shortens the timeout waiting for the 226 or 250 line after a completed
5960   FTP transfer.
5961
5962   If no data is received within 60 seconds, this is taken as a sign of a dead
5963   control connection and we bail out.
5964
5965 Daniel (3 Dec 2002)
5966 - Ralph's bug report #644841 identified a problem in which curl returned a
5967   timeout error code when in fact the problem was not a timeout. The proper
5968   error should now be propagated better when they're detected in the FTP
5969   response reading function.
5970
5971 - Updated the Borland Makefiles.
5972
5973 Daniel (2 Dec 2002)
5974 - Nicolas Berloquin provided a patch that introduced --create-dirs to the
5975   command line tool. When used in combination with -o, it lets curl create
5976   [non-existing] directories used in -o, suitably used with #-combinations
5977   such as:
5978
5979      curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
5980        -o "dir_#1/pic#2.jpg" --create-dirs
5981
5982 Version 7.10.3-pre1
5983
5984 Daniel (28 Nov 2002)
5985 - I visited Lars Nordgren and had a go with his problem, which lead me to
5986   implement this fix. If libcurl detects the added custom header
5987   "Transfer-Encoding: chunked", it will now enable a chunked transfer.
5988
5989   Also, chunked transfer didn't quite work before but seems to do so now.
5990
5991 - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
5992   didn't work on any platform...
5993
5994 Daniel (26 Nov 2002)
5995 - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
5996
5997 - Dan Becker found and fixed a minor memory leak on persistent connnections
5998   using CURLOPT_USERPWD.
5999
6000 Daniel (22 Nov 2002)
6001 - Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
6002   web server (sws) which now lets test case 306 run fine even in combination
6003   with the other test cases.
6004
6005 - Juan Ignacio Hervás found a crash in the verbose connect message that is
6006   used on persistent connections. This bug was added in 7.10.2 due to the
6007   rearranged name resolve code.
6008
6009 Daniel (20 Nov 2002)
6010 - Kjetil Jacobsen provided a patch that introduces:
6011
6012    CURLOPT_PRIVATE stores a private pointer in the curl handle.
6013
6014    CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
6015
6016 - Karol Pietrzak pointed out how curl-config --cflags didn't output a good
6017   include dir so I've removed that for now.
6018
6019 Version 7.10.2 (18 Nov 2002)
6020
6021 Daniel (11 Nov 2002)
6022 - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
6023   properly build with MSVC on Windows.
6024
6025 Daniel (8 Nov 2002)
6026 - Doing HTTP PUT without a specified file size now makes libcurl use
6027   Transfer-Encoding: chunked.
6028
6029 Daniel (7 Nov 2002)
6030 - Bug report #634625 identified how curl returned timeout immediately when
6031   CURLOPT_CONNECTTIMEOUT was used and provided a fix.
6032
6033 Version 7.10.2-pre4 (6 Nov 2002)
6034
6035 Daniel (5 Nov 2002)
6036 - Lehel Bernadt found out and fixed. libcurl sent error message to the debug
6037   output when it stored the error message.
6038
6039 - Avery Fay found some problems with the DNS cache (when the cache time was
6040   set to 0 we got a memory leak, but when the leak was fixed he got a crash
6041   when he used the CURLOPT_INTERFACE with that) that had me do some real
6042   restructuring so that we now have a reference counter in the dns cache
6043   entries to prevent an entry to get flushed while still actually in use.
6044
6045   I also detected that we previously didn't update the time stamp when we
6046   extracted an entry from the cache so that must've been a reason for some
6047   very weird dns cache bugs.
6048
6049 Version 7.10.2-pre3
6050
6051 Daniel (31 Oct 2002)
6052 - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
6053   turned out this didn't help though.)
6054
6055 - Disable the DNS cache (by setting the timeout to 0) made libcurl leak
6056   memory. Avery Fay brought the example code that proved this.
6057
6058 Version 7.10.2-pre2
6059
6060 Daniel (28 Oct 2002)
6061 - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
6062
6063 - Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
6064   variable (if --cacert isn't used) and if not set, the Windows version will
6065   check for a file named "curl-ca-bundle.crt" in the current directory or the
6066   directory where curl is located. That file is then used as CA root cert
6067   bundle.
6068
6069 - Avery Fay pointed out that curl's configure scrip didn't get right if you
6070   used autoconf newer than 2.52. This was due to some badly quoted code.
6071
6072 Version 7.10.2-pre1
6073
6074 Daniel (23 Oct 2002)
6075 - Emiliano Ida confirmed that we now build properly with the Borland C++
6076   compiler too. We needed yet another fix for the ISO cpp check in the curl.h
6077   header file.
6078
6079 - Yet another fix was needed to get the HTTP download without headers to work.
6080   This time it was needed if the first "believed header" was read all in the
6081   first read. Test 306 has not run properly since the 11th october fix.
6082
6083 Daniel (21 Oct 2002)
6084 - Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
6085   machines (running IPv6 disabled). Mats Lidell let me use an account on his
6086   machine and I could verify that gethostbyname_r() has been changed to return
6087   EAGAIN instead of ERANGE when the given buffer size is too small. This is
6088   glibc 2.2.93.
6089
6090 - Albert Chin helped me get the -no-undefined option corrected in
6091   lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
6092   want it present. Kevin Roth helped me try it out on cygwin.
6093   
6094 - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
6095   the ../ support got in (7.10.1).
6096
6097 Daniel (18 Oct 2002)
6098 - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
6099   the multi interface.
6100
6101 Daniel (17 Oct 2002)
6102 - Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
6103   work quite as supposed. You needed to set it *before* you use
6104   CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
6105
6106 Daniel (15 Oct 2002)
6107 - Andrés García provided corrections for erratas in four libcurl man pages.
6108
6109 Daniel (13 Oct 2002)
6110 - Starting now, we generate and include PDF versions of all the docs in the
6111   release archives.
6112
6113 Daniel (12 Oct 2002)
6114 - Trying to connect to a host on a bad port number caused the multi interface
6115   to never return failure and it appeared to keep on trying forever (it just
6116   didn't do anything).
6117
6118 Daniel (11 Oct 2002)
6119 - Downloading HTTP without headers didn't work 100%, some of the initial data
6120   got written twice. Kevin Roth reported.
6121
6122 - Kevin Roth found out the "config file" parser in the client code could
6123   segfault, like if DOS newlines were used.
6124
6125 Version 7.10.1 (11 Oct 2002)
6126
6127 Daniel (10 Oct 2002)
6128 - Jeff Lawson fixed a few problems with connection re-use that remained when
6129   you set CURLOPT_PROXY to "".
6130
6131 Daniel (9 Oct 2002)
6132 - Craig Davison found a terrible flaw and Cris Bailiff helped out in the
6133   search. Getting HTTP data from servers when the headers are split up in
6134   multiple reads, could cause junk data to get inserted among the saved
6135   headers. This only concerns HTTP(S) headers.
6136
6137 Daniel (8 Oct 2002)
6138 - Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
6139   is set internally, the error text is sent to the debug function as well.
6140
6141 - I fixed the telnet code to timeout properly as the option tells it to. On
6142   non-windows platforms.
6143
6144 Daniel (7 Oct 2002)
6145 - John Crow pointed out that libcurl-the-guide wasn't included in the release
6146   tarball!
6147
6148 - Kevin Roth pointed out that make install didn't do right if build outside
6149   the source tree (ca-bundle wise).
6150
6151 - FOLLOWLOCATION bugfix for the multi interface
6152
6153 Daniel (4 Oct 2002)
6154 - Kevin Roth got problems with his cygwin build with -no-undefined was not
6155   present in lib/Makefile.am so I put it back in there again. The poor one who
6156   needs to remove it again must write a configure script to detect that need.
6157
6158 - Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
6159   or ../ stuff in the string passed back in a Location: header when following
6160   locations.
6161
6162 - Albert Chin helped me to work out a better configure.in check for zlib, and
6163   both --without-zlib and -with-zlib seem to work rather well right now.
6164
6165 - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
6166   become more accurate.
6167
6168 Daniel (1 Oct 2002)
6169 - Detlef Schmier pointed out the lack of a --without-libz option to configure,
6170   so I added one.
6171
6172 Version 7.10 (1 Oct 2002)
6173
6174 Daniel (30 Sep 2002)
6175 - Modified the curl_version_info() proto and returned struct once again, and
6176   updated the man page accordingly.
6177
6178 - Cris Bailiff found out that the pre-releases crashed on name lookups on
6179   names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
6180   to some weird return codes from gethostbyname_r(). I'll blame the complete
6181   lack of docs in that department. Cris provided a fix, which I modified only
6182   slightly.
6183
6184 Daniel (27 Sep 2002)
6185 - After a suggestion from Christian Kurz to Debian curl package maintainer
6186   Domenico Andreoli, I made it possible to override the proxy environment
6187   variables better. Now, by setting -x "" you can explicitly tell libcurl to
6188   not use a proxy, no matter whan the environment variables say.
6189
6190 Version 7.10-pre4
6191
6192 Daniel (26 Sep 2002)
6193 - Extended curl_version_info() more and wrote a man page for it.
6194
6195 Daniel (25 Sep 2002)
6196 - libcurl could leak memory when downloading multiple files using http ranges,
6197   reported and fixed by Jean-Luc Guevel.
6198
6199 - Walter J. Mack provided code and docs for the new curl_free() function that
6200   shall be used to free memory that is allocated by libcurl and returned back
6201   to the application, as curl_escape() and curl_unescape() do.
6202
6203 - Yarram Sunil pointed out a flaw in the multi interface where a failed
6204   connection didn't close down properly and thus a second transfer using the
6205   same handle failed.
6206
6207 - Andrés García fixed a flaw that made (among other things) dict-fetches
6208   return a random value.
6209
6210 Daniel (24 Sep 2002)
6211 - Wez Furlong brought his initial patch that introduced curl_version_info().
6212   We might need to tweak it somewhat before release.
6213
6214 Daniel (20 Sep 2002)
6215 - Craig Markwardt fixed another Tru64 IP resolve problem.
6216
6217 Daniel (19 Sep 2002)
6218 - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
6219   in the same style other code does.
6220
6221 - Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
6222   and -C - was used. The first file's resume position was then accidentally
6223   reused on all the other files too.
6224
6225 Daniel (18 Sep 2002)
6226 - The curl_easy_setopt.3 man page was greatly modified and the options have
6227   now been grouped in logical groups so that it should be somewhat easier to
6228   read it and find things you search for.
6229
6230 Daniel (13 Sep 2002)
6231 - Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
6232   send any headers back, only raw content. Right, that is a violation of the
6233   standard but still happens at times and we need to deal with it. Test case
6234   306 was added to verify that we do right now.
6235
6236 Version 7.10-pre3
6237
6238 Daniel (11 Sep 2002)
6239 - Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
6240   when you specified the URL with an IPv6 IP-address.
6241
6242 Daniel (4 Sep 2002)
6243 - Sven Neuhaus made --silent being acknowledged even when multiple URLs
6244   were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
6245   even when told to shut up.
6246
6247 Daniel (3 Sep 2002)
6248 - Updated all source code headers to use MIT-license references only, and
6249   point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
6250   URL. I've cut out all references to MPL that I could find.
6251
6252 - Corected the makefiles to not always use -lz when linking
6253
6254 Version 7.10-pre2
6255
6256 Daniel (2 Sep 2002)
6257 - James Gallagher added Content-Encoding support to libcurl so now curl and
6258   libcurl-using apps can request compressed contents using the 'deflate'
6259   method. See the special file lib/README.encoding for details.
6260
6261   curl --compressed is now used to request compressed contents.
6262
6263   curl-config --feature will include 'libz' if this feature was around when
6264   the library was built.
6265
6266 Daniel (30 Aug 2002)
6267 - Applied an anonymous SOCKS5-proxy patch. Not properly working in all
6268   situations though, as all getaddrinfo()-using libcurls will fail on this.
6269   This is because of the somewhat naive way the current code tries to extract
6270   the IP address of the proxy.
6271
6272 - Fixed up the SSL cert fixes from the other day even more after more inputs
6273   from Cris. Added three new SSL error codes to make the
6274   CURLE_SSL_CONNECT_ERROR slightly less overloaded.
6275
6276 Daniel (27 Aug 2002)
6277 - After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
6278   decided to talk the bold path and I now made libcurl do CA certificate
6279   verification by default. Thus library users need to explicitly turn this off
6280   if you want to connect to sites without proper checking. We also install a
6281   CA cert bundle on 'make install' now.
6282
6283   The curl tool now requires the -k/--insecure option in order to allow
6284   connections and operations on SSL sites that aren't properly verified with
6285   -cafile or --capath.
6286
6287   curl-config --ca displays the built-in path to the CA cert bundle.
6288
6289 Daniel (26 Aug 2002)
6290 - Andrew Francis cleaned up some code that now compiles fine without the need
6291   for ugly MSVC pragmas.
6292
6293 - Keith MacDonald found a minor bug in src/main.c that made it close stdin
6294   instead of the actual file handle. It shouldn't have resulted in much
6295   trouble as most operating systems close all file handles on process exit
6296   anyway.
6297
6298 Daniel (22 Aug 2002)
6299 - Markus Oberhumer provided some documentation for his previously provided
6300   CURLOPT_NOSIGNAL fix.
6301
6302 - Patched the lib/Makefile.am to hopefully no longer complain on undefined
6303   symbols that seemed to occur on builds with shared OpenSSL libraries on
6304   Solaris lately...
6305
6306 Daniel (20 Aug 2002)
6307 - Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
6308   remove the pragmas from lib/config-win32.h and adjust the sources where
6309   the warnings occur. Hiding them with pragmas like this is not the correct
6310   way of dealing with compiler warnings.
6311
6312 Daniel (13 Aug 2002)
6313 - Ulrich Zadow made the global include files in curl/* include themselves
6314   using "curl.h" instead of <curl/curl.h> which thus allows people to more
6315   freely decide how to include curl and how to setup their include paths.
6316
6317 - Sterling Hughes added the curl_share* interface, somewhat as discussed
6318   previously.
6319
6320 - Jörn Hartroth pointed out that poll() was used in the pre1 source code and
6321   it isn't very portable, so now I check for it in the configure script and
6322   work around it.
6323
6324 Version 7.9.9-pre1
6325
6326 Daniel (12 Aug 2002)
6327 - Applied my initial take on making the multi stuff more asynchronous. Connects
6328   should now return back without "hanging" until it has connected for real.
6329   This should also be the case for FTP-PASV connects.
6330
6331 Daniel (9 Aug 2002)
6332 - Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
6333   which effectively prevents libcurl from doing anything that may cause
6334   signals to get sent. This is basicly for multi-threaded applications that
6335   now can use timeouts properly, without risking any signals to burst in and
6336   ruin the party.
6337   
6338 Daniel (5 Aug 2002)
6339 - Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
6340   work. When did that code vanish? Anyway, it's back again now and seems to
6341   work!
6342
6343 - Jonatan Lander found out that POSTing an empty string didn't work with the
6344   command line tool.
6345
6346 Daniel (3 Aug 2002)
6347 - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
6348   the multi interface enabled.
6349
6350 Daniel (1 Aug 2002)
6351 - The ftp PORT command now uses a better default IP address, as it will
6352   extract and use the local IP address used by the control connection.
6353
6354 - Modified the #include lines in curl/multi.h to work better on more
6355   platforms.
6356
6357 Daniel (31 Jul 2002)
6358 - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
6359   problems.
6360
6361 Daniel (30 Jul 2002)
6362 - Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
6363   and don't get __STDC__ defined, which required us to extend the preprocessor
6364   check for the ## operator usage.
6365
6366 - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
6367   internal default function will be put back.
6368
6369 - danfuzz at milk.com found out that libcurl badly assumed a space after
6370   'Set-Cookie:' so if it wasn't present, it caused the first letter of the
6371   cookie name to fall off!
6372
6373 Daniel (29 Jul 2002)
6374 - The password prompt asking for user password used stdout and now uses
6375   stderr instead to better allow redirecting. It also leaked a fopen() file
6376   handle that is now fixed.
6377
6378 Daniel (28 Jul 2002)
6379 - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
6380   by M T.
6381
6382 Daniel (26 Jun 2002)
6383 - Glen Nakamura solved a crash in the name resolving function for IP-only
6384   addresses on Alpha Linux (at least).
6385
6386 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
6387
6388 Daniel (22 Jun 2002)
6389 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
6390
6391 Daniel (19 Jun 2002)
6392 - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
6393   tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
6394   are translated by curl_unescape().
6395
6396 Daniel (15 Jun 2002)
6397 - Added --limit-rate to the curl tool. Allows the user to set a maxmimum
6398   upper limit to how much bandwidth to use for transfers.
6399
6400 - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
6401   receive buffer in libcurl. The main point of this would be that the write
6402   callback gets called more often and with smaller chunks.
6403
6404 Daniel (14 Jun 2002)
6405 - Yarram Sunil found out that the SocketIsDead() function performed a lot
6406   faster on Windows when removing the 1 microsecond timeout.
6407
6408 - Hanno L. Kranzhoff fixed the VC++ project files.
6409
6410 - Tom Mattison found out that ftp transfers closed the connection a little
6411   too often.
6412
6413 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
6414   to disable specific protocols when building for Windows.
6415
6416 Version 7.9.8
6417
6418 Daniel (13 Jun 2002)
6419 - Time to let this baby go.
6420
6421 Daniel (12 Jun 2002)
6422 - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
6423   CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH.  They are used to create a
6424   multipart that appears as a regular file upload, but the data is provided
6425   with a pointer and length.
6426   
6427 - Nico Baggus made the VMS version use sigsetjmp() too.
6428
6429 - Jörn Hartroth fixed the mingw32 build using the mm lib.
6430
6431 - Applied patches by Kris Kennaway that correct format string problems in
6432   lib/ftp.c and lib/ldap.c.
6433
6434 Version 7.9.8-pre3
6435
6436 Daniel (11 Jun 2002)
6437 - James Cone brought the idea of using sigsetjmp() in the signal handler to
6438   make the time-out of name lookups to work, even when the underlying name
6439   resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
6440   this may be a bit drastic, and also not likely to exist on all platforms.  I
6441   added careful checking for this in the configure script, even checks for it
6442   being a macro (which seems to be the case in for example Linux).
6443
6444   sigsetjmp() seems to be mentioned in the Single Unix specification.
6445
6446 - Miklos Nemeth brought a patch that allows libcurl to get built with specific
6447   protocols disabled. This is done by running ./configure
6448   --disable-[protocol].
6449
6450 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
6451   make precautions to not return this for range downloads.
6452
6453   Added test case 135 that makes an ftp range download. Had to tweak the
6454   runtests.pl script a bit too.
6455
6456 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
6457   check to prevent this.
6458
6459 Daniel (10 Jun 2002)
6460 - Found and corrected a connect failure problem that didn't create a human
6461   error text.
6462
6463 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
6464   and comments from Götz Babin-Ebell.
6465
6466 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
6467   failed and you reinvoked curl_easy_perform().
6468
6469 Daniel (5 Jun 2002)
6470 - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
6471   matter when you decide to remove the CURL handle.
6472
6473 - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
6474   makes windows builds stop complaining about "weak seeding" when it in fact
6475   isn't.
6476
6477 - Another 64bit architecture crash that was introduced in 7.9.7 was now
6478   removed, as bug report #564585 clarified. This happened due to our attempts
6479   to only allocate only as much memory as is actually needed for name
6480   resolving (using realloc) which called for a function that could 'move' a
6481   hostent struct in memory.
6482
6483 Version 7.9.8-pre2
6484
6485 Daniel (3 Jun 2002)
6486 - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
6487   made the CURLINFO_REQUEST_SIZE return the correct total request size. He
6488   also made the win32 timers use higher resolution than before.
6489
6490 Daniel (29 May 2002)
6491 - Renaud Chaillat made me aware of the fact that libcurl returned an error if
6492   you tried to get an empty FTP file. This seemed like a wrong thing to do, so
6493   now it no longer does that! I just hope that no one built anything fancy
6494   upon this unexpected behavior...
6495
6496 Daniel (28 May 2002)
6497 - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
6498   specifies a path to a directory with certificates rather than a single file
6499   with them all concatenated. --capath was added to the command line tool
6500   for the same function.
6501
6502   Windows users need to pay attention that the directory should be setup with
6503   the c_rehash tool of the OpenSSL package, and that creates symlinks by
6504   default that need to be replaced with actual copies to work on Windows.
6505
6506 - Gustaf Hui provided new code that changes how curl_multi_info_read()
6507   messages are stored, so that they don't have to be kept around for the multi
6508   handle's entire life time. He also made it return failure codes properly
6509   which it didn't do before.
6510
6511 Daniel (27 May 2002)
6512 - Gustaf Hui pointed out that running curl_multi_perform() without doing
6513   curl_multi_fdset() first was not really a working combo. I added an internal
6514   check for this and have some extra select() code without timeout to make the
6515   library internals work identically nevertheless. We might need to somehow
6516   either document that once you've used the *_fdset() you should remain using
6517   them in select() or you should blank them somehow so that libcurl won't go
6518   crazy.
6519
6520 Version 7.9.8-pre1
6521
6522 Daniel (22 May 2002)
6523 - James Cone brought an excellent patch, including several tests and docs!
6524   CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
6525   --netrc-optional was introduced as an addition to --netrc to allow the
6526   command line client to take use of all that new netrc stuff.
6527
6528 - Bug report #558888 showed a case where libcurl re-used the previous host
6529   name when a connection over a proxy was re-used but to a different target
6530   host.
6531
6532 Daniel (21 May 2002)
6533 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
6534   trying to HTTP POST an empty string.
6535
6536 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
6537
6538 - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
6539   CURLFORMcode instead of the previous 'int', and the various return codes are
6540   now globally exported. It allows applications to better figure out what goes
6541   wrong when curl_formadd() returns errors.
6542
6543 Daniel (20 May 2002)
6544 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
6545   is prefered to SSL_CTX_use_certificate_file().
6546
6547 Daniel (17 May 2002)
6548 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
6549   after my AIX fixes the other week.
6550
6551 - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
6552   the DNS struct realloc stuff. Actually, this crash could happen on all
6553   systems that made the pack_hostent() function get invoked.
6554
6555 - I removed several compiler warnings in the test suite's HTTP server.
6556
6557 Version 7.9.7
6558
6559 Daniel (10 May 2002)
6560 - Kevin Roth adjusted the --trace-ascii output slightly.
6561
6562 - Paul Harrington found out that src/writeout.c needed an additional header
6563   file included for AIX builds
6564
6565 Version 7.9.7-pre2
6566
6567 Daniel (7 May 2002)
6568 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
6569
6570 - Made --trace-ascii do pretty much the same as --trace but without the hex
6571   part in the output.
6572
6573 - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
6574   cookies read from a file. This option is enforced by the curl command line
6575   tool using the new -j/--junk-session-cookies option. After discussions with
6576   Kevin Roth. This makes it easier to use curl to fully emulate a browser's
6577   behavior, even when it comes to "session cookies". Session cookies are
6578   cookies that a normal browser discards when the browser is shut
6579   down. They're identified by not having any expire date/time.
6580
6581 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
6582   this was discovered when --trace was made to crash.
6583
6584 - Using -v and --trace at the same time confused matters. -v is now pretty
6585   much ignored when --trace or --trace-ascii is used.
6586
6587 - Made --trace (and --trace-ascii) support - as file name to pass output to
6588   stdout instead. It makes it consistent with how other options work.
6589
6590 Version 7.9.7-pre1
6591
6592 Daniel (6 May 2002)
6593 - Added multi-post.c to the examples directory. I got the basic source for
6594   this from Gustaf Hui.
6595
6596 Daniel (3 May 2002)
6597 - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
6598   can be used to figure out the maximum buffer size your write callback can
6599   get.
6600
6601 - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
6602   an alias for CURLOPT_FILE. These two were added for conformity. Most other
6603   callback function's userdata are provided with options using a similar name-
6604   scheme.
6605
6606 - Added "--trace [file]" to the command line tool. It makes a very detailed
6607   trace dump get stored, with a full protocol dump that includes all received
6608   and transmitted data. This could be a very effective tool for debugging what
6609   goes wrong. This dump includes every byte the way it is sent to/received
6610   from the server. The dump is the plain-text version, so SSL transfers will
6611   still be readable.
6612
6613 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
6614   wanted it to. I fixed it.
6615
6616 - -D now stores all headers to the same file if multiple URLs are given on the
6617   command line! Kevin Roth made me aware of that it didn't already do this!
6618
6619 - Gustaf Hui wrote an excellent formpost example that used the multi
6620   interface.  Unfortunately, it didn't work due to several bugs in how
6621   transfers were made when the multi interface was used.
6622
6623 Daniel (2 May 2002)
6624 - Hanno Kranzhoff found out that when doing multiple transfers on the same
6625   easy handle, the progress meter would show a bad "currently downloaded
6626   value" when the transfer starts.
6627
6628 Daniel (1 May 2002)
6629 - Applied another patch by Jacky Lam to make the name resolve info realloc()
6630   stuff work properly.
6631
6632 Daniel (28 April 2002)
6633 - curl_multi_info_read() is now implemented!
6634
6635 Daniel (27 April 2002)
6636 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
6637
6638 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
6639
6640 - I cleaned up the name prefix stuff in the hash and llist modules.
6641
6642 - FTP responses should now be better on timing out properly. The timeout value
6643   is maximum timeout for the entire request operation, but before this, the
6644   timeout was used as a maximum allowed time between two reads...
6645
6646 Daniel (26 April 2002)
6647 - Fixed the test suite http server to not use snprintf() anymore due to better
6648   portability.
6649
6650 Daniel (25 April 2002)
6651 - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
6652   cause problems since the pruning is only checking the entry time, and it
6653   sure could cause problems. Therefor, I've now added and changed code so that
6654   this should not be a problem. Nowhere in the code will be store name
6655   resolved information around so that a sunsequent DNS cache prune should
6656   cause a problem. This of course called for some mild internal changes.
6657
6658 Daniel (23 April 2002)
6659 - Improved the 'no_proxy' check, as using port numbers in the URL confused it
6660   previously. Reported by Erwan Legrand in bug report #547484.
6661
6662 - The --interface option now works even on IPv6 enabled builds. Reported by
6663   'thor'.
6664
6665 Daniel (22 April 2002)
6666 - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
6667   names are still #defined too.) Pointed out by Robert Olson.
6668
6669 - Jacky Lam brought code that lets the name resolve function only use as much
6670   memory as it actually needs. This only works on certain operating systems,
6671   but is totally transparant to all users.
6672
6673 Daniel (19 April 2002)
6674 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
6675
6676 Daniel (18 April 2002)
6677 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
6678   experienced very big caches.
6679
6680 Daniel (17 April 2002)
6681 - Dirk Manske patched the 301 response to work against the RFC but more like
6682   common browsers do. If a POST get a 301 back, it'll switch to GET in the
6683   next request (if location-following is enabled).
6684
6685 Daniel (16 April 2002)
6686 - Dirk Manske posted a patch originally written by Ingo Wilken that introduced
6687   two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
6688   CURLINFO_REDIRECT_COUNT.
6689
6690 Daniel (15 April 2002)
6691 - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
6692   reflect reality better, like when the first request isn't POST and when
6693   the second isn't GET... :-)
6694
6695 - Craig Davison pointed out that when curl_formadd()ing a file that doesn't
6696   exist, libcurl doesn't return error. Now, curl_easy_perform() will return
6697   CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
6698
6699 Version 7.9.6
6700
6701 Daniel (14 April 2002)
6702 - Dirk Manske brought a fix that makes libcurl strip off white spaces from the
6703   beginning of cookie contents.
6704
6705 - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
6706   Moonesamy pointed out the problem, Bjorn Reese the solution.
6707
6708 Version 7.9.6-pre5
6709
6710 Daniel (12 April 2002)
6711 - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
6712   FTP transfers got the "connect done" time set after the initial FTP commands
6713   and not directly after the TCP/IP connect as it should.
6714
6715   I also made the time stamp get set even if the connect itself fails, which
6716   it didn't do previously.
6717
6718 - Jean-Philippe Barrette-LaPierre provided his patch that introduces
6719   CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
6720   callback to receive debug/information data. That includes headers and data
6721   that is received and sent. CURLOPT_VERBOSE still controls it.
6722
6723   By default, there is an internal debugfunction that will make things look
6724   and work as before if not changed.
6725
6726 Daniel (10 April 2002)
6727 - Sebastien Willemijns found out that -x didn't use the default port number as
6728   is documented. It does now.
6729
6730 - libcurl-errors.3 is a new man page attempting to document all libcurl error
6731   codes
6732
6733 - Added two new error codes and changed the behaviour of two old ones
6734   slightly:
6735
6736   CURLE_WRITE_ERROR
6737    This error was returned *both* for errors that occured when writing
6738    received data to a local file, as well as when we get problems writing data
6739    to a remote server. CURLE_SEND_ERROR has now been added for the latter
6740    error.
6741
6742   CURLE_READ_ERROR
6743    This error was similarly returned *both* for errors when reading a local
6744    file, as well as when getting problems when reading network data.
6745    CURLE_RECV_ERROR has now been added for the latter error.
6746
6747  (Two test cases were adjusted accordingly.)
6748
6749 Daniel (9 April 2002)
6750 - runtests.pl now sets the HOME variable before running curl, to prevent any
6751   actual ~/.curlrc file to fool the tests!
6752
6753 Version 7.9.6-pre4
6754
6755 Daniel (8 April 2002)
6756 - Michael Curtis provided new functionality for curl on some platforms. Using
6757   the --environment option, curl will *set* a bunch of environment variables
6758   to values. The names are the same ones as for the -w/--writeout option.
6759
6760   For now, this only works on the RISC OS version, as this feature relies on
6761   both OS support and that it matches OS paradigms.
6762
6763 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
6764   and 304, I edited it slightly.
6765
6766 Daniel (5 April 2002)
6767 - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
6768   when used in windows), is now loaded from the current directory if the HOME
6769   environment variable isn't set (or if it is too long). I also enlarged the
6770   array used to store the full file path in, to 512 bytes.
6771
6772 - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
6773   was stupid and the change was reverted. Added test case 48 to verify the
6774   functionality.
6775
6776 Version 7.9.6-pre3
6777
6778 Daniel (4 April 2002)
6779 - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
6780   pre-ISO compilers, like when using gcc -traditional.
6781
6782 Daniel (3 April 2002)
6783 - Jacky Lam identified a glitch when getting headers-only, where libcurl would
6784   "hang" 1 second in vain in the select() loop before returning back.
6785
6786 - Tor Arntsen brought a patch for multipart formposts. It turned out that the
6787   "CGI_Lite Perl package" makes some bad assumptions on what letters that may
6788   be used in boundary strings and thus curl could confuse it by including '+'
6789   and '/'. While this is standards-compliant, we change the behavior to work
6790   smoothly with existing software based on that package.
6791
6792 Daniel (2 April 2002)
6793 - Gerhard Herre filed bug report #536238 where he pointed out a crash in
6794   verbose FTP passive transfers for AIX.
6795
6796 - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
6797   take care of all errors that SSL_read() could return.
6798
6799 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
6800
6801 Daniel (27 March 2002)
6802 - T. Bharath pointed out a flaw in the connection re-use function that didn't
6803   check proxy connections properly for "deadness" before they were re-used.
6804
6805 - Pedro Neves found out that HTTP POSTing with --data-binary did not properly
6806   work under Windows as the file specified wasn't read fully binary!
6807
6808 Daniel (25 March 2002)
6809 - Jacky Lam brought a fix that improves treatment of cookies using identical
6810   domains but with leading dots properly.
6811
6812 Daniel (22 March 2002)
6813 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
6814   windows makefiles.
6815
6816 - Jon Dillon provided us with several good-looking curl images for
6817   promotion. View them here http://curl.haxx.se/icons.html
6818
6819 Daniel (20 March 2002)
6820 - Peter Verhas found out that CRLF replacement in uploads was not working. I
6821   fixed it, and added test case 128 that verifies the functionality.
6822
6823 - The list formerly known as curl-main is now named curl-users and is hosted
6824   by sourceforge. Susbcribe to the new list, get off the old one.
6825
6826 Version 7.9.6-pre2
6827
6828 Daniel (19 March 2002)
6829 - Made -G and -I on the same command line cause an error.
6830
6831 - Moved the multi.h file to the "public" include directory and made it get
6832   included by curl.h so that no extra include files will be necessary to use
6833   it.
6834
6835   Added docs and man pages for the multi interface to the release archive.
6836   Added the three example source codes too.
6837
6838   Necessary steps in my campaign to sneak in the multi interface... ;-)
6839
6840 - Updated the year in all copyright notices in all C and H files.
6841
6842 Daniel (18 March 2002)
6843 - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
6844   in 7.9.5... Added test case 32 for this.
6845
6846 Version 7.9.6-pre1
6847
6848 Daniel (16 March 2002)
6849 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
6850   contained factual errors.
6851
6852 - Albert Choy found and corrected a problem with the verbose output when doing
6853   PASV ftp transfers. It could make libcurl crash.
6854
6855   Details in bug report #530562:
6856   http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
6857
6858 Daniel (15 March 2002)
6859 - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
6860   the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
6861   capability! That patch is now reverted.
6862
6863   The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
6864   hosts are instead made by first checking if the stack is IPv6-enabled and if
6865   not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
6866
6867 - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
6868   as described in the man page, libcurl did not return the documented error
6869   code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
6870   now corrected.
6871
6872 Daniel (14 March 2002)
6873 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
6874   data from the callback.
6875
6876 - The GOPHER support seems to be broken. I don't think I'll even start fixing
6877   it until someone else finds out... :-)
6878
6879 Daniel (13 March 2002)
6880 - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
6881   string. If such a file would be present, curl returned the size of it! Now
6882   we prevent this.
6883
6884 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
6885   blocked and thus return -1.
6886
6887 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
6888
6889 - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
6890   CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
6891   CURLFORM_* list proprely and unrestricted until this was the case. It was
6892   also a bit peculiar to users why some options could be used in an array
6893   while others couldn't.
6894
6895 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
6896   Nico Baggus pointed them out to me.
6897
6898 Daniel (11 March 2002)
6899 - CURLFORM_FILENAME was added. This can be set when creating a file upload
6900   part, to set the 'filename' field to a custom value. If this isn't used,
6901   the actually used filename will be included instead (as libcurl always has
6902   done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
6903   too, and allows constructs such as:
6904
6905     -F 'name=@filename;filename=/dev/null'
6906
6907   and this can be combined with type= too, in a manner similar to:
6908
6909    -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
6910
6911   Test case 39 was added to verify this functionality.
6912
6913 - The struct formerly known as HttpPost is now named curl_httppost to properly
6914   use the curl name space. I added a #define for the old name to make existing
6915   programs compile even when this new include file is used.
6916
6917 Daniel (8 March 2002)
6918 - Clifford also discovered that if the client code failed early, as when doing
6919   "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
6920   on some systems.
6921
6922 - Clifford Wolf provided a patch that made --progress-bar work again.
6923
6924 - I closed bug report #527032 by making sure that we add a newline after a
6925   transfer when --progress-bar has been used. Before, without the newline, it
6926   made the subsequent text come out wrong.
6927
6928 Version 7.9.5
6929
6930 Daniel (7 March 2002)
6931 - Added docs/KNOWN_BUGS to the release archive.
6932
6933 Daniel (6 March 2002)
6934 - Kevin Roth corrected a flaw in the curl client globbing code that made it
6935   mess up backslashes. This was most notable on windows (cygwin) machines when
6936   using file://.
6937
6938 - Brad provided another fix for building outside the source-tree.
6939
6940 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
6941
6942 Daniel (5 March 2002)
6943 - I noticed that the typedef in curl.h for the progress callback prototype was
6944   wrong and thus applications that used it would not get the proper input
6945   data. It used size_t where the implementation actually uses doubles!
6946
6947   I wish I could blame someone else, but this was my fault. Again.
6948
6949 Version 7.9.5-pre6
6950
6951 Daniel (4 March 2002)
6952 - Cut off the changes done during 2001 from this changelog file and put them
6953   in a separate file (CHANGES.2001), available from CVS of course.
6954
6955 - I removed the multi directory. The example sources were moved to the
6956   docs/examples directory where they belong.
6957
6958 - Wrote 7 new man pages for the current functions in the new multi interface.
6959   They're all still pretty basic, but we can use them as a start and add more
6960   contents to them when we figure out what to write. The large amount of man
6961   pages for libcurl now present made me decide to put them in a new separate
6962   subdirectory in the docs directory. Named libcurl.
6963
6964 - Giuseppe Corbelli provided a template file for the EPM package manager, it
6965   gets generated nicely by the configure script now.
6966
6967 Version 7.9.5-pre5
6968
6969 Daniel (1 March 2002)
6970 - Moved the memanalyze.pl script into the tests/ dir and added it to the
6971   release archives. It was previously only present in the CVS tree.
6972
6973 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
6974   it caused crashes!
6975
6976 - Nico Baggus added more error codes to the VMS stuff.
6977
6978 - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
6979   option. It is just another FTP quote option that allows the user to specify
6980   a list of FTP commands to issue *just before* the transfer command (RETR or
6981   STOR etc). It has turned up a few systems that really need this.
6982
6983   The curl command line tool can also take advantage of this by prefixing the
6984   quote commands with a plus (+) in similar style that post transfer quote
6985   commands are specified.
6986
6987   This is not yet documented. There is no test case for this yet.
6988
6989 Daniel (28 February 2002)
6990 - Ralph Mitchell made some serious efforts and put a lot of sweat in setting
6991   up scripts and things for me to be able to repeat his problems, and I
6992   finally could.  I found a problem with the header byte counter that wasn't
6993   increased properly and thus we could return CURLE_GOT_NOTHING when we in
6994   fact had received data.
6995
6996 Daniel (27 February 2002)
6997 - I had to revert the non-space parsing cookie fix I posted to the mailing
6998   list. Expire dates do have spaces and still need to get parsed properly!
6999   Instead we just ignore trailing white space and it seems to work...
7000
7001 Daniel (26 February 2002)
7002 - Made the cookie property 'Max-Age' work, just since we already tried to
7003   support it, it is better to do it right. No one uses this anyway.
7004
7005 - The cookie parser could crash if a really weird (illegal) cookie line was
7006   received. I also made it better discard really oddly formatted lines better.
7007
7008   Made the cookie jar store the second field from the left using the syntax
7009   that Netscape and Mozilla probably like. Curl itself ignores it.
7010
7011   Added test case 31 for these cases.
7012
7013   Clay Loveless' email regarding some cookie issues started my cleanup.
7014
7015 - Kevin Roth pointed out that my automake fiddles broke the ability to build
7016   outside the source-tree and I posted a patch to the mailing list that brings
7017   this ability back.
7018
7019 Version 7.9.5-pre4
7020
7021 Daniel (25 February 2002)
7022 - Fiddled with the automake files to make all source files in the lib
7023   directory not have ../src in the include path, and the src sources shouldn't
7024   have ../lib!
7025
7026 - All 79 test cases ran OK under Linux and Solaris using the new HTTP server
7027   in the test suite. The new HTTP server was first donated by Georg Horn and
7028   subsequently modified to work with the test suite. It is currently still not
7029   portable enough to run on "all over" but this is a start and I can run all
7030   curl tests on my machines. This is an important requirement for the upcoming
7031   public release.
7032
7033 - Using -d and -I on the same command line now reports an error, as it implies
7034   two different HTTP requests that can't be mixed.
7035
7036 - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
7037   support %{content_type} to get the content type of the recent download.
7038
7039 - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
7040   and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
7041   out if we could include winsock.h which turns out not to be a wise choice to
7042   do on cygwin since it has the file but can't include it!
7043
7044 Daniel (22 February 2002)
7045 - Added src/config-vms.h to the release archive.
7046
7047 - Fixed the connection timeout value again, the change from February 18 wasn't
7048   complete.
7049
7050 Version 7.9.5-pre3
7051
7052 Daniel (21 February 2002)
7053 - Kevin Roth and Andrés García both found out that lib/config.h.in was missing
7054   in the pre-release archive and thus the configure script failed.
7055
7056 Version 7.9.5-pre2
7057
7058 Daniel (20 February 2002)
7059 - Andrés García provided a solution to bug report #515228. the total time
7060   counter was not set correctly when -I was used during some conditions (all
7061   headers were read in one single read).
7062
7063 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
7064   compile nicely on VMS.
7065
7066 Daniel (19 February 2002)
7067 - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
7068   getaddrinfo() calls, he could speed up some name resolving calls with an
7069   order of magnitudes on his Redhat Linux 7.2.
7070
7071 - Philip Gladstone found a second INADDR_NONE problem where we used long
7072   intead of in_addr_t which caused 64bit problemos. We really shouldn't define
7073   that on two different places.
7074
7075 Daniel (18 February 2002)
7076 - Philip Gladstone found a problem in how HTTP requests were sent if the
7077   request couldn't be sent all at once.
7078
7079 - Emil found and corrected a bad connection timeout comparison that made curl
7080   use the longest of connect-timeout and timout as a timeout value, instead of
7081   the shortest as it was supposed to!
7082
7083 - Aron Roberts provided updated information about LDAP URL syntax to go into
7084   the manual as a replacement for the old references.
7085
7086 Daniel (17 February 2002)
7087 - Philip Gladstone pointed out two missing include files that made curl core
7088   dump on 64bit architectures. We need to pay more attention on these details.
7089   It is *lethal* to for example forget the malloc() prototype, as 'int' is
7090   32bit and malloc() must return a 64bit pointer on these platforms.
7091
7092 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
7093   the same handle using a proxy.
7094
7095 Daniel (8 February 2002)
7096 - Hanno L. Kranzhoff accurately found out that disabling the Expect: header
7097   when doing multipart formposts didn't work very well. It disabled other
7098   parts of the request header too, resulting in a broken header. When I fixed
7099   this, I also noticed that the Content-Type wasn't possible to disable. It is
7100   now, even though it probably is really stupid to try to do this (because of
7101   the boundary string that is included in the internally generated header,
7102   used as form part separator.)
7103
7104 Daniel (7 February 2002)
7105 - I moved the config*.h files from the root directory to the lib/ directory.
7106
7107 - I've added the new test suite HTTP server to the CVS repository, It seems to
7108   work pretty good now, but we must make it get used by the test scripts
7109   properly and then we need to make sure that it compiles, builds and runs on
7110   most operating systems.
7111
7112 Version 7.9.5-pre1
7113
7114 Daniel (6 February 2002)
7115 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
7116
7117 - Mr Larry Fahnoe found a problem with formposts and I managed to track down
7118   and patch this bug. This was actually two bugs, as the posted size was also
7119   said to be two bytes too large.
7120
7121 - Brent Beardsley found out and brought a correction for the
7122   CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
7123   accidentaly broke Giaslas Georgios' patch.
7124
7125 Daniel (5 February 2002)
7126 - Kevin Roth found yet another SSL download problem.
7127
7128 Version 7.9.4
7129
7130 - no changes since pre-release
7131
7132 Version 7.9.4-pre2
7133
7134 Daniel (3 February 2002)
7135 - Eric Melville provided a few spelling corrections in the curl man page.
7136
7137 Daniel (1 February 2002)
7138 - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
7139   uses gmtime_r() on all hosts that have it.
7140
7141 Daniel (31 January 2002)
7142 - An anonymous bug report identified a problem in the DNS caching which made it
7143   sometimes allocate one byte too little to store the cache entry in. This
7144   happened when the port number started with 1!
7145
7146 - Albert Chin provided a patch that improves the gethostbyname_r() configure
7147   check on HP-UX 11.00.
7148
7149 Version 7.9.4-pre1
7150
7151 Daniel (30 January 2002)
7152 - Georg Horn found another way the SSL reading failed due to the non-blocking
7153   state of the sockets! I fixed.
7154
7155 Daniel (29 January 2002)
7156 - Multipart formposts now send the full request properly, including the CRLF.
7157   They were previously treated as part of the post data.
7158
7159 - The upload byte counter bugged.
7160
7161 - T. Bharath pointed out that we seed SSL on every connect, which is a time-
7162   consuming operation that should only be needed to do once. We patched
7163   libcurl to now only seed on the first connect when unseeded. The seeded
7164   status is global so it'll now only happen once during a program's life time.
7165
7166   If the random_file or egdsocket is set, the seed will be re-made though.
7167
7168 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
7169   curl_easy_getinfo() read the content-type from the previous request.
7170
7171 Daniel (28 January 2002)
7172 - Kjetil Jacobsen found a way to crash curl and after much debugging, it
7173   turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
7174   name resolving.
7175
7176 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
7177   reentrant!
7178
7179 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
7180   CURLOPT_POSTFIELDS. You can now!
7181
7182 Daniel (25 January 2002)
7183 - Krishnendu Majumdar pointed out that the header length counter was not reset
7184   between multiple requests on the same handle.
7185
7186 - Pedro Neves rightfully questioned why curl always append \r\n to the data
7187   that is sent in HTTP POST requests. Unfortunately, this broke the test suite
7188   as the test HTTP server is lame enough not to deal with this... :-O
7189
7190 - Following Location: headers when the connection didn't close didn't work as
7191   libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
7192   the restructured internals. 'Frank' posted a bug report about this.
7193
7194 Daniel (24 January 2002)
7195 - Kevin Roth very quickly spotted that we wrongly installed the example
7196   programs that were built in the multi directory, when 'make install' was
7197   used. :-/
7198
7199 Version 7.9.3
7200
7201 Daniel (23 January 2002)
7202 - Andrés García found a persistancy problem when doing HTTP HEAD, that made
7203   curl "hang" until the connection was closed by the server. This problem has
7204   been introduced in 7.9.3 due to internal rewrites, this was not present in
7205   7.9.2.
7206
7207 Version 7.9.3-pre4
7208
7209 Daniel (19 January 2002)
7210 - Antonio filed bug report #505514 and provided a fix! When doing multipart
7211   formposts, libcurl would include an error text in the actual post if a
7212   specified file wasn't found. This is not libcurl's job. Instead we add an
7213   empty part.
7214
7215 Daniel (18 January 2002)
7216 - Played around with stricter compiler warnings for gcc (when ./configure
7217   --enable-debug is used) and changed some minor things to stop the warnings.
7218
7219 - Commented out the 'long long' and 'long double' checks in configure.in, as
7220   we don't currently use them anyway and the code in lib/mprintf.c that use
7221   them causes warnings.
7222
7223 - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
7224   to correct them. Two compiler warnings were removed as well.
7225
7226 - Andrés García fixed two minor mingw32 building problems.
7227
7228 Version 7.9.3-pre3
7229
7230 Daniel (17 January 2002)
7231 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
7232   friends.
7233
7234 - Richard Archer brought back the ability to compile and build with OpenSSL
7235   versions before 0.9.5.
7236   [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
7237
7238 - The DNS cache code didn't take the port number into account, which made it
7239   work rather bad on IPv6-enabled hosts (especially when doing passive
7240   FTP). Sterling fixed it.
7241
7242 Daniel (16 January 2002)
7243 - Georg Horn could make a transfer time-out without error text. I found it and
7244   corrected it.
7245
7246 - SSL writes didn't work, they return an uninitialized value that caused
7247   havoc all over. Georg Horn experienced this.
7248
7249 - Kevin Roth patched the curl_version() function to use the proper OpenSSL
7250   function for version information. This way, curl will report the version of
7251   the SSL library actually running right now, not the one that had its headers
7252   installed when libcurl was built. Mainly intersting when running with shared
7253   OpenSSL libraries.  
7254
7255 Version 7.9.3-pre2
7256
7257 Daniel (16 January 2002)
7258 - Mofied the main transfer loop and related stuff to deal with non-blocking
7259   sockets in the upload section. While doing this, I've now separated the
7260   connection oriented buffers to have one for downloads and one for uploads
7261   (as two can happen simultaneously). I also shrunk the buffers to 20K
7262   each. As we have a scratch buffer twice the size of the upload buffer, we
7263   arrived at 80K for buffers compared with the previous 150K.
7264
7265 - Added the --cc option to curl-config command as it enables so very cool
7266   one-liners. Have a go a this one, building the simple.c example:
7267
7268         $ `curl-config --cc --cflags --libs` -o example simple.c
7269
7270 Daniel (14 January 2002)
7271 - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
7272   only need to address all writes (send) too and then I'm ready for another
7273   pre-release...
7274
7275 - Stoned Elipot patched the in_addr_t configure test to make it work better on
7276   more platforms.
7277
7278 Daniel (9 January 2002)
7279 - Cris Bailiff found out that filling up curl's SSL session cache caused a
7280   crash!
7281
7282 - Posted the curl questionnaire on the web site. If you haven't posted your
7283   opinions there yet, go there and do it now while it is still there:
7284
7285         http://curl.haxx.se/q/
7286
7287 - Georg Horn quickly found out that the SSL reading no longer worked as
7288   supposed since the switch to non-blocking sockets. I've made a quick patch
7289   (for reading only) but we should improve it even further.
7290
7291 Version 7.9.3-pre1
7292
7293 Daniel (7 January 2002)
7294 - I made the 'bool' typedef use an "unsigned char". It makes it the same on
7295   all platforms, no matter what the platform thinks the default format for
7296   char is. This was noticed since we made a silly comparison involving such a
7297   bool variable, and only one compiler/platform combination (on Debian Linux)
7298   complained about it (that happened to have its char unsigned by default).
7299
7300 - Bug report #495290 identified a cookie parsing problem that was corrected.
7301   When a Set-Cookie: line is received without a trailing semicolon, libcurl
7302   didn't read the last "name=value" pair of the line, leading to confusions...
7303
7304 - Sterling committed his updated DNS cache code.
7305
7306 - I worked with Georg Horn and comments from Götz Babin-Ebell and switched
7307   curl's socket operations completely over to non-blocking for the entire
7308   operation (previously we used non-blocking only for the connection phase).
7309   We had to do this to make the SSL connection phase timeout properly without
7310   the use of signals. A little extra code to deal with this was added.
7311
7312 - T. Bharath pointed out a slightly obscure cookie engine flaw.
7313
7314 - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
7315   204-replies never provides a response-body. This resulted in bad persistant
7316   behavior when 204 was received.
7317
7318 Daniel (5 January 2002)
7319 - SM updated the VC++ library Makefiles for the new source files.
7320
7321 Daniel (4 January 2002)
7322 - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
7323   two places in the source code). One happened with VERBOSE set on connects,
7324   and the other when VERBOSE was on and krb4 over nat was used... I honestly
7325   don't think anyone has suffered from these mistakes.
7326
7327 - I replaced a lot of silly occurances of printf() to instead use the more
7328   appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
7329   affected.
7330
7331 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
7332   sparc on solaris 8).
7333
7334 - After discussions on the libcurl list with Raoul Cridlig, I just made FTP
7335   response lines get passed to the header callback if such a one is
7336   registered. It'll make it possible for any application to get all the
7337   responses an FTP server sends to libcurl.
7338
7339 Daniel (3 January 2002)
7340 - Sterling Hughes brought a few buckets of code. Now, libcurl will
7341   automatically cache DNS lookups and re-use the previous results first if any
7342   such is available. It greatly improves speed when doing many repeated
7343   operations to the same host.
7344
7345 - As the test case uses --include and then --head, I had to modify src/main.c
7346   to deal with this situation slightly better than previously. When done, we
7347   have 100% good tests again in the main branch.
7348
7349 Daniel (2 January 2002)
7350 - Made test case 25 run again in the multi-dev branch. But it seems that the
7351   changes done on dec-20 made test case 104 cease to work (in both branches).
7352
7353 - Philip Gladstone pointed out a few portability problems in the source code
7354   that didn't compile on 64-bit sparcs using Sun's native compiler.
7355 Daniel (20 December 2001)
7356 - Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause
7357   libcurl to hang on transfers over proxy, when the proxy was specified with
7358   an environment variable!
7359
7360 - Added code to make ftp operations treat the NO_BODY and HEADERS options
7361   better:
7362
7363    NO_BODY set TRUE and HEADERS set TRUE:
7364     Return a set of headers with file info
7365
7366    NO_BODY set FALSE
7367     Transfer data as usual, HEADERS is ignored
7368
7369    NO_BODY set TRUE and HEADERS set FALSE
7370     Don't transfer any data, don't return any headers. Just perform the set
7371     of FTP commands.
7372
7373 Daniel (17 December 2001)
7374 - Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
7375   made libcurl support it! This allows libcurl to do SSL connections with the
7376   private key stored in external hardware.
7377
7378   To make this good, he had to add a bunch of new library options that'll be
7379   useful to others as well:
7380
7381    CURLOPT_SSLCERTTYPE  set SSL cert type (PEM/DER)
7382    CURLOPT_SSLKEY       set SSL private key (file)
7383    CURLOPT_SSLKEYTYPE:  set SSL key type (PEM/DER/ENG)
7384    CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
7385                           (CURLOPT_SSLCERTPASSWD is an alias)
7386    CURLOPT_SSLENGINE:   set the name of the crypto engine
7387                         (returns CURLE_SSL_ENGINE_NOTFOUND on error)
7388    CURLOPT_SSLENGINE_DEFAULT: set the default engine
7389
7390   There are two new failure codes:
7391
7392    CURLE_SSL_ENGINE_NOTFOUND
7393    CURLE_SSL_ENGINE_SETFAILED
7394
7395 Daniel (14 December 2001)
7396 - We have "branched" the source-tree at a few places. Checkout the CVS sources
7397   with the 'multi-dev' label to get the latest multi interface development
7398   tree. The idea is to only branch affected files and to restrict the branch
7399   to the v8 multi interface development only.
7400
7401   *NOTE* that if we get bug reports and patches etc, we might need to apply
7402   them in both branches!
7403
7404   The multi-dev branch is what we are gonna use as main branch in the future
7405   if it turns out successful. Thus, we must maintain both now in case we need
7406   them. The current main branch will be used if we want to release a 7.9.3 or
7407   perhaps a 7.10 release before version 8. Which is very likely.
7408
7409 - Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
7410   curl_formadd(), that lets an application add a set of headers for that
7411   particular part in a multipart/form-post. He also provided a section to the
7412   man page that describes the new option.
7413
7414 Daniel (11 December 2001)
7415 - Ben Greear made me aware of the fact that the Curl_failf() usage internally
7416   was a bit sloppy with adding newlines or not to the error messages. Let's
7417   once and for all say that they do not belong there!
7418
7419 - When uploading files with -T to give a local file name, and you end the URL
7420   with a slash to have the local file name used remote too, we now no longer
7421   use the local directory as well. Only the file part of the -T file name
7422   will be appended to the right of the slash in the URL.
7423
7424 Daniel (7 December 2001)
7425 - Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the
7426   link failed. Added a configure check and corrected source code.
7427
7428 Version 7.9.2
7429
7430 Daniel (5 December 2001)
7431 - Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then
7432   on the same handle used CURLOPT_HTTPGET it would still attempt to upload.
7433   His suggested fix was perfect.
7434
7435 Daniel (4 December 2001)
7436 - Incorporated more macos fixes and added four specific files in a new
7437   subdirectory below src.
7438
7439 Daniel (3 December 2001)
7440 - Eric Lavigne reported two problems:
7441
7442   First one in the curl_strnequal() function. I think this problem is rather
7443   macos 9 specific, as most platform provides a function to use instead of the
7444   one provided by libcurl.
7445
7446   A second, more important, was in the way we take care of FTP responses. The
7447   code would read a large chunk of data and search for the end-of-response
7448   line within that chunk. When found, it would just skip the rest of the
7449   data. However, when the network connections are special, or perhaps the
7450   server is, we could actually get more than one response in that chunk of
7451   data so that when the next invoke to this function was done, the response
7452   had already been read and thrown away. Now, we cache the data not used in
7453   one call, as it could be useful in the subsequent call. Test case 126 was
7454   added and the test ftp server modified, to exercise this particular case.
7455
7456 Version 7.9.2-pre8
7457
7458 Daniel (2 December 2001)
7459 - Bug report #487825 correctly identified a problem when using a proxy and
7460   following a redirection from HTTP to HTTPS. libcurl then re-used the same
7461   proxy connection but without doing a proper HTTPS request.
7462
7463 - Fixed win32 compiling quirks.
7464
7465 Version 7.9.2-pre7
7466
7467 Daniel (30 November 2001)
7468 - Documented --disable-epsv and CURLOPT_FTP_USE_EPSV.
7469
7470 Daniel (29 November 2001)
7471 - Added --disable-epsv as an option. When used, curl won't attempt to use the
7472   EPSV command when doing passive FTP downloads. Wrote a test case for it.
7473
7474 - Eric provided a few more fixes for building on Macs. He also pointed out
7475   a flaw in the signal handler restoration code.
7476
7477 Daniel (28 November 2001)
7478 - Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
7479   only when using VERBOSE ftp transfers. Do we use a too small buffer for
7480   gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the
7481   hostent struct must be blanked before use? With Dimitris help and these
7482   patches, the problems seem to be history.
7483
7484 - CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl
7485   from using the EPSV command before trying the normal PASV. Heikki Korpela
7486   pointed out that some firewalls and similar don't like the EPSV so we must
7487   be able to shut if off to work everywhere.
7488
7489 - I added a configure check for 'in_addr_t' and made the ftp code use that to
7490   receive the inet_addr() return code in. Works on Solaris and Linux at
7491   least. The Linux man page for inet_addr() doesn't even mention in_addr_t...
7492
7493 - Adjusted (almost) all FTP tests to the new command sequence.
7494
7495 - FTP command sequence changes:
7496
7497   EPSV is now always attempted before PASV. It is the final touch to make IPv6
7498   passive FTP downloads to work, but EPSV is not restricted to IPv6 but works
7499   fine with IPv4 too on the servers that support it.
7500
7501   SIZE is now always issued before RETR. It makes curl know the actual
7502   download size before the download takes place, as it makes it less important
7503   to find the size sent in RETR responses. Many sites don't include the size
7504   in there.
7505
7506   Both these changes made it necessary to change the test suite's ftp server
7507   code, and all FTP test cases need to be checked and adjusted!
7508
7509 Daniel (27 November 2001)
7510 - Hans Steegers pointed out that the telnet code read from stdout, not stdin
7511   as it is supposed to do!
7512
7513 Version 7.9.2-pre6
7514
7515 Daniel (27 November 2001)
7516 - Eric Lavigne's minor changes to build on MacOS before OS X were applied.
7517
7518 - greep at mindspring.com provided a main index.html page for our release
7519   archive docs directory. It just links to all the existing HTML files, but
7520   I think it may come useful to people.
7521
7522 - There's now some initial code to support the EPSV FTP command. That should
7523   be used to do passive transfers IPv6-style. The code is still #if 0'ed in
7524   lib/ftp.c as I have no IPv6 ftp server to test this with.
7525
7526 Daniel (26 November 2001)
7527 - Robert Schlabbach had problems to understand how to do resumed transfers,
7528   and I clarified the man page -C section somewhat.
7529
7530 Version 7.9.2-pre5
7531
7532 Daniel (22 November 2001)
7533 - Andrés García helped me out to track down the roots of bug report #479537,
7534   which was concerning curl returning the wrong error code when failing to
7535   connect. This didn't happen on all systems, and more specificly I've so far
7536   only seen this happen on IPv4-only Linux hosts.
7537
7538 - I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS
7539   port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP
7540   response reader function. The latter write is however likely to occur in our
7541   own buffer unless very big FTP server replies (>25K) are read. I've never
7542   seen such a reply ever, so I think this is a relatively minor risk.
7543
7544 Daniel (21 November 2001)
7545 - Moonesamy provided code to prevent junk from being output when libcurl
7546   returns an error code but no error description and that corrects how make is
7547   run in the Makefile.dist file (that appears as root Makefile in release
7548   archives).
7549
7550 - Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS
7551   (non-X).
7552
7553 - Kevin Roth modified the cygwin files once again, now to build against the
7554   shared OpenSSL DLLs.
7555
7556 Version 7.9.2-pre4
7557
7558 Daniel (20 November 2001)
7559 - Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME,
7560   complete with man page updates!
7561
7562 Daniel (19 November 2001)
7563 - Miklos Nemeth provided details enough to update the Borland makefile
7564   properly.
7565
7566 - Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm
7567   amazed we never saw this before!
7568
7569 - Kevin Roth patched the cygwin Makfile.
7570
7571 Daniel (16 November 2001)
7572 - Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing
7573   HTTP.
7574
7575 Version 7.9.2-pre3
7576
7577 Daniel (14 November 2001)
7578 - Samuel Listopad patched away the problem with SSL we got when someone call
7579   curl_global_init() => curl_global_cleanup() => curl_global_init(). The
7580   second init would not "take" and SSL would be unusable with curl from that
7581   point. This doesn't change the fact that calling the functions that way is
7582   wrong. curl_global_init() should be called exactly once and not more.
7583
7584 Daniel (13 November 2001)
7585 - Fixed some minor variable type mixups in ftp.c that caused compiler warnings
7586   on HP-UX 11.00.
7587
7588 - The FTP fix I did yesterday used an uninitialized variable that caused
7589   spurious errors when doing FTP.
7590
7591 Version 7.9.2-pre2
7592
7593 Daniel (12 November 2001)
7594 - Ricardo Cadime fell over a multiple-requests problem when first a FTP
7595   directory fetch failed and then a second request is made after that. The
7596   second request happened to get the FTP server response back from the
7597   previous request, when it did its initial CWD command.
7598
7599 - Bjorn Reese pointed out that we could improve the time diff function to
7600   prevent truncation a bit.
7601
7602 - Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't
7603   work for plain HTTP requests! So I made that work.
7604
7605 Version 7.9.2-pre1
7606
7607 Daniel (12 November 2001)
7608 - Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot
7609   faster, it should also support such ("broken") proxies that John Lask
7610   previously have reported problems with. His proxy sends a trailing zero byte
7611   after the end of the (proxy-) headers. I've tested this myself and it seems
7612   to work on a proxy the previous version also worked with...! This rewrite is
7613   due to the problems John Lask previously experienced.
7614
7615 - Andrés García found out why the "current speed" meter sometimes showed 2048K
7616   for very quick transfers. It turned out the "time diff"-function returned a
7617   zero millisecond diff. We now always say it is at least one millisecond! In
7618   reality, these timers very rarely have that good resolution so even though
7619   the time diff was longer than 1 millisecond, it was reported as no diff.
7620
7621 - I also modified the getinfo() again when returning times, as Paul Harrington
7622   reports that 7.9.1 only returns times with 1 second accuracy, which indeed
7623   is wrong.
7624
7625 Daniel (8 November 2001)
7626 - Marcus Webster found out that curl_formadd() could read one byte outside a
7627   buffer boundary, which then of course could lead to a crash. Marcus also
7628   gracefully provided a patch for this this.
7629
7630 - Glen Scott ran configure on his Cobalt Qube and it didn't figure out the
7631   correct way of calling gethostbyname_r() and thus failed to resolve hosts.
7632   This is two errors: it shouldn't continue the configure script if it finds
7633   gethostbyname_r() but can't figure out how to use it, and it should really
7634   figure out how to use it as it was running Linux and we know how that
7635   works...
7636  
7637 Daniel (7 November 2001)
7638 - docs/VERSIONS is a new file in the archive that explains the version number
7639   system we use in the curl project.
7640
7641 - Did some more fixes that now makes libcurl only ignore signals as long as
7642   it needs to, and then restore (if any) previous signal handler again.
7643
7644 Daniel (6 November 2001)
7645 - Enrik Berkhan posted bug report #478780, in which he very correctly pointed
7646   out two bad timeout matters in libcurl: we didn't restore the sigaction
7647   struct (the alarm handler for SIGALRM) nor did we restore the previous
7648   alarm() timeout that could've been set by a "parent" process or similar.
7649
7650 - Kevin Roth made the cygwin binary get stripped before install.
7651
7652 Daniel (5 November 2001)
7653 - Detlef Schmier reported that curl didn't compile using Solaris 8 with the
7654   native cc compiler. It was due to a bad function prototype. Fixed now.
7655   Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds
7656   though, as gcc then complains like crazy on OpenSSL include files... :-(
7657
7658 - John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking
7659   to work on all platforms.
7660
7661 - John Lask added the -1/--TLSv1 options that forces SSL into using TLS
7662   version 1 when speaking HTTPS.
7663
7664 - John Lask brought a brand new VC++ makefile for the lib directory, that
7665   works a lot better than the previous!
7666
7667 - Ramana Mokkapati brought some clever insights on the LDAP failures (bug
7668   report #475407), and his suggested changes are now applied.
7669
7670 Version 7.9.1
7671
7672 Daniel (4 November 2001)
7673 - I've added a number of new test cases the last few days. A few of them since
7674   I got reports that hinted on problems on timeouts, so I added four tests
7675   with timeouts for all sorts of protocols and stuff. I also came to think of
7676   a few other error scenarios that we currently didn't test properly, so I
7677   wrote up tests for a few of those too.
7678
7679 Daniel (2 November 2001)
7680 - Replaced read() and write() with recv() and send() for socket operations
7681   even under normal unixes.
7682
7683 Daniel (1 November 2001)
7684 - When an FTP transfer was aborted due to a timeout, it wasn't really aware of
7685   how many bytes that had been transferred and the error text always said 0
7686   bytes. I modified this to output the actually transferred amount! :-)
7687
7688 - The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also
7689   added more comments in the lib/ftp.c source file.
7690
7691 - Minor updates to the FAQ, added a brand new section to the web site about
7692   the name issue (who owns "curl"? will someone sue us? etc etc):
7693   http://curl.haxx.se/legal/thename.html
7694
7695 Version 7.9.1-pre7
7696
7697 Daniel (31 October 2001)
7698 - The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
7699   the calculations used longs instead of doubles! Paul Harrington reported.
7700
7701 - The SSL SocketIsDead() checks weren't good enough (as expected really), so I
7702   had to add a generic internal try-it-out system. If the request on a re-used
7703   connection seems to fail, then we go back and get a new (fresh) connection
7704   and re-tries the request on that instead. It kind of makes the
7705   SocketIsDead() check obsolete, but I think it is a quicker way for those
7706   cases where it actually discovers that the connection is dead.
7707
7708 - When fixing the above, I noticed that we did quite a few writes to sockets
7709   in libcurl where we didn't check the return code (that it actually worked to
7710   send the data). With the new "attempted request" system we must detect those
7711   situations so I went over a bunch of functions, changed return types and
7712   added checks for what they actually return.
7713
7714 Version 7.9.1-pre6
7715
7716 Daniel (31 October 2001)
7717 - Paul Harrington detected a problem with persistant SSL connections. Or to be
7718   more exact, we didn't properly detect that the connection was dead and then
7719   a second connection would try to re-use it wrongly. The solution to this
7720   problem is still not very clear and I'm working on it. One OpenSSL insider
7721   said there is no way to know if the SSL connection is alive or not without
7722   actually trying an operation.
7723
7724 Daniel (30 October 2001)
7725 - If a cookie was read from a file, it could accidentally strdup() a NULL
7726   pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26]
7727
7728 - The MANUAL file now documents -t correctly. I also fixed the -T description
7729   in the curl.1 man page.
7730
7731 Daniel (29 October 2001)
7732 - John Janssen found out that curl_formadd was missing in the libcurl.def file
7733   and that the docs stated the wrong return type for the function.
7734
7735 - Andrés García found a bug with multiple files in the curl_formadd() function,
7736   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].
7737
7738 - Kevin Roth brought another patch that moved the cygwin package files to the
7739   packages/Win32/cygwin directory.
7740
7741 - A bug in the connection re-use logic made repeated requests to the same FTP
7742   server (when using name+pasword in the URL) sometimes use more than one
7743   connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167]
7744
7745 - Moonesamy tracked down and fixed a problem with the new 7.9.1 connect
7746   code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release
7747   (test 19)...
7748   [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14]
7749
7750 Daniel (26 October 2001)
7751 - Added test28 which verifies that "Location:"-following works even if the
7752   contents is separated with more than one space.
7753
7754 Daniel (25 October 2001)
7755 - Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the
7756   correct data has been output.
7757
7758 Version 7.9.1-pre5
7759
7760 Daniel (24 October 2001)
7761 - T. Bharath found a memory leak in the cookie engine. When we update a cookie
7762   that we already knew about, we lost a chunk of memory in the progress... The
7763   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]
7764
7765 Daniel (23 October 2001)
7766 - pack_hostent() didn't properly align some pointers, so at least SPARC CPUs
7767   would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35]
7768
7769 Daniel (22 October 2001)
7770 - Tom Benoist reported that this SGI IRIX compiler didn't handle indented
7771   preprocessor instructions, so they're no longer in the source code!
7772
7773 - Applied Kevin Roth's patches to make it easier to build cygwin packages from
7774   the out-of-the-box curl release archives.
7775
7776 - I forgot to mention it below, but libcurl now closes connections that report
7777   transfer failures. Unconditionally. This could be made more nicely in the
7778   future if we set a flag or something that the connection is still good to be
7779   used for the errors that know that for a fact. We have to close the
7780   connection for the cases where we abort for example a HTTP transfer in the
7781   middle, or otherwise we might re-use that connection later with lots of data
7782   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]
7783
7784 Daniel (19 October 2001)
7785 - CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return
7786   anything, not even a header. test case 37 was added to test for this.
7787
7788 - T. Bharath made curl_easy_duphandle() properly clone the cookie status as
7789   well.
7790
7791 Version 7.9.1-pre4
7792
7793 Daniel (18 October 2001)
7794 - CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if
7795   the HTTP return code is below 400.
7796
7797 Daniel (17 October 2001)
7798 - The test suite now kills any running test http server when you re-start the
7799   tests.
7800
7801 - We had to remove 'use strict' from two perl scripts, as the cygwin
7802   adjustments didn't play nicely otherwise for some reason. Any perl wizard
7803   out there who can put the scrict back and still make it run good on unix and
7804   cygwin?
7805
7806 - A potential memory leak pointed out to us by Yanick Pelletier was removed.
7807   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]
7808
7809 - The memory debugging system should no longer display anything to stderr
7810   if the curl_memdebug() hasn't been used to explicitly say so. This makes it
7811   easier to use the memory debug system and switch the logging on/off.
7812
7813 Daniel (16 October 2001)
7814 - Kevin Roth provided fixes for building curl nicer in cygwin environments.
7815
7816 Daniel (12 October 2001)
7817 - Cleaning up the progress meter/info code. The "current speed" is now more
7818   accurate than before as we now use the true time spent between the measures,
7819   and not just "assuming" every-second-update like before. The output should
7820   now also be of the same width at all times, never to show "extra" zeroes on
7821   the right edge.
7822
7823 - After talking about possible Location: bugs on the mailing list, I modified
7824   the "absolute URL" checker in lib/transfer.c to be more strict when checking
7825   if the redirected URL is absolute.
7826
7827 Daniel (11 October 2001)
7828 - Kevin Roth provided patches that make the test suite run fine on Windows
7829   2000 running cygwin.
7830
7831 Daniel (10 October 2001)
7832 - Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser.
7833   Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work.
7834
7835 Version 7.9.1-pre3
7836
7837 Daniel (9 October 2001)
7838 - Added a new option to the command line client: -0/--http1.0. It uses the new
7839   libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0
7840   requests instead of the default version (1.1). It should only be used if you
7841   really MUST do that because of a silly remote server.
7842
7843 - Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as
7844   all public curl-symbols should.
7845
7846 - libcurl now explicitly ignores the SIGPIPE signal.
7847
7848 Daniel (8 October 2001)
7849 - Kevin Roth's change to the cookie-jar comment (in the stored file) was
7850   applied.
7851
7852 - Lucas Adamski's minor bug in the bind error code failf() was fixed.
7853
7854 Daniel (5 October 2001)
7855 - Moonesamy fixed the Curl_connecthost() function to not give compiler errors
7856   on a bunch of compilers, due to the argument named 'socket'.
7857
7858 - Moonesamy also provided updated VC++ makefiles and project files.
7859
7860 Version 7.9.1-pre2
7861
7862 Daniel (4 October 2001)
7863 - Albert Chin provided a configure patch that makes the script detect proper
7864   gethostbyname_r() method without actually running any code, only compiling
7865   is necessary. This also removes the need of having a resolving 'localhost'
7866   name.
7867
7868 - Found and removed memory leakage (name resolve data) in libcurl on
7869   IPv6-enabled hosts. These could sneak through because we didn't have any
7870   resource tracing on the IPv6-related functions. We do now.
7871
7872 Daniel (3 October 2001)
7873 - Keith McGuigan patched away a (mainly Windows-) problem with the name
7874   resolver data being kept in the static memory area, which is removed when a
7875   thread is killed. The curl handle itself though perfectly handles being
7876   passed between threads.
7877
7878 - Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that
7879   required an Authorization: header. Now, proxies are not supposed to require
7880   that header, that is for true servers...
7881
7882 - I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now.
7883
7884 Version 7.9.1-pre1
7885
7886 Daniel (3 October 2001)
7887 - Georg Huettenegger once again made an effort beyond the call of duty and not
7888   only improved the curl_formadd() function, but also took care of adjusting
7889   the curl command line client to use this new function instead of the
7890   obsoleted curl_formparse.
7891
7892 Daniel (2 October 2001)
7893 - Major fix in how libcurl does TCP connects. It now does non-blocking
7894   connects to enable good timeouts without signals, and it now tries all IP
7895   addresses for any given host (if it resolves more than one and the first
7896   one(s) don't connect). Added a new source file 'connect.c' to deal with all
7897   the TCP connect stuff.
7898
7899 - We now support IPv4-style IP-addresses in rfc2732-format, to better support
7900   people writing scripts without knowing what address there is.
7901
7902 Daniel (28 September 2001)
7903 - Cleanups in the FTP source code. Divided the code into even more smaller
7904   functions and generally tried to make the differences between IPv4 and IPv6
7905   get less noticable in the sources.
7906
7907 - If the remote file time is not readable/accessable/understood by libcurl,
7908   libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously
7909   did. This should make curl not touch the file data unless there was a known
7910   remote date when -R is used.
7911
7912 Daniel (27 September 2001)
7913 - Working on getting non-blocking connects working platform independent. We
7914   will also make curl try all IPs for a given host if the first one should
7915   fail.
7916
7917 Daniel (26 September 2001)
7918 - Kevin Roth provided a cookie example that proved the cookie jar
7919   functionality wasn't working properly. I added test case 46 and made it
7920   work.
7921
7922 Daniel (25 September 2001)
7923 - Jörn Hartroth updated the mingw32 makefiles.
7924
7925 Version 7.9
7926
7927 Daniel (23 September 2001)
7928 - Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
7929   when FTP RETR failed.
7930
7931 - Made the FTP upload tests run fine on machines with IPv6 enabled.
7932
7933 Version 7.9-pre8
7934
7935 Daniel (19 September 2001)
7936 - Vojtech Minarik set up a special-purpose test server and provided me with
7937   test certificates in order for me to repeat the bug reports #440068 and
7938   #440373. It turned out we didn't check all the error codes properly. We do
7939   now, and connecting with a unacceptable certificate will make libcurl fail
7940   to connect with an error code returned.
7941
7942 - Ramana Mokkapati found a case when the Location: following code did wrong.
7943   I wrote a test case for this (45).
7944
7945 Version 7.9-pre7
7946
7947 Daniel (17 September 2001)
7948 - Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
7949   winsock 2.0.
7950
7951 Version 7.9-pre6
7952
7953 - libtool 1.4.2 is now in use!
7954
7955 Version 7.9-pre5
7956
7957 Daniel (14 September 2001)
7958 - Added another 14 ftp tests.
7959
7960 Daniel (13 September 2001)
7961 - Added curl_easy_duphandle() to the easy.h header file. It has now been
7962   tested and proved to work in a real-world tests by T Bharath. We still need
7963   to write up some docs for this function.
7964
7965 - Added four more ftp tests to the test suite.
7966
7967 Daniel (12 September 2001)
7968 - CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
7969   --ciphers. Use them to specify a list of ciphers to use in the SSL
7970   connection.
7971
7972 - T. Bharath found a memory leak in libcurl's windows version. It turned out
7973   to be the new duphandle() that didn't quite work yet.
7974
7975 Version 7.9-pre4
7976
7977 Daniel (11 September 2001)
7978 - Added verbose output for SSL connections that output the server
7979   certificate's start and expire dates. As suggested by Paul Harrington.
7980
7981 - Heikki Korpela found problems in the perl ftp server used for the test
7982   suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
7983   made, but nothing really certain.
7984
7985 - T. Bharath has experienced problems with libcurl's stack usage on windows
7986   and works on reducing it.
7987
7988 Daniel (10 September 2001)
7989 - Cris Bailiff fixed the perl interface. It stopped working since the changed
7990   behavior with WRITEHEADER and NULL pointers.
7991
7992 - The "output cookies" function could dump core if no cookies were enabled.
7993
7994 Daniel (7 September 2001)
7995 - SM pointed out that the SSL code didn't compile any longer if SSL was
7996   disabled... Also, we needed to correct the #include for the utime stuff on
7997   windows.
7998
7999 Daniel (6 September 2001)
8000 - T. Bharath pointed out a flaw in the SSL session cache code that made it
8001   sometimes read from a NULL pointer.
8002
8003 Version 7.9-pre3
8004
8005 Daniel (3 September 2001)
8006 - Added the -R/--remote-time option, that uses the remote file's datestamp to
8007   set the local file's datestamp. Thus, when you get a remote file your local
8008   file will get the same time and date. Note that this only works when you use
8009   -o or -O.
8010
8011 - Installed libtool 1.4.1, libtoolized and everything.
8012
8013 Daniel (1 September 2001)
8014 - Heikki Korpela pointed out that I did not ship the proper libtool stuff in 
8015   the pre-releases, even though that was my intention. libtoolize has now
8016   been re-run.
8017
8018 - Heikki also patched away the bad use of 'make -C' in the test suite
8019   makefile. make -C is not very portable and is now banned from here.
8020
8021 Version 7.9-pre2
8022
8023 Daniel (31 August 2001)
8024 - I just made a huge internal struct rehaul, and all the big internally used
8025   structs have been renamed, redesigned and stuff have been moved around a bit
8026   to make the source easier to follow, more logically grouped and to hopefully
8027   decrease future bugs. I also hope that this will make new functions to get
8028   easier to add, and make it less likely that we have bugs left like the URL-
8029   free bug from August 23.
8030
8031 Version 7.9-pre1
8032
8033 Daniel (29 August 2001)
8034 - The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
8035   that to specify the file name in which you want to have all cookies curl
8036   knows of, dumped to. It'll be written using the netscape cookie format.
8037
8038   This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
8039   which in turn dumps this information when curl_easy_cleanup() is invoked.
8040   There might be reasons to re-consider my choice of putting it there. Perhaps
8041   it is better placed to get done just before *_perform() is done. It is all
8042   of course depending on how you guys want to use this feature...
8043
8044 - Added ftpupload.c in the source examples section, based on source code posted
8045   by Erick Nuwendam.
8046
8047 Daniel (28 August 2001)
8048 - Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
8049   on OpenBSD and hopefully on FreeBSD as well!
8050
8051 - Georg Huettenegger modified the curl_formadd() functionality slightly, and
8052   added support for error code 417 when doing form post and using the Expect:
8053   header. Great work!
8054
8055 - Made some tests with cached SSL session IDs, and they seem to work. There
8056   should be a significant speed improvement in the SSL connection phase, but
8057   in my tiny tests it just isn't possible to notice any difference. Like other
8058   caching in libcurl, you must reuse the same handle for the caching to take
8059   effect. SSL session ID caching is done on a per host-name and destination
8060   port number basis.
8061
8062   Set verbose, and you'll get informational tests when libcurl detects and
8063   uses a previous SSL session ID.
8064
8065 - Upgraded to automake 1.5 on my development/release machine.
8066
8067 Daniel (27 August 2001)
8068 - Slowly started writing SSL session ID caching code
8069
8070 Daniel (24 August 2001)
8071 - T. Bharath removed compiler warnings on windows and updated the MS project
8072   files.
8073
8074 - Kevin Roth reported two kinds of command line constructs with the new -G that
8075   curl didn't really deal with the way one would like.
8076
8077 - Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
8078   own portable version named strequal() that should be used!
8079
8080 - Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
8081   debug object modules causing confusions.
8082
8083 Daniel (23 August 2001)
8084 - T. Bharath accurately found a libcurl bug that would happen when doing a
8085   second invoke of curl_easy_perform() with a new URL when the previous invoke
8086   followed a Location: header.
8087
8088 - Started the improvement work on the cookie engine:
8089   - Now keeps cookies in the same order as the cookie file
8090   - A write to the possibly static string was removed
8091   - Added a function that can output all cookies
8092   - Now supports reading multiple cookie files
8093
8094 - Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.
8095
8096 - Split up the monster function in lib/ftp.c to use more smallish functions to
8097   increase readability and maintainability.
8098
8099 Daniel (21 August 2001)
8100 - Georg Huettenegger's big patch was applied. Now we have:
8101   o "Expect: 100-continue" support. We will from now on send that header in
8102     all rfc1867-posts, as that makes us abort much faster when the server
8103     rejects our POST. Posting without the Expect: header is still possible in
8104     the standard replace-internal-header style.
8105   o curl_formadd() is a new formpost building function that is introduced to
8106     replace the now deprecated curl_formparse() function. The latter function
8107     will still hang around for a while, but the curl_formadd() is the new way
8108     and correct way to build form posts.
8109   o Documentation has been updated to reflect these changes
8110
8111   These changes are reason enough to name the next curl release 7.9...
8112
8113 - We now convert man pages to HTML pages and include them in the release
8114   archive. For the pleasure of everyone without nroff within reach.
8115
8116 - Andrés García's suggested flushing of the progress meter output stream was
8117   added. It should make the progress meter look better on Windows.
8118
8119 - Troy Engel pointed out a mistake in the configure script that made it fail
8120   on many Red Hat boxes!
8121
8122 Daniel (20 August 2001)
8123 - We need an updated libtool to make a better build environment for OpenBSD
8124   as well as FreeBSD
8125
8126 Version 7.8.1
8127
8128 Daniel (20 August 2001)
8129 - Brad pointed out that we ship two extra libtool files in the tarballs that
8130   we really don't need to! Removing them makes the gz-archive about 60K
8131   smaller!
8132
8133 - Albert Chin brought fixes for the configure script to detect socklen_t
8134   properly as well as moving lots of our custom autoconf macros to
8135   acinclude.m4.
8136
8137 Daniel (19 August 2001)
8138 - Moonesamy improved his -G feature for host names only URLs...
8139
8140 Daniel (17 August 2001)
8141 - Finally cleaned up the kerberos code to use Curl_ prefixes on all global
8142   symbols and to not use global variables.
8143
8144 Version 7.8.1-pre6
8145
8146 Daniel (16 August 2001)
8147 - S. Moonesamy added the -G option to curl, that converts the data specified
8148   with -d to a GET request. Default action when using -d is POST. When -G is
8149   used, the -d specified data will be appended to the URL with a '?'
8150   separator. As suggested previously by Kevin Roth.
8151
8152 - curl-config --libs should now display all linker options required to link
8153   with libcurl. It includes the path and options for libcurl itself.
8154   curl-config --cflags displays the compiler option(s) needed to compile
8155   source files that use libcurl functions. Basically, that sets the include
8156   path correct.
8157
8158 Daniel (15 August 2001)
8159 - Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
8160   were parsed and used. (RFC2732-format)
8161
8162 - Bug #12733 over on php.net identified a problem in libcurl that made it core
8163   dump if you used CURLOPT_POST without setting any data to post with
8164   CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
8165   now equals setting it to no data at all.
8166
8167 - Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
8168   properly when used for multiple URLs on a single command line. Indeed, the
8169   variable was not reset between the requests. This is now fixed.
8170
8171 - David James fixed the Borland makefile so that libcurl still compiles and
8172   builds with that compiler.
8173
8174 Daniel (14 August 2001)
8175 - Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.
8176
8177 - An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
8178   windows users to curl_global_init(), that makes libcurl init the winsock
8179   stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
8180   with this is a comfortable shortcut to fame.
8181
8182 Version 7.8.1-pre5
8183
8184 Daniel (14 August 2001)
8185 - Nico Baggus provided more feedback from his VMS porting efforts and a few
8186   minor changes were necessary.
8187
8188 - I modified configure.in so that --enable-debug sets more picky gcc options.
8189   I then removed almost all the new warnings that appeared, and by doing so I
8190   corrected the size_t-treated-as-signed problem that has been discussed on
8191   the mailing list previously. I also removed a bunch of the just recently
8192   added #ifdef VMS lines.
8193
8194 - I removed the use of a global variable in the SSL code. It was once
8195   necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
8196   (hopefully) still work if libcurl is built against an ancient version of
8197   OpenSSL.
8198
8199 Daniel (13 August 2001)
8200 - Peter Todd posted a patch that now allows non-file rc1867-style form posts
8201   to be larger than 4K.
8202
8203 Daniel (10 August 2001)
8204 - S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile
8205
8206 Daniel (9 August 2001)
8207 - The redirected error stream was closed before the curl_easy_cleanup() call
8208   was made, and when VERBOSE was enabled, the cleanup function tried to use
8209   the stream. It could lead to a segmentation fault. Also, the stream was
8210   closed even if we looped to get more files.  Corrects Dustin Boswell's bug
8211   report #441610
8212
8213 - Now generates the release configure script with autoconf 2.52
8214
8215 Version 7.8.1-pre4
8216
8217 Daniel (8 August 2001)
8218 - curl -E uses a colon to separate a file name from a passphrase. This turned
8219   out really bad for the windows people who wants to include a drive letter in
8220   the file name like "c:\cert.pem". There's now a win32 work-around
8221   implemented that tries work around that, when the colon seems to be used for
8222   this kind of construct.
8223
8224 - Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
8225   verify the server's CN field when talking https://. If --cacert is not used,
8226   any failures in matching is only displayed as information (-v).
8227
8228 Daniel (7 August 2001)
8229 - Wrote up nine more test cases, more or less converted from the former test
8230   suite.
8231
8232 Daniel (6 August 2001)
8233 - Heikki Korpela posted a patch that makes 'curl-config --libs' include the
8234   directory in which libcurl itself is installed in. While this wasn't my
8235   initial intention with this option, it makes sense and makes linking with
8236   libcurl easier.
8237
8238 - Stefan Ulrich pointed out to us that other tools and libraries treat file://
8239   URLs with only one slash after the host name slighly different than libcurl
8240   does. Since all the others seem to agree, we better follow them.
8241
8242 - Nico Baggus provided us with a huge set of fixes to make curl compile and
8243   build under OpenVMS.
8244
8245 Version 7.8.1-pre3
8246
8247 Daniel (6 August 2001)
8248 - Jonathan Hseu noticed that you couldn't get a header callback unless you
8249   set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
8250   data. This is now fixed.
8251
8252 Daniel (5 August 2001)
8253 - Sergio Ballestrero provided a patch for reading responses from NCSA httpd
8254   1.5.x servers, as they return really screwed up response headers when asked
8255   for with HTTP 1.1.
8256
8257 - curl_escape() no longer treats already encoded characters in the input
8258   string especially.
8259
8260 Daniel (3 August 2001)
8261 - I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
8262   avoid the BSD annoucement clause of the license in the former file.
8263
8264 - Andrew Francis provided a new version of base64.c to work around the license
8265   boiler plate that came with the previous one. I patched it, but the glory
8266   should go to Andrew for his heads up.
8267
8268 - Tomasz Lacki noticed that when you do repeated transfers with libcurl you
8269   couldn't always reliably change HTTP request. This has now been fixed and a
8270   new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
8271   requestr (back) to GET.
8272
8273 - Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
8274   release archives. It should be now.
8275
8276 Daniel (2 August 2001)
8277 - Frank Keeney pointed out a manual mistake for certificate convertions.
8278
8279 - Tomasz Lacki pointed out a problem in the transfer loop that could make the
8280   select() loop use far too much CPU.
8281
8282 - Pawel A. Gajda pointed out an output mistake done when using libcurl's
8283   progress callback.
8284
8285 Daniel (29 June 2001)
8286 - Naveen Noel noticed that the Borland library makefile wasn't updated.
8287
8288 - Nic Roets brought a fix for the certificate verification when using SSL.
8289
8290 Daniel (27 June 2001)
8291 - Made the FTP tests run OK even on machines running curl IPv6-enabled.
8292
8293 - Troy Engel corrected some RPM package details.
8294
8295 Version 7.8.1-pre2
8296
8297 Daniel (25 June 2001)
8298 - Björn Stenberg correctly identified a problem that occurred when downloading
8299   several files with curl, and using resume. The first file's resume index was
8300   then used for all files, resulting in weird results...
8301
8302 - Anton Kalmykov provided a fix that makes curl work with form field names
8303   with spaces like when -F is used.
8304
8305 Version 7.8.1-pre1
8306
8307 Daniel (20 June 2001)
8308 - Mike Bytnar provided a fine report that proved that the --with-ssl option
8309   for configure needed tweaking. It no longer searches the default directories
8310   for OpenSSL libs or directories when a specified path is given.
8311
8312 Daniel (19 June 2001)
8313 - When an FTP transfer is cut off during transfer, curl could present a truly
8314   garbaged error message and in worst case dump core. Thanks to detailed
8315   reports from Shawn Poulson we nailed this.
8316
8317 Daniel (12 June 2001)
8318 - Salvador Dávila provided a fix for FTP range downloads.
8319
8320 - Added a few more test cases from the former test suite to the new file
8321   format. We're now at a total of 26 tests.
8322
8323 Daniel (11 June 2001)
8324 - libcurl's version-info was wrong, as noted by both Domenico Andreoli and
8325   David Odin.
8326
8327 Daniel (7 June 2001)
8328 - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def
8329
8330 - I made SSL certificate failure messages to be more detailed.
8331
8332 Version 7.8
8333
8334 Daniel (7 June 2001)
8335 - SDavila provided a resumed download fix.
8336
8337 Version 7.8-pre4
8338
8339 Daniel (1 June 2001)
8340 - Sterling provided some new PHP examples.
8341
8342 - Changed the CVS hierarchy and the older checkout instruction does no longer
8343   work. We moved the entire source code into a CVS module named 'curl'.
8344
8345 Daniel (31 May 2001)
8346 - CURLOPT_MUTE does not exist anymore. It is still present in the include file
8347   to not cause compiler errors for applications using it, but it isn't used
8348   anywhere in the library.
8349
8350 Version 7.8-pre3
8351
8352 Daniel (31 May 2001)
8353 - Once and for all fixed the _REENTRANT mess for Solaris compiles to present
8354   less warnings.
8355
8356 - Sterling Hughes tirelessly points out and corrects my mistakes...! So,
8357   curl_global_init() now lets the argument flags *SET* what parts to
8358   init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all
8359   known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely
8360   necessary. Man page updated accordingly.
8361
8362 - Fixed the strtok.h include file as it wouldn't compile on all platforms!
8363
8364 Daniel (30 May 2001)
8365 - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were
8366   set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE
8367   option is subject for complete removal...
8368
8369 Version 7.8-pre2
8370
8371 Daniel (30 May 2001)
8372 - Cris Bailiff wrote a makefile for building Solaris packages.
8373
8374 - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and
8375   we discussed and added a few CURL_GLOBAL_* flags in include/curl.h
8376
8377 - Kjetil Jacobsen privately announced his python interface to libcurl,
8378   available at http://pycurl.sourceforge.net/
8379
8380 Daniel (29 May 2001)
8381 - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread-
8382   safe function. Now configure checks for a thread-safe version, and
8383   lib/strtok.c offers one for the systems that don't come with one included!
8384
8385 - Mettgut Jamalla correctly pointed out that the -# progress bar was written
8386   to stderr even though --stderr redirection was used. This is now corrected.
8387
8388 - I moved out the list of contributors from the curl.1 man page and made a
8389   separate docs/THANKS file. It makes the list easier to find, and made it
8390   easier for me to make a separate web page with that same information.
8391
8392   I really do want all you guys mentioned in there to feel you get the credit
8393   you deserve.
8394
8395 - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake
8396
8397 Version 7.8-pre1
8398
8399 Daniel (28 May 2001)
8400 - curl-config now supports '--vernum' that outputs a plain hexadecimal version
8401   of the libcurl version number (using 8 bits for each 3 numbers). Version
8402   7.7.4 appears as 070704
8403
8404 - Wrote man pages for curl_global_init and curl_global_cleanup...
8405
8406 - T. Bharath brought news about the usage of the OpenSSL interface that was
8407   not previously taken into consideration and thus caused libcurl to leak
8408   memory.  The only somewhat sane approach to fix this dilemma, is adding two
8409   two new functions curl_global_init() and curl_global_cleanup() that should
8410   be called *ONCE* by the application using libcurl. The init should be done
8411   only at startup, no matter how many threads the application is gonna use,
8412   and the cleanup should be called when the application has finished using
8413   libcurl completely.
8414
8415   *** UPGRADE NOTICE ***
8416
8417   If you write applications using libcurl, you really want to use the two
8418   functions mentioned above !!!
8419
8420   I can't say I think this is a very beautiful solution, but as OpenSSL
8421   insists on making lots of stuff on a "global" scope, we're forced to walk
8422   the path they point us to.
8423
8424 - Moving more test cases into the new file format.
8425
8426 Version 7.7.4-pre3
8427
8428 Daniel (23 May 2001)
8429 - Introduced a new file format for storing test cases, and thus I had to
8430   modify all the perl test scripts and more (I added a new one). I have not
8431   "ported" all the old test cases to the new format yet, but it'll come.
8432
8433   The main advantage of this new format is that all test data for each test
8434   case is stored in a single file. It gives a better overview for each test
8435   case and a lot less files.
8436
8437 - Andrés García brought a fix for the netscape/mozilla cookie file parsing
8438   function, as it turns out it doesn't always store the path!
8439
8440 Daniel (22 May 2001)
8441 - As was reported anonymously, when FAILONERROR was used, the httpcode was
8442   not stored properly and thus wasn't possibly to read after a transfer with
8443   the curl_easy_getinfo() function. This is now corrected.
8444
8445 - Installed and made use of the following tool versions:
8446     autoconf 2.50
8447     libtool 1.4
8448     automake 1.4-p1
8449
8450   I wouldn't recommend any developer to try to generate things with older
8451   versions than these. Building from CVS will probably more or less require
8452   at least these versions.
8453
8454   As a result of this, the configure script grew to more than double its
8455   previous size!
8456
8457   Arkadiusz Miskiewicz helped me by pointing out I had to remove my
8458   acinclude.m4 file before I could get it working!
8459
8460 Daniel (21 May 2001)
8461 - I made ftps:// work. Added test case 400 to the release archive, as the
8462   first ftps:// test case. Requires stunnel.
8463
8464 - Also made the test cases that runs ssl tests not run if libcurl isn't built
8465   with ssl support.
8466
8467 Daniel (19 May 2001)
8468 - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they
8469   are actually needed. Albert Chin's and Domenico Andreoli's suggestions
8470   helped out.
8471
8472 Version 7.7.4-pre2
8473
8474 Daniel (18 May 2001)
8475 - Nicer configure-check for the OpenSSL headers, which then sets the proper
8476   variable to have curl-config be good. (Albert Chin provided the fix)
8477
8478 - For systems that don't have theiw own 'strlcat()' libcurl provides its own.
8479   It was now renamed to prevent collides with other libs. (After discussions
8480   with Sterling Hughes and the implications this had on PHP builds.)
8481
8482 Daniel (17 May 2001)
8483 - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that
8484   turned out to be a problem with the debian-built 7.7.3-package that
8485   contained files from the 7.7.2 release!
8486
8487 - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to
8488   make programs that use it, not fail when compiling against this version of
8489   libcurl.
8490
8491 Daniel (14 May 2001)
8492 - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent
8493   connections.
8494
8495 Version 7.7.4-pre1
8496
8497 Daniel (14 May 2001)
8498 - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl.
8499
8500 - Added the first HTTPS test to the test suite in the release archive.
8501
8502 Daniel (12 May 2001)
8503 - Jukka Pihl suggested that if (lib)curl is told to verify the peer's
8504   certificate and the peer can't be verified, it should fail and return a
8505   proper error code. I added a brand new error code named
8506   CURLE_SSL_PEER_CERTIFICATE for this purpose.
8507
8508 Daniel (11 May 2001)
8509 - As was discussed with Frederic Lepied a while ago, I now made libcurl not
8510   return error even though no data was transfered on upload/download resume
8511   when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed
8512   from the header file to make any implemenator that uses that to be aware of
8513   the fact that it can't be returned anymore!
8514
8515 - Improved general header-parsing to better allow white spaces and more.
8516
8517 - Rodney Simmons proved the fix I did yesterday was bad and I had to post
8518   another one.
8519
8520 - Ingo Wilken patched away two redirect problems more!
8521   
8522 Daniel (10 May 2001)
8523 - Cris Bailiff correctly noted that the space-after-header problem with
8524   Location: is present on several other places in the libcurl sources.
8525
8526 - Ingo Wilken patched away a problem libcurl had when following Location:
8527   headers with an extra space after the colon.
8528
8529 - Rodney Simmons found out that multiple FTP transfers did not treat relative
8530   directories correctly.
8531
8532 Daniel (9 May 2001)
8533 - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line),
8534   makes curl use the non-standard ftp command "SIZE". If it failed, libcurl
8535   returned error. Starting now, it just don't output the file size instead.
8536   Anonymous bug report.
8537
8538 - stunnel.pm was accidentally left out from the release archive, it is now
8539   added (stunnel is needed to run the https-tests in the test suite)
8540   
8541 Daniel (7 May 2001)
8542 - Corrected two minor compiler warnings due to the FILE * to void * conversion
8543   that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
8544   filed a bug report on this.
8545
8546 Version 7.7.3
8547
8548 Daniel (4 May 2001)
8549 - All callback functions now take 'void *' instead of 'FILE *'. This is made
8550   this way to make it more obvious to people that anything can be passed to
8551   them (by using the apropriate option). After discussions with Sterling
8552   Hughes.
8553
8554 Daniel (3 May 2001)
8555 - Cris Bailiff fixed a chunked transfer encoding problem with persistent
8556   connection that made libcurl fail if the persistent connection used mixed
8557   chunked and non-chunked transfers.
8558
8559 - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be
8560   treated as content-length 0 replies but would cause a "hang" until the
8561   server timed-out and closed the connection.
8562
8563 - Brad Burdick found a minor problem in the docs/examples/Makefile.am
8564
8565 Daniel (27 April 2001)
8566 - Updated the INTERALS document again. It was lagging a bit. I think I made it
8567   more easy to follow now as well.
8568
8569 - Brad Burdick found a problem with persistent connections when curl received
8570   a "Content-Length: 0" header.
8571
8572 - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl
8573   compiled/built on win32. It seems to work for unixes though!
8574
8575 - Dave Hamilton reported weird problems with CURL/PHP that I really can't
8576   explain at the moment. I'm hoping on some help from the PHP crew.
8577
8578 Daniel (26 April 2001)
8579 - I rewrote the FTP command response function. I had to do it to make ftps
8580   work, as the OpenSSL read()-function didn't work the same way the normal
8581   unix read() does, but it was also a huge performance boost. Previously the
8582   function read one byte at a time, now it reads very large chunks, and it
8583   makes a notable speed difference.
8584
8585 Daniel (25 April 2001)
8586 - Connection re-use when not using a proxy didn't work properly for
8587   non-default port numbers.
8588
8589 Daniel (24 April 2001)
8590 - I've noticed that FTPS doesn't work. We attempt to use ssl even for the
8591   data transfer, which causes the transfer to 'hang'... We need to fix this.
8592
8593 - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on
8594   the alredy written perl servers easily.
8595
8596 Daniel (23 April 2001)
8597 - The OpenSSL version string recently modified didn't zero terminate one
8598   of the generated strings properly, which could lead to a crash or simply
8599   weird version string output!
8600
8601 Version 7.7.2
8602
8603 Daniel (22 April 2001)
8604 - Rosimildo da Silva updated the Makefiles for Borland/Windows.
8605
8606 - Eric Rautman pointed out a problem with persistent connections that would
8607   lead to broken Host: headers in the second HTTP request.
8608
8609 Daniel (20 April 2001)
8610 - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote
8611   a 'libcurl overview' man page.
8612
8613 - Spell-fixed some documents.
8614
8615 - S. Moonesamy corrected mistakes in the man page.
8616
8617 - Cris Bailiff fixed the curl_slists options in the perl interface, present
8618   separately in the Curl::easy 1.1.4 package.
8619
8620 Daniel (19 April 2001)
8621 - Linus Nielsen Feltzing removed the decimals from the size variables in the
8622   --write-out output. We hardly ever get fraction of bytes! :-)
8623
8624 Version 7.7.2-pre1
8625
8626 Daniel (19 April 2001)
8627
8628 - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro.
8629
8630 Daniel (18 April 2001)
8631 - Input from Michael Mealling made me add --feature to curl-config. It
8632   displays a list of features that have been built-in in the current
8633   libcurl. The currently available features that can be listed are: SSL, KRB4
8634   and IPv6.
8635
8636 - I committed Cris and Georg's perl interface work. They've got callbacks
8637   working and options that receives those slist pointers.
8638
8639 - Puneet Pawaia detected a problem with resumed downloads that use persistent
8640   connections and I made a rather large writeup to correct this. It is
8641   important that all session-data is stored in the connectdata struct and not
8642   in the main struct as this previously did.
8643
8644 Daniel (17 April 2001)
8645 - Frederic Lepied fixed a ftp resumed download problem and introduced a new
8646   error code that lets applications be able to detect when a resumed download
8647   actually didn't download anything since the whole file is already present.
8648   Should this return OK instead?
8649
8650 - I added 'curl-config.in' to the root dir and configure script. Now, a
8651   curl-config script is made when curl is built. The script can be used to
8652   figure out compile time options used when libcurl was built, which in turn
8653   should be options YOU should use to build applications that use libcurl.
8654
8655   This *-config style is not a new idea, but something that has been used
8656   successfully in other (library based) projects.
8657
8658 - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone
8659   for the If-Modified-Since style headers.
8660
8661 - Georg Schwarz pointed out an extra needed #include file needed in src/main.c
8662   for curl to build on Ultrix.
8663
8664 Daniel (11 April 2001)
8665 - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use
8666   of the environment variable HTTP_PROXY in uppercase may become a security
8667   hazard when people use libcurl in a server/cgi situation where the server
8668   sets the HTTP_*-variables according to incoming headers in the HTTP
8669   request. Thus, a "Proxy:"-header would set that environment variable!
8670
8671   Then, invoking curl_easy_perform() without having an URL set caused a crash.
8672
8673 - S. Moonesamy brought a patch that make curl use non-blocking connects on
8674   windows when connection timeout is set, as it allows windows users to set
8675   that timeout!
8676
8677 - Hirotaka Matsuyuki wrote a Ruby interface to libcurl!
8678
8679 - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface.
8680
8681 - I've written a first shot at a Java interface to libcurl. Many thanks to
8682   Daniel Marell for tirelessly answering to all my basic Java questions. It
8683   works, but it is still very basic.
8684
8685 Daniel (10 April 2001)
8686 - The progress display could get silly when doing multiple file transfers, as
8687   it wasn't properly reset between transfers!
8688
8689 - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made
8690   me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback
8691   function for writing headers. Previously you could only set a different FILE
8692   * when headers are written from within libcurl.
8693
8694 Daniel (7 April 2001)
8695 - Andrés García fixed a problem in curl_escape() and pointed out a flaw in
8696   the curl_easy_setopt man page.
8697
8698 Daniel (6 April 2001)
8699 - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure
8700   change their version define format often...
8701
8702 - curl_formfree() now accepts a NULL pointer without crashing!
8703
8704 Version 7.7.1
8705
8706 Daniel (3 April 2001)
8707 - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to
8708   read bad memory during situations when an (ftp) connection attempt failed.
8709   Also, the lib/Makefile.vc6 was corrected.
8710
8711 - More investigations in the Location: following code made me realize that
8712   it was not clean enough to work transparantly with persistent and non-
8713   persistent connections. I think I've fixed it now.
8714
8715 Daniel (29 March 2001)
8716 - Georg Horn mailed me some corrections for the Curl::easy perl interface.
8717
8718 - Experimental ftps:// support added. It is basically FTP over SSL for the
8719   control connection. It still makes all data transfers going over unencrypted
8720   connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used
8721   that to verify the functionality.
8722
8723 Daniel (27 March 2001)
8724 - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried
8725   to get a file from a site and it fails, the SIGALRM would still be sent
8726   after the timeout-time, quite inexpectedly!
8727
8728 - I added an ftp transfer example to docs/examples/ and I also wrote a tiny
8729   example makefile that can be used as a start when building one of the
8730   examples.
8731
8732 Version 7.7.1-beta1
8733
8734 Daniel (26 March 2001)
8735 - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0
8736   connections (when the server replied a Connection: Keep-Alive) and this
8737   problem was not properly dealt with in 7.7 either. A patch was posted to the
8738   curl-and-php mailing list.
8739
8740 Daniel (24 March 2001)
8741 - Colin Watson reported about a problem and brought a patch that corrected it,
8742   which was about the man page and lines starting with a single quote (') in a
8743   way that gnroff doesn't like.
8744
8745 Daniel (23 March 2001)
8746 - Peter Bray reported correctly that the root makefile used make instead of
8747   $(MAKE) for the test target.
8748
8749 - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not
8750   curl_setopt() which was removed in 7.7!
8751
8752 - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ).
8753
8754 - When following a Location:, libcurl would sometimes write to the URL string
8755   in a way it shouldn't. As the pointer is passed-in to libcurl from an
8756   application, we can't be allowed to write to it. The particular bug report
8757   from 'nk' that brought this up was because he had a read-only URL that then
8758   caused a libcurl crash!
8759
8760 - No longer reads HEAD responses longer than to the last header. Previously,
8761   curl would read the full reply if the connection was a "close" one.
8762
8763 - libcurl did re-use connections way too much. Doing "curl
8764   http://www.{microsoft,ibm}.com" would make it re-use the connection which
8765   made the second request return very odd results.
8766
8767 Daniel (22 March 2001)
8768 - Edin Kadribasic made me aware that curl should not re-send POST requests
8769   when following 302-redirects. I made 302 work like 303 which means curl uses
8770   GET in the following request(s).
8771
8772 - libcurl now reset the "followed-location" counter on each invoke of
8773   curl_easy_perform() as it otherwise would sum up all redirects on the same
8774   connection and thus could reach the maxredirs counter wrongly.
8775
8776 - Jim Drash suggested curl_escape() should not re-encode what already looks
8777   like an encoded sequence and I think that's a fair suggestion.
8778
8779 Version 7.7
8780
8781 Daniel (22 March 2001)
8782 - The configure script now fails with an error message if gethostbyname_r() is
8783   detected but it couldn't figure out how to invoke it (what amount of
8784   arguments it is supposed to get). Reports from Andrés García made me aware
8785   of this need.
8786
8787 - Talking with Jim Drash made me finally put the curl_escape and curl_unescape
8788   functions in the curl.h include file and write man pages for them. The
8789   escape function was modified to use the same interface as the unescape one
8790   had.
8791
8792 - No bug reports at all on the latest betas. Release time coming up.
8793
8794 Version 7.7-beta5
8795
8796 Daniel (19 March 2001)
8797 - Georg Ottinger reported problems with using -C together with -L in the sense
8798   that the -C info got lost when it was redirected. I could not repeat this
8799   problem on the 7.7 branch why I leave this for the moment. Test case 39 was
8800   added to do exactly this, and it seems to do right.
8801
8802 - Christian Robottom Reis reported how his 7.7 beta didn't successfully do
8803   form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header
8804   engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT
8805   and POST operations that I need to add support for. Section 8.2.3 in RFC2616
8806   has all the details. Seems to work now!
8807
8808 Daniel (16 March 2001)
8809 - After having experienced another machine break-down, we're back.
8810
8811 - Georg Horn's perl interface Curl::easy is now included in the curl release
8812   archive. The perl/ directory is now present. Please help me with docs,
8813   examples and updates you think fit.
8814
8815 - Made a new php/ directory in the release archive and moved the PHP examples
8816   into a subdirectory in there. Not much PHP info yet, but I plan to. Please
8817   help me here as well!
8818
8819 - Made libcurl return error if a transfer is aborted in the middle of a
8820   "chunk". It actually enables libcurl to discover premature transfer aborts
8821   even if the Content-Length: size is unknown.
8822
8823 Daniel (15 March 2001)
8824 - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT
8825   option in libcurl. It limits the time curl is allowed to spend in the
8826   connection phase. This differs from -m/--max-time that limits the entire
8827   file transfer operation. Requested by Larry Fahnoe and others.
8828
8829   I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the
8830   item from the TODO.
8831
8832 Version 7.7-beta4
8833
8834 Daniel (14 March 2001)
8835 - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely
8836   again when ENABLE_IPV6 is set.
8837
8838   I need to remake things in the test suite. I can't test the FTP parts with
8839   curl built for IPv6 as it uses a different set of FTP commands then!
8840
8841 - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was
8842   a report meant for our project. Anyway, it said the .netrc parsing didn't
8843   work as supposed, and as I agreed with Lars, I made the netrc parser use
8844   getpwuid() to figure out the home directory of the effective user and try
8845   that netrc. It still uses the environment variable HOME for those that don't
8846   have that function or if the user doesn't return valid pwd info.
8847
8848 - Edin Kadribaic posted a bug report where he got a crash when a fetch with
8849   user+password in the URL followed a Location: to a second URL (absolute,
8850   without name+password). This bug has been around for a long while and
8851   crashes due to a read at address zero. Fixed now. Wrote test case 38, that
8852   tests this.
8853
8854 - Modified the test suite's httpserver slightly to append all client request
8855   data to its log file so that the test script now better can verify a range
8856   of requests and not only the last one, as it did previously.
8857
8858 - Updated the curl man page with --random-file and --egd-file details.
8859
8860 Version 7.7-beta3
8861
8862 Daniel (14 March 2001)
8863 - Björn Stenberg provided similar fixes as Jörn did and some additional patches
8864   for non-SSL compiles.
8865
8866 - I increased the interface number for libcurl as I've removed the low level
8867   functions from the interface. I also took this opportunity to rename the
8868   Curl_strequal function to curl_strequal and Curl_strnequal to
8869   curl_strnequal, as they're public libcurl functions (even if they're still
8870   undocumented).
8871
8872   This will make older programs not capable of using the new libcurl with
8873   just a drop-in replacement.
8874
8875 - Jörn Hartroth updated stuff for win32 compiles:
8876   o config-win32.h was fixed for socklen_t
8877   o lib/ssluse.c had a bad #endif placement
8878   o lib/file.c was made to compile on win32 again
8879   o lib/Makefile.m32 was updated with the new files
8880   o lib/libcurl.def matches the current interface state
8881
8882 Daniel (13 March 2001)
8883 - It only took an hour or so before Jörn Hartroth found a problem in the
8884   chunked transfer-encoding. Given his fine example-site, I could easily spot
8885   the problem and when I re-read the spec (the part I have pasted in the top
8886   of the http_chunks.h file), I realized I had made my state-machine slightly
8887   wrong and didn't expect/handle the trailing CRLF that comes after the data
8888   in each chunk (and those extra two bytes sure feel wasted).
8889
8890   Had to modify test case 34 to match this as well.
8891
8892 Version 7.7-beta2
8893
8894 Daniel (13 March 2001)
8895 - Added the policy stuff to the curl_easy_setopt man page for the two supported
8896   policies.
8897
8898 - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies
8899   CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now
8900   supported, and the "least recently used" is used as default if no policy
8901   is chosen.
8902
8903 Daniel (12 March 2001)
8904 - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
8905   SSL random engine. The random seeding support was also brought to the curl
8906   client with the new options --random-file <file> and --egd-file <file>. I
8907   need some people to really test this to know they work as supposed. Remember
8908   that libcurl now informs (if verbose is on) if the random seed is considered
8909   weak (HTTPS connections).
8910
8911 - Made the chunked transfer-encoding engine detected bad formatted data length
8912   and return error if so (we can't possibly extract sensible data if this is
8913   the case). Added a test case that detects this. Number 36. Now there are 60
8914   test cases.
8915
8916 - Added 5 new libcurl options to curl/curl.h that can be used to control the
8917   persistent connection support in libcurl. They're also documented (fairly
8918   thoroughly) in the curl_easy_setopt.3 man page. Three of them are now
8919   implemented, although not really tested at this point... Anyway, the new
8920   implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT,
8921   CURLOPT_FORBID_REUSE. The ones still left to write code for are:
8922   CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION.
8923
8924 - Made curl (the actual command line tool) use the new libcurl 7.7 persistent
8925   connection support by re-using the same curl handle for every specified file
8926   transfer and after some more test case tweaking we have 100% test case OK.
8927   I made some test cases return HTTP/1.0 now to make sure that works as well.
8928
8929 - Had to add 'Connection: close' to the headers of a bunch of test cases so
8930   that curl behaves "old-style" since the test http server doesn't do multiple
8931   connections... Now I get 100% test case OK.
8932
8933 - The curl.haxx.se site, the main curl mailing list and my personal email are
8934   all dead today due to power blackout in the area where the main servers are
8935   located. Horrible.
8936
8937 - I've made persistance work over a squid HTTP proxy. I find it disturbing
8938   that it uses headers that aren't present in any HTTP standard though
8939   (Proxy-Connection:) and that makes me feel that I'm now on the edge of what
8940   the standard actually defines. I need to get this code excercised on a lot
8941   of different HTTP proxies before I feel safe.
8942
8943   Now I'm facing the problem with my test suite servers (both FTP and HTTP)
8944   not supporting persistent connections and libcurl is doing them now. I have
8945   to fix the test servers to get all the test cases do OK.
8946
8947 Daniel (8 March 2001)
8948 - Guenole Bescon reported that libcurl did output errors to stderr even if
8949   MUTE and NOPROGRESS was set. It turned out to be a bug and happens if
8950   there's an error and no ERRORBUFFER is set. This is now corrected.
8951
8952 Version 7.7-beta1
8953
8954 Daniel (8 March 2001)
8955 - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've
8956   added two source files and I've run some test downloads that look fine.
8957
8958 - HTTP HEAD works too, even on 1.1 servers.
8959
8960 Daniel (5 March 2001)
8961 - The current 57 test cases now pass OK. It would suggest that libcurl works
8962   using the old-style with one connection per handle. The test suite doesn't
8963   handle multiple connections yet so there are no test cases for this.
8964
8965 - I patched the telnet.c heavily to not use any global variables anymore. It
8966   should make it a lot nicer library-wise.
8967
8968 - The file:// support was modified slightly to use the internal connect-first-
8969   then-do approach.
8970
8971 Daniel (4 March 2001)
8972 - More bugs erased.
8973
8974 Version 7.7-alpha2
8975
8976 Daniel (4 March 2001)
8977 - Now, there's even a basic check that a re-used connection is still alive
8978   before it is assumed so. A few first tests have proven that libcurl will
8979   then re-connect instead of re-use the dead connection!
8980
8981 Daniel (2 March 2001)
8982 - Now they work intermixed as well. Major coolness!
8983
8984 - More fiddling around, my 'tiny' client I have for testing purposes now has
8985   proved to download both FTP and HTTP with persistent connections. They do
8986   not work intermixed yet though.
8987
8988 Daniel (1 March 2001)
8989 - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that
8990   curl_slist_append() should take a const char * as second argument. It does
8991   now.
8992
8993 Daniel (22 February 2001)
8994 - The persistent connections start to look good for HTTP. On a subsequent
8995   request, it seems that libcurl now can pick an already existing connection
8996   if a suitable one exists, or it opens a new one.
8997
8998 - Douglas R. Horner mailed me corrections to the curl_formparse() man page
8999   that I applied.
9000
9001 Daniel (20 February 2001)
9002 - Added the docs/examples/win32sockets.c file for our windows friends.
9003
9004 - Linus Nielsen Feltzing provided brand new TELNET functionality and
9005   improvements:
9006
9007   * Negotiation is now passive. Curl does not negotiate until the peer does.
9008   * Possibility to set negotiation options on the command line, currently only
9009     XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
9010   * Now sends the USER environment variable if the -u switch is used.
9011   * Use -t to set telnet options (Linus even updated the man page, awesome!)
9012
9013 - Haven't done this big changes to curl for a while. Moved around a lot of
9014   struct fields and stuff to make multiple connections get connection specific
9015   data in separate structs so that they can co-exist in a nice way. See the
9016   mailing lists for discussions around how this is gonna be implemented. Docs
9017   and more will follow.
9018
9019   Studied the HTTP RFC to find out better how persistent connections should
9020   work. Seems cool enough.
9021
9022 Daniel (19 February 2001)
9023 - Bob Schader brought me two files that help set up a MS VC++ libcurl project
9024   easier. He also provided me with an up-to-date libcurl.def file.
9025
9026 - I moved a bunch of prototypes from the public <curl/curl.h> file to the
9027   library private urldata.h. This is because of the upcoming changes. The
9028   low level interface is no longer being planned to become reality.
9029
9030 Daniel (15 February 2001)
9031 - CURLOPT_POST is not required anymore. Just setting the POST string with
9032   CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
9033   libcurl already works this way, i.e they require only the parameter to
9034   switch on a feature so I think this works well with the rest. Setting a NULL
9035   string switches off the POST again.
9036
9037 - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
9038   Reese helped me define a way how to incorporate persistent connections into
9039   libcurl in a very smooth way. If done right, no change may have to be made
9040   to older programs and they will just start using persistent connections when
9041   applicable!
9042
9043 Daniel (13 February 2001)
9044 - Changed the word 'timeouted' to 'timed out' in two different error messages.
9045   Suggested by Larry Fahnoe.
9046
9047 Version 7.6.1
9048
9049 Daniel (9 February 2001)
9050 - Frank Reid and Cain Hopwood provided information and research around a HTTPS
9051   PUT/upload problem we seem to have. No solution found yet.
9052
9053 Daniel (8 February 2001)
9054 - An interesting discussion is how to specify an empty password without having
9055   curl ask for it interactively? The current implmentation takes an empty
9056   password as a request for a password prompt. However, I still want to
9057   support a blank user field. Thus, today if you enter "-u :" (without user
9058   and password) curl will prompt for the password. Tricky. How would you
9059   specify you want the prompt otherwise?
9060
9061 - Made the netrc parse result possible to use for other protocols than FTP and
9062   HTTP (such as the upcoming TELNET fixes).
9063
9064 - The previously mentioned "MSVC++ problems" turned out to be a non-issue.
9065
9066 - Added a HTTP file upload code example in the docs/examples/ section on
9067   request.
9068
9069 - Adjusted the FTP response fix slightly.
9070
9071 Version 7.6.1-pre3
9072
9073 Daniel (7 February 2001)
9074 - S. Moonesamy found a flaw in the response reading function for FTP that
9075   could make libcurl not get out of the loop properly when it should, if
9076   libcurl got -1 returned when reading the socket.
9077
9078 - I found a similar mistake in http.c when using a proxy and reading the
9079   results from the proxy connection.
9080
9081 Daniel (6 February 2001)
9082 - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set
9083   for the debug build to work.
9084
9085 - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver
9086   brought up yesterday.
9087
9088 Daniel (5 February 2001)
9089 - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to
9090   a bunch of different areas within libcurl.
9091
9092 - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with
9093   the 'static' keyword on a number of libcurl functions. I might need to add a
9094   patch that redefines static when libcurl is compiled with that compiler.
9095   How do I know when VC++ compiles, anyone?
9096
9097 Daniel (4 February 2001)
9098 - curl_getinfo() was extended with two new options:
9099   CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They
9100   return the full assumed content length of the transfer in the given
9101   direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length:
9102   size of a HTTP download. Added descriptions to the man page as well. This
9103   was done after discussions with Bob Schader.
9104
9105 Daniel (3 February 2001)
9106 - Ingo Ralf Blum provided another fix that makes curl build under the more
9107   recent cygwin installations. It seems they've changed the preset defines to
9108   not include WIN32 anymore.
9109
9110 Version 7.6.1-pre2
9111
9112 Daniel (31 January 2001)
9113 - Curl_read() and curl_read() now return a ssize_t for the size, as it had to
9114   be able to return -1. The telnet support crashed due to this and there was a
9115   possibility to weird behavior all over. Linus Nielsen Feltzing helped me
9116   find this.
9117
9118 - Added a configure.in check for a working getaddrinfo() if IPv6 is requested.
9119   I also made the configure script feature --enable-debug which sets a couple
9120   of compiler options when used. It assumes gcc.
9121
9122 Daniel (30 January 2001)
9123 - I finally took a stab at the long-term FIXME item I've had on myself, and
9124   now libcurl will properly work when doing a HTTP range-request that follows
9125   a Location:. Previously that would make libcurl fail saying that the server
9126   doesn't seem to support range requests.
9127
9128 Daniel (29 January 2001)
9129 - I added a test case for the HTTP PUT resume thing (test case 33).
9130
9131 Version 7.6.1-pre1
9132
9133 Daniel (29 January 2001)
9134 - Yet another Content-Range change. Ok now? Bob Schader checks from his end 
9135   and it works for him.
9136
9137 Daniel (27 January 2001)
9138 - So the HTTP PUT resume fix wasn't good. There should appearantly be a
9139   Content-Range header when resuming a PUT.
9140
9141 - I noticed I broke the download-check that verifies that a resumed HTTP
9142   download is actually resumed. It got broke because my new 'httpreq' field
9143   in the main curl struct. I should get slapped. I added a test case for
9144   this now, so I won't be able to ruin this again without noticing.
9145
9146 - Added a test case for content-length verifying when downloading HTTP.
9147
9148 - Made the progress meter title say if the transfer is being transfered. It
9149   makes the output slightly better for resumes.
9150
9151 - When dealing with Location: and HTTP return codes, libcurl will not attempt
9152   to follow the spirit of RFC2616 better. It means that when POSTing to a
9153   URL that is being following to a second place, the standard will judge on
9154   what to do. All HTTP codes except 303 and 305 will cause curl to make a
9155   second POST operation. 303 will make a GET and 305 is not yet supported.
9156
9157   I also wrote two test cases for this POST/GET/Location stuff.
9158
9159 Version 7.6
9160
9161 Daniel (26 January 2001)
9162 - Lots of mails back and forth with Bob Schader finally made me add a small
9163   piece of code in the HTTP engine so that HTTP upload resume works. You can
9164   now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT
9165   the ending part of the file starting at given offet to the specified URL.
9166
9167 Version 7.6-pre4
9168
9169 Daniel (25 January 2001)
9170 - I took hold of Rick Jones' question why we don't use recv() and send() for
9171   reading/writing to the sockets and I've now modified the sread() and
9172   swrite() macros to use them instead. If nothing else, they could be tested
9173   in the next beta-round coming right up.
9174
9175 - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied
9176   his research results in how to fix this. It turns out we have to invoke the
9177   function several times in some cases. The same goes for the SSL_write().
9178
9179   I made some rather drastic changes all over libcurl to make all writes and
9180   reads get done on one single place so that this repeated-attempts thing
9181   would only have to be implemented at one point.
9182
9183 - Rick Jones spotted that the 'total time' counter really didn't measure the
9184   total time very accurate on subsecond levels.
9185
9186 - Johan Nilsson pointed out the need to more clearly specify that the timeout
9187   value you set for a download is for the *entire* download. There's currently
9188   no option available that sets a timeout for the connection phase only.
9189
9190 Daniel (24 January 2001)
9191 - Ingo Ralf Blum submitted a series of patches required to get curl to compile
9192   properly with cygwin.
9193
9194 - Robert Weaver posted a fix for the win32 section of the curl_getenv() code
9195   that corrected a potential memory leak.
9196
9197 - Added comments in a few files in a sudden attempt to make the sources more
9198   easy to read and understand!
9199
9200 Daniel (23 January 2001)
9201 - Added simple IPv6 detection in the configure script and made the version
9202   string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be
9203   set if curl is compiled with IPv6 support enabled.
9204
9205 - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when
9206   IPv6 gets enabled soon, we can use URLs like '[0::1]:80'...
9207
9208 - Made the URL globbing in the client possible to fail silently if there's an
9209   error in the globbing. It makes it almost intuitive, so when you don't
9210   follow the syntax rules, globbing is simply switched off and the raw string
9211   is used instead.
9212
9213   I still think we'll get problems with IPv6-style IP-addresses when we *want*
9214   globbing on parts of the URL as the initial part of the URL will for sure
9215   seriously confuse the globber.
9216
9217 Daniel (22 January 2001)
9218 - Björn Stenberg supplied a progress meter patch that makes it look better even
9219   during slow starts. Previously it made some silly assumptions...
9220
9221 - Added two FTP tests for -Q and -Q - stuff since it was being discussed on
9222   the mailing list. Had to correct the ftpserver.pl too as it bugged slightly.
9223
9224 Daniel (19 January 2001)
9225 - Made the Location: parsers deal with any-length URLs. Thus I removed the last
9226   code that restricts the length of URLs that curl supports.
9227
9228 - Added a --globoff test case (#28) and it quickly identified a memory problem
9229   in src/main.c that I took care of.
9230
9231 Version 7.6-pre3
9232
9233 Daniel (17 January 2001)
9234 - Made the two former files lib/download.c and lib/highlevel.c become the new
9235   lib/transfer.c which makes more sense. I also did the rename from Transfer()
9236   to Curl_Transfer() in the other source files that use the transfer function
9237   in the spirit of using Curl_ prefix for library-scoped global symbols.
9238
9239 Daniel (11 January 2001)
9240 - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[]
9241   letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly
9242   mention these letters to be escaped. This was posted as a feature request by
9243   Jorge Gutierrez and as a bug by Terry.
9244
9245 - Short options to curl that requires parameters can now be specified without
9246   having the option and its parameter space separated. -ofile works as good as
9247   -o file. -m20 is equal to -m 20. Do note that this goes for single-letter
9248   options only, verbose --long-style options still must be separated with
9249   space from their parameters.
9250
9251 Daniel (8 January 2001)
9252 - Francis Dagenais reported that the SCO compiler still fails when compiling
9253   curl due to that getpass_r() prototype. I've now put it around #ifndef
9254   HAVE_GETPASS_R in an attempt to please the SCO systems.
9255
9256 - Made some minor corrections to get the client to cleanup properly and I made
9257   the separator work again when getting multiple globbed URLs to stdout.
9258
9259 - Worked with Loic Dachary to get the make dist and make distcheck work
9260   correctly. The 'maketgz' script is now using the automake generated 'make
9261   dist' when creating release archives. Loic successfully made 'make rpms'
9262   automatically build RPMs!
9263
9264 Loic Dachary (6 January 2001)
9265 - Automated generation of rpm packages, no need to be root.
9266
9267 - make distcheck generates a proper distribution (EXTRA_DIST
9268   in all Makefile.am modified to match FILES).
9269
9270 Daniel (5 January 2001)
9271 - Huge client-side hack: now multiple URLs are supported. Any number of URLs
9272   can be specified on the command line, and they'll all be downloaded. There
9273   must be a corresponding -o or -O for each URL or the data will be written to
9274   stdout. This needs more testing, time to release a 7.6-pre package.
9275
9276 - The krb4 support was broken in the release. Fixed now.
9277
9278 - Huge internal symbol rename operation. All non-static but still lib-internal
9279   symbols should now be prefixed with 'Curl_' to prevent collisions with other
9280   libs. All public symbols should be prefixed with 'curl_' and the rest should
9281   be static and thus invisible to the outside world. I updated the INTERNALS
9282   document to say this as well.
9283
9284 Version 7.5.2
9285
9286 Daniel (4 January 2001)
9287 - As Kevin P Roth suggested, I've added text to the man page for every command
9288   line option and what happens when you specify that option more than
9289   once. That hasn't been exactly crystal clear before.
9290
9291 - Made the configure script possible to run from outside the source-tree. For
9292   odd reasons I can't build curl properly outside though. It has to do with
9293   curl's dependencies on libcurl...
9294
9295 - Cut off all older (dated 1999 and earlier) CHANGES entries from this file.
9296   The older piece is named CHANGES.0 and is added to the CVS repository in
9297   case anyone would need it.
9298
9299 - I added another file 'CVS-INFO' to the CVS. It contains information about
9300   files in the CVS that aren't included in release archives and how to build
9301   curl when you get the sources off CVS.
9302
9303 - Updated CONTRIBUTE and FAQ due to the new license.
9304
9305 Daniel (3 January 2001)
9306 - Renamed README.libcurl to LIBCURL
9307
9308 - Changed headers in all sources files to the new dual license concept of
9309   curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated
9310   accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the
9311   release archive.
9312 Daniel (30 December 2000)
9313 - Made all FTP commands get sent with the trailing CRLF in one single write()
9314   as splitting them up seems to confuse at least some firewalls (FW-1 being
9315   one major).
9316
9317 Daniel (19 December 2000)
9318 - Added file desrciptor and FILE handle leak detection to the memdebug system
9319   and thus I found and removed a file descriptor leakage in the ftp parts
9320   that happened when you did PORTed downloads.
9321
9322 - Added an include <stdio.h> in <curl/curl.h> since it uses FILE *.
9323
9324 Daniel (12 December 2000)
9325 - Multiple URL downloads with -O was still bugging. Not anymore I think or
9326   hope, or at least I've tried... :-O
9327
9328 - Francois Petitjean fixed another -O problem
9329
9330 Version 7.5.1
9331
9332 Daniel (11 December 2000)
9333 - Cleaned up a few of the makefiles to use unix-style newlines only. As Kevin
9334   P Roth found out, at least one CVS client behaved wrongly when it found
9335   different newline conventions within the same file.
9336
9337 - Albert Chin-A-Young corrected the LDFLAGS use in the configure script for
9338   the SSL stuff.
9339
9340 Daniel (6 December 2000)
9341 - Massimo Squillace correctly described how libcurl could use session ids when
9342   doing SSL connections.
9343
9344 - James Griffiths found out that curl would crash if the file you specify with
9345   -o is shorter than the URL! This took some hours to fully hunt down, but it
9346   is fixed now.
9347
9348 Daniel (5 December 2000)
9349 - Jaepil Kim sent us makefiles that build curl using the free windows borland
9350   compiler. The root makefile now accepts 'make borland' to build curl with
9351   that compiler.
9352
9353 - Stefan Radman pointed out that the test makefiles didn't use the PERL
9354   variable that the configure scripts figure out. Actually, you still need
9355   perl in the path for the test suite to run ok.
9356
9357 - Rich Gray found numerous portability problems:
9358   * The SCO compiler got an error on the getpass_r() prototype in getpass.h
9359     since the curl one differed from the SCO one
9360   * The HPUX compiler got an error because of how curl did the sigaction
9361     stuff and used a define HPUX doesn't have (or need).
9362   * A few more problems remain to be researched.
9363
9364 - Paul Harrington experienced a core dump using https. Not much details yet.
9365
9366 Daniel (4 December 2000)
9367 - Jörn Hartroth fixed a problem with multiple URLs and -o/-O.
9368
9369 Version 7.5
9370
9371 Daniel (1 December 2000)
9372 - Craig Davison gave us his updates on the VC++ makefiles, so now curl should
9373   build fine with the Microsoft compiler on windows too.
9374
9375 - Fixed the libcurl versioning so that we don't ruin old programs when
9376   releasing new shared library interfaces.
9377
9378 Daniel (30 November 2000)
9379 - Renamed docs/README.curl to docs/MANUAL to better reflect what the document
9380   actually contains.
9381
9382 Daniel (29 November 2000)
9383 - I removed a bunch of '#if 0' sections from the code. They only make things
9384   harder to follow. After all, we do have all older versions in the CVS.
9385
9386 Version 7.5-pre5
9387
9388 Daniel (28 November 2000)
9389 - I filled in more error codes in the man page error code list that had been
9390   lagging.
9391
9392 - James Griffiths mailed me a fine patch that introduces the CURLOPT_MAXREDIRS
9393   libcurl option. When used, it'll prevent location following more than the
9394   set number of times. It is useful to break out of endless redirect-loops.
9395
9396 Daniel (27 November 2000)
9397 - Added two test cases for file://.
9398
9399 Daniel (22 November 2000)
9400 - Added the libcurl CURLOPT_FILETIME setopt, when set it tries to get the
9401   modified time of the remote document. This is a special option since it
9402   involves an extra set of commands on FTP servers. (Using the MDTM command
9403   which is not in the RFC959)
9404
9405   curl_easy_getinfo() got a corresponding CURLINFO_FILETIME to get the time
9406   after a transfer. It'll return a zero if CURLOPT_FILETIME wasn't used or if
9407   the time wasn't possible to get.
9408
9409   --head/-I used on a FTP server will now present a 'Last-Modified:' header
9410   if curl could get the time of the specified file.
9411
9412 - Added the option '--cacert [file]' to curl, which allows a specified PEM
9413   file to be used to verify the peer's certificate when doing HTTPS
9414   connections. This has been requested, rather recently by Hulka Bohuslav but
9415   others have asked for it before as well.
9416
9417 Daniel (21 November 2000)
9418 - Numerous fixes the test suite has brought into the daylight:
9419
9420    * curl_unescape() could return a too long string
9421    * on ftp transfer failures, there could be memory leaks
9422    * ftp CWD could use bad directory names
9423    * memdebug now uses the mprintf() routines for better portability
9424    * free(NULL) removed when doing resumed transfers
9425
9426 - Added a bunch of test cases for FTP.
9427
9428 - General cleanups to make less warnings with gcc -Wall -pedantic.
9429
9430 - I made the tests/ftpserver.pl work with the most commonly used ftp
9431   operations. PORT, PASV, RETR, STOR, LIST, SIZE, USER, PASS all work now. Now
9432   all I have to do is integrate the ftp server doings in the runtests.pl
9433   script so that ftp tests can be run the same way http tests already run.
9434
9435 Daniel (20 November 2000)
9436 - Made libcurl capable of dealing with any-length URLs. The former limit of
9437   4096 bytes was a bit annoying when people wanted to use curl to really make
9438   life tough on a web server. Now, the command line limit is the most annoying
9439   but that can be circumvented by using a config file.
9440
9441   NOTE: there is still a 4096-byte limit on URLs extracted from Location:
9442   headers.
9443
9444 - Corrected the spelling of 'resolve' in two error messages.
9445
9446 - Alexander Kourakos posted a bug report and a patch that corrected it! It
9447   turned out that lynx and wget support lowercase environment variable names
9448   where curl only looked for the uppercase versions. Now curl will use the
9449   lowercase versions if they exist, but if they don't, it'll use the uppercase
9450   versions.
9451
9452 Daniel (17 November 2000)
9453 - curl_formfree() was added. How come no one missed that one before? I ran the
9454   test suite with the malloc debug enabled and got lots of "nice" warnings on
9455   memory leaks. The most serious one was this. There were also leaks in the
9456   cookie handling, and a few errors when curl failed to connect and similar
9457   things. More tests cases were added to cover up and to verify that these
9458   problems have been removed.
9459
9460 - Mucho updated config file parser (I'm dead tired of all the bug reports and
9461   weird behaviour I get on the former one). It works slightly differently now,
9462   although I doubt many people will notice the differences. The main
9463   difference being that if you use options that require parameters, they must
9464   both be specified on the same line. With this new parser, you can also
9465   specify long options without '--' and you may separate options and
9466   parameters with : or =. It makes a config file line could look like:
9467
9468         user-agent = "foobar and something"
9469
9470   Parameters within quotes may contain spaces. Without quotes, they're
9471   expected to be a single non-space word.
9472
9473   Had to patch the command line argument parser a little to make this work.
9474
9475 - Added --url as an option to allow the URL to be specified this way. It makes
9476   way nicer config files. The previous way of specifying URLs in the config
9477   file doesn't work anymore.
9478
9479 Daniel (15 November 2000)
9480 - Using certain characters in usernames or passwords for HTTP authentication
9481   failed. This was due to the mprintf() that had a silly check for letters,
9482   and if they weren't isprint() they weren't outputed "as-is". This caused
9483   passwords and usernames using '§' (for example) to fail.
9484
9485 Version 7.4.2
9486
9487 Daniel (15 November 2000)
9488 - 'tests/runtests.pl' now sorts the test cases properly when 'all' is used.
9489
9490 Daniel (14 November 2000)
9491 - I fell over the draft-ietf-ftpext-mlst-12.txt Internet Draft titled
9492   "Extensions to FTP" that contains a defined way how the ftp command SIZE
9493   could be assumed to work.
9494
9495 - Laurent Papier posted a bug report about using "-C -" and FTP uploading a
9496   file that isn't prsent on the server. The server might then return a 550 and
9497   curl will fail. Should it instead as Laurent Papier suggests, start
9498   uploading from the beginning as a normal upload?
9499
9500 Daniel (13 November 2000)
9501 - Fixed a crash with the followlocation counter.
9502
9503 - While writing test cases for the test suite, I discovered an old limitation
9504   that prevented -o and -T to be used at the same time. I removed this
9505   immediately as this has no relevance in the current libcurl.
9506   
9507 - Chris Faherty fixed a free-twice problem in lib/file.c
9508
9509 - I fixed the perl http server problem in the test suite.
9510
9511 Version 7.4.2 pre4
9512
9513 Daniel (10 November 2000)
9514 - I've (finally) started working on the curl test suite. It is in the new
9515   tests/ directory. It requires sh and perl. There's a TCP server in perl and
9516   most of the other stuff running a pretty simple shell script.
9517
9518   I've only made four test cases so far, but it proves the system can work.
9519
9520 - Laurent Papier noticed that curl didn't set TYPE when doing --head checks
9521   for sizes on FTP servers. Some servers seem to return different sizes
9522   depending on whether ASCII or BINARY is used!
9523
9524 - Laurent Papier detected that if you appended a FTP upload and everything was
9525   already uploaded, curl would hang.
9526
9527 - Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the
9528   getpass_r() function it seems some systems actually have.
9529   
9530 - Venkataramana Mokkapati detected a bug in the cookie parser and corrected
9531   it.  If the cookie was set for the full host name (domain=full.host.com),
9532   the cookie was never sent back because of a faulty length comparison between
9533   the set domain length and the current host name.
9534
9535 Daniel (9 November 2000)
9536 - Added a configure check for gethostbyname in -lsocket (OS/2 seems to need
9537   it). Added a check for RSAglue/rsaref for the cases where libcrypto is found
9538   but libssl isn't. I haven't verified this fix yet though, as I have no
9539   system that requires those libs to build.
9540   
9541 Version 7.4.2 pre3
9542
9543 Daniel (7 November 2000)
9544 - Removed perror() outputs from getpass.c. Angus Mackay also agreed to a
9545   slightly modified license of the getpass.c file as the prototype was changed.
9546
9547 Daniel (6 November 2000)
9548 - Added possibility to set a password callback to use instead of the built-in.
9549   They're controled with curl_easy_setopt() of course, the tags are
9550   CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA.
9551
9552 - Used T. Bharath's thinking and fixed the timers that showed terribly wrong
9553   times when location: headers were followed.
9554
9555 - Emmanuel Tychon discovered that curl didn't really like user names only in
9556   the URL. I corrected this and I also fixed the since long living problem
9557   with URL encoded user names and passwords in the URLs. They should work now.
9558   
9559 Daniel (2 November 2000)
9560 - When I added --interface, the new error code that was added with it was
9561   inserted in the wrong place and thus all error codes from 35 and upwards got
9562   increased one step. This is now corrected, we're back at the previous
9563   numbers. All new exit codes should be added at the end.
9564
9565 Daniel (1 November 2000)
9566 - Added a check for signal() in the configure script so that if sigaction()
9567   isn't present, we can use signal() instead.
9568
9569 - I'm having a license discussion going on privately. The issue is yet again
9570   GPL-licensed programs that have problems with MPL. I am leaning towards
9571   making a kind of dual-license that will solve this once and for all...
9572
9573 Daniel (31 October 2000)
9574 - Added the packages/ directory. I intend to let this contain some docs and
9575   templates on how to generate custom-format packages for various platforms.
9576   I've now removed the RPM related curl.spec files from the archive root.
9577
9578 Daniel (30 October 2000)
9579 - T. Bharath brought a set of patches that bring new functionality to
9580   curl_easy_getinfo() and curl_easy_setopt(). Now you can request peer
9581   certificate verification with the *setopt() CURLOPT_SSL_VERIFYPEER option
9582   and then use the CURLOPT_CAINFO to set the certificate to verify the remote
9583   peer against. After an such an operation with a verification request, the
9584   *_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about
9585   whether the verification succeeded or not.  
9586
9587 Daniel (27 October 2000)
9588 - Georg Horn brought us a splendid patch that solves the long-standing
9589   annoying problem with timeouts that made curl exit with silly exit codes
9590   (which as been commented out lately). This solution is sigaction() based and
9591   of course then only works for unixes (and only those unixes that actually
9592   have the sigaction() function).
9593
9594 Daniel (26 October 2000)
9595 - Björn Stenberg supplied a patch that fixed the flaw mentioned by Kevin Roth
9596   that made the password get echoed when prompted for interactively. The
9597   getpass() function (now known as my_getpass()) was also fixed to not use any
9598   static buffers. This also means we cannot use the "standard" getpass()
9599   function even for those systems that have it, since it isn't thread-safe.
9600   
9601 - Kevin Roth found out that if you'd write a config file with '-v url', the
9602   url would not be used as "default URL" as documented, although if you wrote
9603   it 'url -v' it worked! This has been corrected now.
9604
9605 - Kevin Roth's idea of using multiple -d options on the same command line was
9606   just brilliant, and I couldn't really think of any reason why we shouldn't
9607   support it! The append function always append '&' and then the new -d
9608   chunk. This enables constructs like the following:
9609
9610         curl -d name=daniel -d age=unknown foobarsite.com
9611
9612 Daniel (24 October 2000)
9613 - I fixed the lib/memdebug.c source so that it compiles on Linux and other
9614   systems. It will be useful one day when someone else but me wants to run the
9615   memory debugging system.
9616
9617 Daniel (23 October 2000)
9618 - I modified the maketgz and configure scripts, so that the configure script
9619   will fetch the version number from the include/curl/curl.h header files, and
9620   then the maketgz doesn't have to rebuild the configure script when I build
9621   release-archives.
9622
9623 - Björn Stenberg and Linus Nielsen correctly pointed out that curl was silly
9624   enough to not allow @-letters in passwords when they were specified with the
9625   -u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also
9626   suggests that curl probably should url-decode the password piece of an URL
9627   so that you could pass an encoded @-letter there...
9628   
9629 Daniel (20 October 2000)
9630 - Yet another http server barfed on curl's request that include the port
9631   number in the Host: header always. I now only include the port number if it
9632   isn't the default (80 for HTTP, 443 for HTTPS). www.perl.com turned out to
9633   run one of those nasty servers.
9634
9635 - The PHP4 module for curl had problems with referer that seems to have been
9636   corrected just yesterday. (Sterling Hughes of the PHP team confirmed this)
9637
9638 Daniel (17 October 2000)
9639 - Vladimir Oblomov reported that the -Y and -y options didn't work. They
9640   didn't work for me either. This once again proves we should have that test
9641   suite...
9642   
9643 - I finally changed the error message libcurl returns if you try a https://
9644   URL when the library wasn't build with SSL enabled. It will now return this
9645   error:
9646         "libcurl was built with SSL disabled, https: not supported!"
9647
9648   I really hope it will make it a bit clearer to users where the actual
9649   problem lies.
9650
9651 Version 7.4.1
9652
9653 Daniel (16 October 2000)
9654 - I forgot to remove some of the malloc debug defines from the makefiles in
9655   the release archive (of course).
9656
9657 Version 7.4
9658
9659 Daniel (16 October 2000)
9660 - The buffer overflow mentioned below was posted to bugtraq on Friday 13th.
9661
9662 Daniel (12 October 2000)
9663 - Colin Robert Phipps elegantly corrected a buffer overflow. It could be used
9664   by an evil ftp server to crash curl. I took the opportunity of replacing a
9665   few other sprintf()s into snprintf()s as well.
9666
9667 Daniel (11 October 2000)
9668 - Found some more memory leaks. This new simple memory debugger has turned out
9669   really useful!
9670
9671 Version 7.4 pre6
9672
9673 Daniel (9 October 2000)
9674 - Florian Koenig pointed out that the bool typedef in the curl/curl.h include
9675   file was breaking PHP 4.0.3 compiling. The bool typedef is not used in the
9676   public interface and was wrongly inserted in that header file.
9677
9678 - Jörg Hartroth corrected a minor memory leak in the src/urlglob.c stuff. It
9679   didn't harm anyone since the memory is free()ed on exit anyway.
9680
9681 - Corrected the src/main.c. We use the _MPRINTF_REPLACE #define to use our
9682   libcurl-printf() functions. This gives us snprintf() et al on all
9683   platforms. I converted the allocated useragent string to one that uses a
9684   local buffer.
9685
9686 - I've set an #if 0 section around the Content-Transfer-Encoding header
9687   generated in lib/formdata.c. This will hopefully make curl do more
9688   PHP-friendly multi-part posts.
9689
9690 Version 7.4 pre5
9691
9692 Daniel (9 October 2000)
9693 - Nico Baggus found out that curl's ability to force a ASCII download when
9694   using FTP was no longer working! I corrected this. This problem was probably
9695   introduced when I redesigned libcurl for version 7.
9696
9697 - Georg Horn provided a source example that proved a memory leak in libcurl.
9698   I added simple memory debugging facilities and now we can make libcurl log
9699   all memory fiddling functions. An additional perl script is used to analyze
9700   the output logfile and to match malloc()s with free()s etc. The memory leak
9701   Georg found turned out to be the main cookie struct that cookie_cleanup()
9702   didn't free! The perl script is named memanalyze.pl and it is available in
9703   the CVS respository, not in the release archive.
9704
9705 Daniel (8 October 2000)
9706 - Georg Horn found a GetHost() problem. It turned out it never assigned the
9707   pointer in the third argument properly! This could make a crash, or at best
9708   a memory leak!
9709
9710 Version 7.4 pre4
9711
9712 Daniel (6 October 2000)
9713 - Is the -F post following the RFC 1867 spec? We had this dicussion on the
9714   mailing list since it appears curl can't post -F form posts to a PHP
9715   receiver... I've been in touch with the PHP developers about this.
9716
9717 - Domenico Andreoli found out that the long option '--proxy' wasn't working
9718   anymore! The option parser got confused when I added the --proxytunnel for
9719   7.3. This was indeed a very old flaw that hasn't turned up until now...
9720
9721 - Jörn Hartroth provided patches, updated makefiles and two new files for DLL
9722   stuff on win32. He also pointed out that lib source files were compiled with
9723   -I../src which isn't only wrong but plain stupid!
9724
9725 - Troels Walsted Hansen fixed a problem with HTTP resume. Curl previously used
9726   a local variable badly, that could lead to crashes.
9727
9728 Version 7.4 pre3
9729
9730 Daniel (4 October 2000)
9731 - More docs written. The curl_easy_getinfo.3 man page is now pretty accurate,
9732   as is the -w section in curl.1. I added two options to enable the user to
9733   get information about the received headers' size and the size of the HTTP
9734   request. T. Bharath requested them.
9735   
9736 Daniel (3 October 2000)
9737 - Corrected a sever free() before use in the new add_buffer_send()! ;-)
9738
9739 Version 7.4 pre2
9740
9741 Daniel (3 October 2000)
9742 - Jason S. Priebe sent me patches that changed the way curl issues HTTP
9743   requests. The entire request is now issued in one single shot. It didn't do
9744   this previously, and it has turned out that since the common browsers do it
9745   this way, some sites have turned out to work with browsers but not with
9746   curl! Although this is not a client-side problem, we want to be able to
9747   fully emulate browsers, and thus we have now adjusted the networking layer
9748   to slightly more appear as a browser. I adjusted Jason's patch, the faults
9749   are probably mine.
9750
9751 Daniel (2 October 2000)
9752 - Anyone who ever uploaded data with curl on a slow link has noticed that the
9753   progess meter is updated very infrequently. That is due to the large buffer
9754   size curl is using. It reads 50Kb and sends it, updates the progress meter
9755   and loops. 50Kb is very much on a slow link, although it is pretty neat to
9756   use on a fast one.
9757
9758   I've now made an adjustment that makes curl use a 2Kb buffer for uploads to
9759   start with. If curl's average upload speed is faster than buffer size bytes
9760   per second, curl will increase the used buffer size up to max 50Kb. It
9761   should make the progress meter work better.
9762   
9763 Version 7.4 pre1
9764
9765 Daniel (29 September 2000)
9766 - Ripped out the -w stuff from the library and put in the curl tool. It gets
9767   all the relevant info from the library using the new curl_easy_getinfo()
9768   function.
9769
9770 - brad at openbsd.org mailed me a patch that corrected my kerberos mistake and
9771   removed a compiler warning from hostip.c that OpenBSD people get.
9772
9773 Daniel (28 September 2000)
9774 - Of course (I should probably get punished somehow) I didn't properly correct
9775   the #include lines for the base64 stuff in the kerberos sources in the just
9776   released 7.3 package. They still include the *_krb.h files! Now, the error
9777   is sooo very easy to spot and fix so I won't bother with a quick bug fix
9778   release. I'll post a patch whenever one is needed instead. It'll be
9779   available in the CVS in a few minutes anyway.
9780
9781 Version 7.3
9782
9783 Daniel (28 September 2000)
9784 - Removed the base64_krb.[ch] files. They've now replaced the former
9785   base64.[ch] files.
9786
9787 Daniel (26 September 2000)
9788 - Updated some docs.
9789
9790 - I changed the OpenSSL fix to work with older versions as well. The posted
9791   patch was only working with 0.9.6 and no older ones.
9792   
9793 Version 7.3-pre8
9794
9795 Daniel (25 September 2000)
9796 - Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and
9797   showed us what needed to get patched in order to make it build properly
9798   again.
9799
9800 - Dirk Kruschewski found a bug in the cookie parser. I made an alternative
9801   approach to the solution Dirk himself suggested. The bug made a cookie
9802   header that didn't end with a trailing semicolon to not get parsed.
9803
9804 - I've marked -c and -t deprecated now. If you use any of them, curl will tell
9805   you to use "-C -" or "-T -" instead. I don't think occupying two letters for
9806   nearly identical functions is good use. Also, -T - kind of follows the curl
9807   tradition of using - for stdin where a file name is expected.
9808
9809 Daniel (23 September 2000)
9810 - Martin Hedenfalk provided the patch that finally made the krb4 ftp upload
9811   work!
9812
9813 Daniel (21 September 2000)
9814 - The kerberos code is not quite thread-safe yet. There are a few more globals
9815   that need to be take care of. Let's get the upload working first!
9816
9817 Daniel (20 September 2000)
9818 - Richard Prescott solved another name lookup buffer size problem. I took this
9819   opportunity to rewrite the GetHost() function. With these large buffer
9820   sizes, I think keeping them as local arrays quickly turn ugly. I now use
9821   malloc() to get the buffer memory. Thanks to this, I now can realloc() to a
9822   large buffer in case of demand (errno == ERANGE) in case a solution like
9823   that would become necessary. I still want to avoid that kind of nastiness.
9824
9825 - Tried to compile and run curl on Linux for alpha and FreeBSD for alpha. Went
9826   as smooth as it could.
9827
9828 - Added a docs/examples directory with two tiny example sources that show how
9829   to use libcurl. I hope users will supply me with more useful examples
9830   further on.
9831
9832 - Applied a patch by Jörn Hartroth to no longer use the word 'inteface' in the
9833   config struct in the src/main.c file since certain compilers have that word
9834   "reservered".  I figure that is some kind of C++ decease.
9835
9836 - Updated the curl.1 man page with --interface and --krb4.
9837
9838 - Modified the base64Encode() function to work like the kerberos one, so that
9839   I could remove the use of that. There is no need for *two* base64 encoding
9840   functions! ;-)
9841
9842 Version 7.3pre5
9843
9844 Daniel (19 September 2000)
9845 - The kerberos4-layer source code that is much "influenced" by the original
9846   krb4 source code, through yafc into curl, was using quite a lot of global
9847   variables. libcurl can't work properly with globals like that why I had to
9848   clean up almost every function in the new security.c to make them use
9849   connection specific variables instead of the globals. I just hope I didn't
9850   destroy anything now... :-) configure updated, version string now reflects
9851   krb4 built-in. It almost works now. Only uploads are still being naughty.
9852
9853 Version 7.3pre3
9854
9855 Daniel (18 September 2000)
9856 - Martin Hedenfalk supplied a major patch that introduces krb4-ftp support to
9857   curl. Martin is the primary author of the ftp client named yafc and he did
9858   not hesitate to help us implement this when I asked him. Many and sincere
9859   thanks to a splendid effort. It didn't even take many hours!
9860
9861 - Stephen Kick supplied a big patch that introduces the --interface flag to
9862   the curl tool and CURLOPT_INTERFACE for libcurl. It allows you to specify an
9863   outgoing interface to use for your request. This may not work on all
9864   platforms. This needs testing.
9865
9866 - Richard Prescott noticed that curl on Tru64 unix could core dumped if the
9867   name didn't resolve properly. This was due to the GetHost() function not
9868   returning an error even though it failed on some platforms!
9869
9870 Daniel (15 September 2000)
9871 - Updated all sorts of documents in regards to the new proxytunnel support.
9872
9873 Version 7.3pre2
9874
9875 Daniel (15 September 2000)
9876 - Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp.
9877   Adjusted it. Added better info message when setting up the tunnel and the
9878   pasv message when doing the second connect.
9879   
9880 Version 7.3pre1
9881
9882 Daniel (15 September 2000)
9883 - libcurl now allows "httpproxytunnel" to an arbitrary host and port name. The
9884   second connection on ftp needed that.
9885
9886 - TheArtOfHTTPScripting was corrected all over. I both type and spell really
9887   bad at times!
9888   
9889 Daniel (14 September 2000)
9890 - -p/--proxytunnel was added to 'curl'. It uses the new
9891   CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel
9892   through the specified http proxy. At the moment, this should work with ftp.
9893
9894 Daniel (13 September 2000)
9895 - Jochen Schaeuble found that file:// didn't work as expected. Corrected this
9896   and mailed the patch to the mailing list.
9897
9898 Daniel (7 September 2000)
9899 - I changed the #define T() in curl.h since it turned out it wasn't really
9900   a good symbol to use (when you compiled PHP with curl as a module, that
9901   define collided with some IMAP define or something). This was posted to the
9902   PHP bug tracker.
9903
9904 - I added extern "C" stuff in two header files to better allow libcurl usage
9905   in C++ sorces. Discussions on the libcurl list with Danny Horswell lead to
9906   this.
9907
9908 Version 7.2.1
9909
9910 Daniel (31 August 2000)
9911 - Albert Chin-A-Young fixed the configure script *again* and now it seems to
9912   detect Linux name resolving properly! (heard that before?)
9913
9914 - Troels Walsted Hansen pointed out that downloading a file containing the
9915   letter '+' from an ftp server didn't work. It did work from HTTP though and
9916   the reason was my lame URL decoder.
9917
9918 - I happened to notice that -I didn't at all work on ftp anymore. I corrected
9919   that.
9920
9921 Version 7.2
9922
9923 Daniel (30 August 2000)
9924 - Understanding AIX is a hard task. I believe I'll never figure out why they
9925   solve things so differently from the other unixes. Now, I'm left with the
9926   AIX 4.3 run-time warnings about duplicate symbols that according to this
9927   article (http://www.geocrawler.com/archives/3/405/1999/9/0/2593428/) is a
9928   libtool flaw. I tried the mentioned patch, although that stops the linking
9929   completely.
9930
9931   So, if I select to ignore the ld warnings there are compiler warnings that
9932   fill the screen pretty bad when curl compiles. It turns out that if I want
9933   to '#include <arpa/inet.h>', I can get tid of the warnings by include the
9934   following three include files before that one:
9935
9936         #include <net/if_dl.h>
9937         #include <sys/mbuf.h>
9938         #include <netinet/if_ether.h>
9939
9940   Now, is it really sane to add those include files before arpa/inet.h in all
9941   the source files that include it?
9942
9943   Thanks to Albert Chin-A-Young at thewrittenword.com who gave me the AIX
9944   login to try everything on.
9945
9946 Daniel (24 August 2000)
9947 - Jan Schmidt supplied us a new VC6 makefile for Windows as the previous one
9948   was not up to date but lacked several object files.
9949
9950 - More work on the naming.
9951
9952 - Albert Chin-A-Young provided a configure-check for large file support, as
9953   some systems seem to need that for them to work. Had to change the position
9954   for the config.h include file in every .c file in the libcurl dir...
9955
9956 - As suggested on the mailing list (by Troy Engel), I did use a --data-binary
9957   option instead of the messy way I've left described below. It seems to
9958   work. The libcurl fix remained the same as yesterday.
9959
9960 Daniel (23 August 2000)
9961 - Back on the -d stripping newlines thing. The 'plain post' thing was added
9962   when I had no thought of that one could actually post binary data with
9963   it. Now, I have to add this functionality in a graceful manner and I think
9964   I've managed to come up with a way: '-d @file;binary' will thus post the
9965   file binary, exactly as its contents are. It is implemented with a new
9966   *setopt() option (CURLOPT_POSTFIELDSIZE) to set the postfield size, since
9967   libcurl can't strlen() the data in these cases.
9968
9969 - Albert Chin-A-Young made some very serious efforts and all the name
9970   resolving problems seem to have been sorted out now on all the platforms
9971   that previously showed them. I'll make another release now anyday because of
9972   this.
9973
9974 - The FAQ was much enhanced when it comes to the licensing issues thanks to
9975   Bjorn Reese.
9976
9977 Daniel (21 August 2000)
9978 - Rick Welykochy pointed out a problem when you use -d to post and you want to
9979   keep the newlines, as curl strips them off as a bonus before posting...
9980   This needs to be addressed.
9981
9982 Version 7.1.1
9983
9984 Daniel (21 August 2000)
9985 - Got more people involved in the gethostbyname_r() mess. Caolan McNamara sent
9986   me configure-code that turned out to be very similar to my existing tests
9987   which only make me more sure I'm on the right path. I changed the order of
9988   the tests slightly, as it seems that some compilers don't yell error if a
9989   function is used with too many parameters. Thus, the first tested function
9990   will seem ok... Let's hope more compilers think of too-few parameters as bad
9991   manners, as we're now trying the functions in that order; fewer first. I
9992   should also add that Lars Hecking mailed me and volunteered to run tests on
9993   a few odd systems. Coalan is keeping his work over at
9994   http://www.csn.ul.ie/~caolan/publink/gethostbyname_r/. Might be handy in the
9995   future as well.
9996
9997 Daniel (18 August 2000)
9998 - I noticed I hadn't increased the name lookup buffer in lib/ftp.c. I don't
9999   think this is the reason for the continued trouble though.
10000
10001 Daniel (17 August 2000)
10002 - Fred Noz corrected my stupid mistakes in the gethostbyname_r() fluff. It
10003   should affect some AIX, Digital Unix and HPUX 10 systems.
10004
10005 Daniel (15 August 2000)
10006 - Mathieu Legare compiled and build 7.1 without errors on both AIX 4.2 as well
10007   as AIX 4.3. Now why did problems occur before?
10008
10009 - Fred Noz reported a -w/--write-out bug that caused it to malfunction when
10010   used combined with multiple URL retrievales. All but the first display got
10011   screwed up!
10012
10013 Daniel (11 August 2000)
10014 - Jason Priebe and an anonymous friend found some host names the Linux version
10015   of curl could not resolve. It turned out the buffer used to retrieve that
10016   information was too small. Fixed. One could argue about the usefulness of
10017   not having the slightest trace of a man page for gethostbyname_r() on my
10018   Linux Redhat installation...
10019
10020 Daniel (10 August 2000)
10021 - Balaji S Rao was first in line to note the missing possibility to replace
10022   the Content-Type: and Content-Length: headers when doing -d posts. I added
10023   the possibility just now. It seems some people wants to do standard posts
10024   using custom Content-Types.
10025
10026 Daniel (8 August 2000)
10027 - Mike Dowell correctly discovered that curl did not approve of URLs with no
10028   user name but password. As in 'http://:foo@haxx.se'. I corrected this.
10029
10030 Version 7.1
10031
10032 Daniel (7 August 2000)
10033 - My AIX 4 fix does not work. I need help from a AIX 4 hacker.
10034
10035 - I added my new document in the docs directory. It is aimed to become a sort
10036   of tutorial on how to do HTTP scripting with curl.
10037
10038 Daniel (4 August 2000)
10039 - Working with Rich Gray on compiling curl for lots of different platforms.
10040   My fix for AIX 3.2 was not good enough and was slightly changed, I had to
10041   move an include file before another, as is now described in the source.
10042
10043   AIX 4.2 (4.X?) has different gethostbyname_r() and gethostbyaddr_r()
10044   functions that the configure script didn't check for and thus the compile
10045   broke with an error. I have now changed the gethostbyname_r() check in the
10046   configure file to support all three versions of both these functions. My
10047   implementation that uses the AIX-style is though not yet verified and I may
10048   get problems to fix it if it turns out to bug since I don't have access to
10049   any system using that.
10050
10051   For problems like that, I made the configure script allow --disable-thread
10052   to completely switch off the check for threadsafe versions of a few
10053   functions and thus go with the "good old versions" that tend to work
10054   although will break thread-safeness for libcurl. Most people won't use
10055   libcurl for other things than curl though, and curl doesn't need a
10056   thread-safe lib.
10057
10058 - Working on my big tutorial about HTTP scripting with curl.
10059
10060 Daniel (1 August 2000)
10061 - Rich Gray spotted a problem in src/setup.h caused by a #define strequal()
10062   that was just a left-over from passed times. The strequal() is now a true
10063   function supplied by libcurl for a portable case insensitive string
10064   comparison. I added the prototypes in include/curl.h and removed the
10065   now obsolete #define.
10066
10067 - Igor Khristophorov made a fix to allow resumed download from Sun's
10068   JavaWebServer/1.1.1. It seems that their server sends bad Content-Range
10069   headers.
10070
10071 - The makefiles forced a static library build, which is bad since we now use
10072   libtool and thus have excellent shared library support! Albert Chin-A-Young
10073   found out.
10074
10075 Version 7.0.11beta
10076
10077 Daniel (1 August 2000)
10078 - Albert Chin-A-Young pointed out that 'make install' did not properly create
10079   the header include directory, why it failed to install the header files as
10080   it should. Automake isn't really equipped to deal with subdirectories
10081   without Makefiles in any nice way. I had to run ahead and add Makefiles in
10082   both include and include/curl before I managed to create a top-level
10083   makefile that succeeds in install everything properly!
10084
10085 - Ok, no more "features" added now. Let's just verify that there's no major
10086   flaws added now.
10087
10088 Daniel (31 July 2000)
10089 - Both Jeff Schasny and Ketil Froyn asked me how to tell curl not to send one
10090   of those internally generated headers. They didn't settle with the blank
10091   ones you could tell curl to use. I rewrote the header-replace stuff a
10092   little. Now, if you replace an internal header with your own and that new
10093   one is a blank header you will only remove the internal one and not get any
10094   blank. I couldn't figure out any case when you want that blank header.
10095
10096 Daniel (29 July 2000)
10097 - It struck me that the lib used localtime() which is not thread-safe, so now
10098   I use localtime_r() in the systems that has it.
10099
10100 - I went through this entire document and removed all email addresses and left
10101   names only. I've really made an effort to always note who brought be bug
10102   reports or fixes, but more and more people ask me to remove the email
10103   addresses since they become victims for spams this way. Gordon Beaton got me
10104   working on this.
10105
10106 Daniel (27 July 2000)
10107 - Jörn Hartroth found out that when you specified a HTTP proxy in an
10108   environment variable and used -L, curl failed in the second fetch. I
10109   corrected this problem and posted a patch to the list. No need for an extra
10110   beta release just for this.
10111
10112 Version 7.0.10beta
10113
10114 Daniel (27 July 2000)
10115 - So, libtool replaced two of my files with symbolic links and I forgot to add
10116   the two new libtool files to the release archive (and they were added as
10117   symlinks as well!) This of course lead to that the configure script failed
10118   on 7.0.9...
10119
10120 Version 7.0.9beta
10121
10122 Daniel (25 July 2000)
10123 - Kristian Köhntopp <kris at koehntopp.de> brought a fix that makes libcurl
10124   libtoolified, just as we've wanted for a while now. He also made the
10125   recently added man pages get installed properly on 'make install' and some
10126   other nice cleanups.
10127
10128 - In a discussion with Eetu Ojanen it struck me that if we use curl to get a
10129   page using a password, and that page then sends a Location: to another
10130   server that curl follows, curl will send the user name and password to that
10131   server as well.
10132
10133   Now, I'll never be able to make curl do Location: following all that perfect
10134   and you're all sooner or later required to write a script to do several
10135   fetches when you're doing advanced stuff, but now I've modified curl to at
10136   least *only* send the user name and password to the original server. Which
10137   means that if get a page from server A with a password, that forwards curl
10138   to server B, curl won't use the password there. If server B then forwards
10139   curl back to server A again, the password will be used again.
10140
10141   This is not a perfect implementation, as in a browser case it would only use
10142   the password if the left-prefix of the first path is the same. I just think
10143   that this fix prevents a somewhat lurky "security hole".
10144
10145   As a side-note in this subject: HTTP passwords are sent in cleartext and
10146   will never be considered to be safe or secure. Use HTTPS for that.
10147
10148 - As discussed on the mailing list, I converted the FTP response reading
10149   function into using select() which then allows timeouts (even under win32!)
10150   if the command-reply session gets too slow or dies completely. I made a
10151   default timeout on 3600 seconds unless anything else is specified, since I
10152   don't think anyone wants to wait more than that for a single character to
10153   get received...
10154
10155 - Torsten Foertsch <torsten.foertsch at gmx.net> brought a set of fixes for
10156   the rfc1867 form posts. He introduced 'name=<file' which brings a means to
10157   suuply very large text chunks read from the given file name. It differs from
10158   'name=@file' in the way that this latter thing is marked in the uploaded
10159   contents as a file upload, while the first is just text (as in a input or
10160   textarea field). Torsten also corrected a bug that would happen if you used
10161   %s or similar in a -F file name.
10162
10163 - As discovered by Nico Baggus <Nico.Baggus at mail.ing.nl>, when transferring
10164   files to/from FTP using type ASCII curl should not expect the transfer to be
10165   the exact size reported by the server as the file size. Since ASCII may very
10166   well mean that the content is translated while transfered, the final size
10167   may very well differ. Therefor, curl now ignores the file size when doing
10168   ASCII transfers in FTP.
10169
10170 Daniel (24 July 2000)
10171 - Added CURLOPT_PROXYPORT to the curl_easy_setopt() call to allow the proxy
10172   port number to be set separately from the proxy host name.
10173
10174 - Andrew <andrew at ugh.net.au> pointed out a netrc manual bug.
10175
10176 - The FTP transfer code now accepts a 250-code as well as the previously
10177   accepted 226, after a successful file transfer. Mohan <mnair at
10178   evergreen-funds.com> pointed this out.
10179
10180 - The check for *both* nsl and socket was never added in the v7 configure.in
10181   when I moved the main branch. I re-added that check to configure.in. This was
10182   discovered by Rich Gray.
10183
10184 - Howard, Blaise <Blaise.Howard at factiva.com> pointed out a missing free() in
10185   curl_disconnect() which of course meant libcurl ate memory.
10186
10187 - Brian E. Gallew noted that the HTTP 'Host:' header curl sent did not
10188   properly include the port number if non-default ports were used. This should
10189   now have been fixed.
10190
10191 - HTTP connect errors now return errors earlier. This was most notably causing
10192   problems when the HTTPS certificate had problems and later caused a crash.
10193   Many thanks to Gregory Nicholls <gnicholls at level8.com> for discovering
10194   and suggesting a fix...
10195
10196 Daniel (21 June 2000)
10197 - After a "bug report" I received where the user was using both -F and -I in a
10198   HTTP request (it severly confused the library I should add), I added some
10199   checks to src/main.c that prevents setting more than one HTTP request
10200   command, no matter what the user wants! ;-)
10201
10202 Version 7.0.8beta
10203
10204 Daniel (20 June 2000)
10205 - I did a major replace in many files to use the new curl domain haxx.se
10206   instead of the previous one.
10207
10208 - As Eetu Ojanen suggested, I finally took the step and now libcurl no longer
10209   makes a POST after it has followed a location. When the initial POST has
10210   been done, it'll turned into a GET for the further requests. This is only
10211   interesting when using -L/--location *and* doing a POST at the same time.
10212
10213   While messing with this, I added another weird feature I call 'auto
10214   referer'. If you append ';auto' to the right of a given referer string (or
10215   only use that string as referer), libcurl will automatically set the
10216   previoud URL as refered when it follows a Location: and gets a succeeding
10217   document.
10218
10219 - My hero Rich Gray found the very obscure FTP bug that happened to him only
10220   when passing through a particular firewall and using the PORT command. It
10221   turned out that PORT was the only command in the lib/ftp.c source that
10222   didn't send a proper \r\n sequence but instead used the faulty \n which as
10223   it seemed is supported by most major ftp servers... :-O
10224
10225 Version 7.0.7beta
10226
10227 Daniel (16 June 2000)
10228 - I had avoided this long enough now, so I moved the alternative progress bar
10229   stuff from the lib and added it to the client code. This is now using the
10230   recently added progress callback and it seems to work pretty much like
10231   before. Since it is only one progress bar and you and download and upload at
10232   the same time, this bar shows the combined progress of both directions. This
10233   code was just ported from the old place to this, Lars is still our saviour!
10234   ;-) This also made the documentation more accurate since I never removed
10235   this function from any docs! Although I now removed the CURLOPT_PROGRESSMODE
10236   from the library since the lib has only one internal progress meter and it
10237   will never get another. It is although likely that the internal one also
10238   will be moved to the client code in the future (when I have other means of
10239   getting the writeout data and move that too to the client).
10240
10241 - I took the opportunity to verify that standard progress meter works and I
10242   found out it didn't get inited properly. Grrr. I corrected that as well.
10243
10244 Daniel (15 June 2000)
10245 - I thought I'd better verify that the -F option still works in v7 and of
10246   course it didn't... :-/ Anyway, I had the problems I could discover
10247   corrected. About one month of beta testing and not a single person has used
10248   this feature with v7?
10249
10250 - Björn correctly pointed out that the --progress-bar still doesn't work in
10251   v7. Hm.
10252
10253 Daniel (14 June 2000)
10254 - Tim Tassonis discovered that curl 7 didn't handle normal http POST as it
10255   should. I corrected this.
10256
10257 Version 7.0.6beta
10258
10259 Daniel (14 June 2000)
10260 - Björn Stenberg pointed out several problems (related to win32 compiling):
10261   lib/strequal.c had a bad #ifdef for one of the string comparisons (win32)
10262   src/main.c had several minor problems
10263   lib/makefile.m32 had getpass.[co] twice
10264   src/config-win32.h lacked the HAVE_FCNTL_H define
10265   both config-win32.h files now only set the HAVE_UNISTD_H define if the
10266   define MINGW32 is set, and I modified src/makefile.m32 and lib/makefile.m32
10267   to set it.
10268
10269 Version 7.0.5beta
10270
10271 Daniel (14 June 2000)
10272 - Applied Luong Dinh Dung's comments about a few win32 compile problems.
10273
10274 - Applied Björn Stenberg's suggested fix that turns the win32 stdout to
10275   binary. It won't do it if the -B / --use-ascii option is used. That option
10276   is now an extended version of the previous -B /--ftp--ascii. The flag was
10277   already in use be the ldap as well so the new name fits pretty good. The
10278   libcyrl CURLOPT_TRANSFERTEXT was also introduced as an alias to the now
10279   obsolete CURLOPT_FTPASCII. Can't verify this fix myself as I have no win32
10280   compiler around.
10281
10282 Daniel (13 June 2000)
10283 - Luong Dinh Dung <dung at sch.bme.hu> found a problem in curl_easy_cleanup()
10284   since it free()ed the main curl struct *twice*. This is now corrected.
10285
10286 Daniel (9 June 2000)
10287 - Updated the RESOURCES file, added a README.win32 file.
10288
10289 Daniel (8 June 2000)
10290 - So I finally added the progress callback to the *setopt() options and it
10291   should work now. I don't have the energy to write any test program for it
10292   right now.
10293 - Made the callback function typedefs public in curl/curl.h for comfort. Just
10294   in case anyone wanna fiddle with such pointers.
10295 - Updated the curl_easy_setopt() man page accordingly.
10296
10297 Version 7.0.4beta
10298
10299 Daniel (2 June 2000)
10300 - I noticed that when doing Location: following, we lost custom headers in all
10301   but the first request.
10302 - Removed the 'HttpPost' struct and moved the header stuff to the more generic
10303   curl_slist.
10304 - Added some better slist-cleanups in src/main.c
10305
10306 Version 7.0.3beta
10307
10308 Daniel (31 May 2000)
10309 - So I discovered that I released the 7.0.2beta without it being able to
10310   compile under Linux. gethostbyname_r() and gethostbyaddr_r() turned out to
10311   feature a different amount of arguments on different systems so I had to add
10312   a configure check for this and adjust the code slightly.
10313
10314 Version 7.0.2beta
10315
10316 Daniel (29 May 2000)
10317 - Corrected the bits.* assignments when using CURLOPT options that only
10318   toggles one of those bits.
10319
10320 - Applied the huge patches from David LeBlanc <dleblanc at qnx.com> that add
10321   usage of the gethostbyname_r() and similar functions in case they're around,
10322   since that make libcurl much better threadsafe in many systems (such as
10323   solaris). I added the checks for these functions to the configure script.
10324
10325   I can't explain why, but the inet_ntoa_r() function did not appear in my
10326   Solaris include files, I had to add my own include file for this for now.
10327
10328 Daniel (22 May 2000)
10329 - Jörn Hartroth brought me fixes to make the win32 version compile properly as
10330   well as a rename of the 'interface' field in the urldata struct, as it seems
10331   to be reserved in some gcc versions!
10332
10333 - Rich Gray struck back with yet some portability reports. Data General DG/UX
10334   needed a little fix in lib/ldap.c since it doesn't have RTLD_GLOBAL defined.
10335   More fixes are expected as a result of Richies very helpful work.
10336
10337 Version 7.0.1beta
10338
10339 Daniel (21 May 2000)
10340 - Updated lots of #defines, enums and variable type names in the library. No
10341   more weird URG or URLTAG prefixes. All types and names should be curl-
10342   prefixed to avoid name space clashes. The FLAGS-parameter to the former
10343   curl_urlget() has been converted into a bunch of flags to use in separate
10344   setopt calls. I'm still focusing on the easy-interface, as the curl tool is
10345   now using that.
10346
10347 - Bjorn Reese has provided me with an asynchronous name resolver that I plan
10348   to use in upcoming versions of curl to be able to gracefully timeout name
10349   lookups.
10350
10351 Version 7.0beta
10352
10353 Daniel (18 May 2000)
10354 - Introduced LIBCURL_VERSION_NUM to the curl.h include file to better allow
10355   source codes to be dependent on the lib version. This define is now set to
10356   a dexadecimal number, with 8 bits each for major number, minor number and
10357   patch number. In other words, version 1.2.3 would make it 0x010203. It also
10358   makes a larger number a newer version.
10359
10360 Daniel (17 May 2000)
10361 - Martin Kammerhofer correctly pointed out several flaws in the FTP range
10362   option. I corrected them.
10363 - Removed the win32 winsock init crap from the lib to the src/main.c file
10364   in the application instead. They can't be in the lib, especially not for
10365   multithreaded purposes.
10366
10367 Daniel (16 May 2000)
10368 - Rewrote the src/main.c source to use the new easy-interface to libcurl 7.
10369   There is still more work to do, but the first step is now taken.
10370   <curl/easy.h> is the include file to use.
10371
10372 Daniel (14 May 2000)
10373 - FTP URLs are now treated slightly different, more according to RFC 1738.
10374 - FTP sessions are now performed differently, with CWD commands to change
10375   directory instead of RETR/STOR/LIST with the full path. Discussions with
10376   Rich Gray made me notice these problems.
10377 - Janne Johansson discovered and corrected a buffer overflow in the
10378   src/usrglob.c file.
10379 - I had to add a lib/strequal.c file for doing case insensitive string
10380   compares on all platforms.
10381
10382 Daniel (8 May 2000):
10383 - Been working lots on the new lib.
10384 - Together with Rich Gray, I've tried to adjust the configure script to work
10385   better on the NCR MP-RAS Unix.
10386
10387 Daniel (2 May 2000):
10388 - Albert Chin-A-Young pointed out that I had a few too many instructions in
10389   configure.in that didn't do any good.
10390
10391 Daniel (24 April 2000):
10392 - Added a new paragraph to the FAQ about what to do when configure can't
10393   find OpenSSL even though it is installed. Supplied by Bob Allison
10394
10395 Daniel (12 April 2000):
10396 - Started messing around big-time to convert the old library interface to a
10397   better one...
10398
10399 Daniel (8 April 2000):
10400 - Made the progress bar look better for file sizes between 9999 kilobytes
10401   and 100 megabytes. They're now displayed XX.XM.
10402 - I also noticed that ftp fetches through HTTP proxies didn't add the user
10403   agent string. It does now.
10404 - Habibie <habibie at MailandNews.com> supplied a pretty good way to build RPMs
10405   on a Linux machine. It still a) requires me to be root to do it, b) leaves
10406   the rpm packages laying at some odd place on my disk c) doesn't work to
10407   build the ssl version of curl since I didn't install openssl from an rpm
10408   package so now the rpm crap thinks I don't have openssl and refuses to build
10409   a package that depends on ssl... Did I mention I don't get along with RPM?
10410 - Once again I received a bug report about autoconf not setting -L prior to -l
10411   on the command line when checking for libs. In this case it made the native
10412   cc compiler on Solaris 7 to fail the OpenSSL check. This has previously been
10413   reported to cause problems on HP-UX and is a known flaw in autoconf 2.13. It
10414   is a pity there's no newer release around...
10415
10416 Daniel (4 April 2000):
10417 - Marco G. Salvagno supplied me with two fixes that
10418   appearantly makes the OS/2 port work better with multiple URLs.
10419
10420 Daniel (2 April 2000):
10421 - Another Location: fix. This time, when curl connected to a port and then
10422   followed a location with an absolute URL to another port, it misbehaved.
10423
10424 Daniel (27 March 2000):
10425 - H. Daphne Luong pointed out that curl was wrongly
10426   messing up the proxy string when fetching a document through a http proxy,
10427   which screwed up multiple fetches such as in location: followings.
10428
10429 Daniel (23 March 2000):
10430 - Marco G. Salvagno corrected my badly applied patch he
10431   actually already told me about!
10432
10433 - H. Daphne Luong brought me a fix that now makes curl
10434   ignore select() errors in the download if errno is EINTR, which turns out to
10435   happen every now and then when using libcurl multi-threaded...
10436
10437 Daniel (22 March 2000):
10438 - Wham Bang supplied a couple of win32 fixes. HAVE_UNAME
10439   was accidentally #defined in config-win32.h, which it shouldn't have been.
10440   The HAVE_UNISTD_H is not defined when compiling with the Makefile.vc6
10441   makefile for MS VC++.
10442
10443 Daniel (21 March 2000):
10444 - I removed the AC_PROG_INSTALL macro from configure.in, since it appears that
10445   one of the AM_* macros searches for a BSD compatible install already. Janne
10446   Johansson made me aware of this.
10447
10448 Version 6.5.2
10449
10450 Daniel (21 March 2000):
10451 - Paul Harrington quickly pointed out to me that 6.5.1
10452   crashes hard. I upload 6.5.2 now as quickly as possible! The problem was
10453   the -D adjustments in src/main.c.
10454
10455 Version 6.5.1
10456
10457 Daniel (20 March 2000):
10458 - An anonymous post on sourceforge correctly pointed out a possible buffer
10459   overflow in the curl_unescape() function for URL conversions. The main
10460   problem with this bug is that the ftp download uses that function and this
10461   single- byte overflow could lead to very odd bugs (as one reported by Janne
10462   Johansson).
10463
10464 Daniel (19 March 2000):
10465 - Marco G. Salvagno supplied me with a series of patches
10466   that now allows curl to get compiled on OS/2. It even includes a section in
10467   the INSTALL file. Very nice job!
10468
10469 Daniel (17 March 2000):
10470 - Wham Bang supplied a patch for the lib/Makefile.vc6
10471   file. We still need some fixes for the config-win32.h since it appears that
10472   VC++ and mingw32 have different opinions about (at least) unistd.h's
10473   existence.
10474
10475 Daniel (15 March 2000):
10476 - I modified the -D/--dump-header workings so that it doesn't write anything
10477   to the file until it needs to. This way, you can actually use -b and -D
10478   on the same file if you want repeated invokes to store and read the cookies
10479   in that one single file.
10480
10481 - Poked around in lots of texts. Added the BUGS file for bug reporting stuff.
10482   Added the classic HTTP POST question to the FAQ, removed some #ifdef WIN32
10483   stuff from the sources (they're covered by the config-win32.h now).
10484
10485 - Pascal Gaudette fixed a missing ldap.c problem in the
10486   Makefile.vc6 file. He also addressed a problem in src/config-win32.h.
10487
10488 Daniel (14 March 2000):
10489 - Paul Harrington pointed out that the 'http_code' variable in the -w output
10490   was never written. I fixed it now.
10491
10492 - Janne Johansson reported the complaints that OpenBSD does
10493   when getdate.c #includes malloc.h. It claims stdlib.h should be included
10494   instead. I added #ifdef HAVE_MALLOC_H code in getdate.y and two checks in
10495   the configure.in for malloc.h and stdlib.h.
10496
10497 Version 6.5
10498
10499 Daniel (13 March 2000):
10500 - <curl at spam.wolvesbane.net> pointed out that the way curl sent cookies in a
10501   single line wasn't enjoyed by IIS4.0 servers. In my view, that is not what
10502   the standards say, but I added a white space between the name/value pairs to
10503   perhaps make them work better.
10504
10505 - Added the perl check back in the configure.in again since the mkhelp.pl
10506   script needs it!
10507
10508 - Made some beautifications in the curl man page.
10509
10510 Daniel (3 March 2000):
10511 - Jörn helped me update the config-win32.h files with HAVE_SETVBUF and
10512   HAVE_STRDUP.
10513
10514 Daniel (3 March 2000):
10515 - Uploaded the 6.5pre2 package.
10516
10517 Daniel (2 March 2000):
10518 - Removed the perl-programs from the distribution, they never made many people
10519   happy and I'll still keep them available on the web.
10520
10521 - Added the -w and -N stuff to the man page. Documented the new progress meter
10522   display in README.curl.
10523
10524 - Jörn Hartroth, Chris <cbayliss at csc.come> and Ulf
10525   Möller from the openssl development team helped bringing me the details for
10526   fixing an OpenSSL usage flaw. It became apparent when they released openssl
10527   0.9.5 since that barfed on curl's bad behavior (not seeding a random number
10528   thing).
10529
10530 - Yet another option: -N/--no-buffer disables buffering in the output stream.
10531   Probably most useful for very slow transfers when you really want to get
10532   every byte curl receives within some preferred time. Andrew <tmr at gci.net>
10533   suggested this.
10534
10535 - Damien Adant mailed me his fixes for making curl compile on Ultrix.
10536
10537 Daniel (24 February 2000):
10538 - Applied Jörn Hartroth's fixes for config-win32.h and lib/Makefile.w32.
10539
10540   I should also make a note here, if nothing else to myself, that when using
10541   the %-syntax for variables in DOS command prompts, you must use two %-
10542   letters for each one since that is an escape letter there! Maybe I should
10543   use another letter instead!
10544
10545 - Added more variables to -w:
10546
10547   'http_code'
10548   'time_namelookup'
10549   'time_connect'
10550   'time_pretransfer'
10551   'url_effective'
10552
10553 - Made -w@filename read the syntax from a file and -w@- reads the syntax from
10554   stdin in the good old "standard" curl way.
10555
10556 Daniel (22 February 2000):
10557 - Released a 6.5pre1 version to get some test and user feedback.
10558
10559 Daniel (21 February 2000):
10560
10561 - I added the -w/--write-out flag and some variables to go with it. -w is a
10562   single string, whatever you enter there will be written out when curl has
10563   completed a successful request. There are some variable substitutions and
10564   they are specified as '%{variable}' (without the quotes). Variables that
10565   exist as of this moment are:
10566
10567         total_time     - total transfer time in seconds (with 2 decimals)
10568         size_download  - total downloaded amount of bytes
10569         size_upload    - total uploaded amount of bytes
10570         speed_download - the average speed of the entire download
10571         speed_upload   - the average speed of the entire upload
10572
10573   I will of course add more variables, but I need input on these and others.
10574
10575 - It struck me that the -# progress bar will be hard to just apply on the new
10576   progress bar concept. I need some feedback on this before that'll get re-
10577   introduced! :-/
10578
10579 Daniel (16 February 2000):
10580 - Jörn Hartroth brought me some fixes for the progress meter and I continued
10581   working on it. It seems to work for http download, http post, ftp download
10582   and ftp upload. It should be a pretty good test it works generally good.
10583
10584 - Still need to add the -# progress bar into the new style progress interface.
10585
10586 - Gonna have a go at my new output option parameter next.
10587
10588 Daniel (15 February 2000):
10589 - The progress meter stuff is slowly taking place. There's more left before it
10590   is working ok and everything is tested, but we're reaching there. Slowly!
10591
10592 Daniel (11 February 2000):
10593 - Paul Marquis fixed the config file parsing of curl to
10594   deal with any-length lines, removing the previous limit of 4K.
10595
10596 - Eetu Ojanen's suggestion of supporting the @-style for -b
10597   is implemented. Now -b@<filename> works as well as the old style. -b@- also
10598   similarly reads the cookies from stdin.
10599
10600 - Reminder: -D should not write to the file until it needs to, in the same way
10601   -o does. That would enable curl to use -b and -D on the same file...
10602
10603 - Ellis Pritchard made getdate.y work for MacOS X.
10604
10605 - Paul Harrington helped me out finding the crash in the
10606   cookie parser. He also pointed out curl's habit of sending empty cookies to
10607   the server.
10608
10609 Daniel (8 February 2000):
10610  - Ron Zapp corrected a problem in src/urlglob.c that
10611    prevented curl from getting compiled on sunos 4. The problem had to do
10612    with the difference in sprintf() return code types.
10613
10614  - Transfer() should now be able to download and upload simultaneously. Let's
10615    do some progress meter fixes later this week.
10616
10617 Daniel (31 January 2000):
10618  - Paul Harrington found another core dump in the cookie
10619    parser. Curl doesn't properly recognize the 'version' keyword and I think
10620    that is what caused this. I need to refresh some specs on cookies and see
10621    what else curl lacks to improve this a bit more once and for all.
10622
10623    RFC 2109 clearly specifies how cookies should be dealt with when they are
10624    compliant with that spec. I don't think many servers are though...
10625
10626  - Mark W. Eichin found that while curl is uploading a form
10627    to a web site, it doesn't read incoming data why it'll hang after a while
10628    since the socket "pipe" becomes full.
10629
10630    It took me two hours to rewrite Download() and Upload() into the new
10631    single function Transfer(). It even seems to work! More testing is required
10632    of course... I should get the header-sending together in a kind of queue
10633    and let them get "uploaded" in Transfer() as well.
10634
10635  - Zhibiao Wu pointed out a curl bug in the location: area,
10636    although I did not get a reproducible way to do this why I have to wait
10637    with fixing anything.
10638
10639  - Bob Schader suggested I should implement resume
10640    support for the HTTP PUT operation, and as I think it is a valid suggestion
10641    I'll work on it.
10642
10643 Daniel (25 January 2000):
10644  - M Travis Obenhaus pointed out a manual mixup with -y and -Y that was
10645    corrected.
10646
10647  - Jens Schleusener pointed out a problem to compile
10648    curl on AIX 4.1.4 and gave me a solution. This problem was already fixed
10649    by Jörn's recent #include modifications!
10650
10651 Daniel (19 January 2000):
10652  - Oskar Liljeblad pointed out and corrected a problem
10653    in the Location: following system that made curl following a location: to a
10654    different protocol to fail.
10655
10656    At January 31st I re-considered this fix and the surrounding source code. I
10657    could not really see that the patch did any difference, why I removed it
10658    again for further research and debugging. (It disabled location: following
10659    on server not running on default ports.)
10660
10661  - Jörn Hartroth brought a fix that once again
10662    made it possible to select progress bar.
10663
10664  - Jörn also fixed a few include problems.
10665
10666 Version 6.4
10667
10668 Daniel (17 January 2000):
10669  - Based on suggestions from Björn Stenberg, I made the
10670    progress deal better with larger files and added a "Time" field which shows
10671    the time spent on the download so far.
10672  - I'm now using the CVS repository on sourceforge.net, which also allows web
10673    browsing. See http://curl.haxx.nu.
10674
10675 Daniel (10 January 2000):
10676  - Renumbered some enums in curl/curl.h since tag number 35 was used twice!
10677  - Added "postquote" support to the ftp section that enables post-ftp-transfer
10678    quote commands.
10679  - Now made the -Q/--quote parameter recognize '-' as a prefix, which means
10680    that command will be issued AFTER a successful ftp transfer. This can of
10681    course be used to delete or rename a file after it has been uploaded or
10682    downloaded. Use your imagination! ;-)
10683  - Since I do the main development on solaris 2.6 now, I had to download and
10684    install GNU groff to generate the hugehelp.c file. The solaris nroff cores
10685    on the man page! So, in order to make the solaris configure script find a
10686    better result I made gnroff get checked prior to the regular nroff.
10687  - Added all the curl exit codes to the man page.
10688  - Jim Gallagher properly tracked down a bug in autoconf
10689    2.13. The AC_CHECK_LIB() macro wrongfully uses the -l flag before the -L
10690    flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks
10691    and therefore you can't make the configure script find the openssl libs!
10692
10693 Daniel (28 December 1999):
10694  - Tim Verhoeven correctly identified that curl
10695    doesn't support URL formatted file names when getting ftp. Now, there's a
10696    problem with getting very weird file names off FTP servers. RFC 959 defines
10697    that the file name syntax to use should be the same as in the native OS of
10698    the server. Since we don't know the peer server system we currently just
10699    translate the URL syntax into plain letters. It is still better and with
10700    the solaris 2.6-supplied ftp server it works with spaces in the file names.
10701
10702 Daniel (27 December 1999):
10703  - When curl parsed cookies straight off a remote site, it corrupted the input
10704    data, which, if the downloaded headers were stored made very odd characters
10705    in the saved data. Correctly identified and reported by Paul Harrington.
10706
10707 Daniel (13 December 1999):
10708  - General cleanups in the library interface. There had been some bad kludges
10709    added during times of stress and I did my best to clean them off. It was
10710    both regarding the lib API as well as include file confusions.
10711
10712 Daniel (3 December 1999):
10713  - A small --stderr bug was reported by Eetu Ojanen...
10714
10715  - who also brought the suggestion of extending the -X flag to ftp list as
10716    well. So, now it is and the long option is now --request instead. It is
10717    only for ftp list for now (and the former http stuff too of course).
10718
10719 Lars J. Aas (24 November 1999):
10720  - Patched curl to compile and build under BeOS. Doesn't work yet though!
10721
10722  - Corrected the Makefile.am files to allow putting object files in
10723    different directories than the sources.
10724
10725 Version 6.3.1
10726
10727 Daniel (23 November 1999):
10728  - I've had this major disk crash. My good old trust-worthy source disk died
10729    along with the machine that hosted it. Thank goodness most of all the
10730    things I've done are either backed up elsewhere or stored in this CVS
10731    server!
10732
10733  - Michael S. Steuer pointed out a bug in the -F handling
10734    that made curl hang if you posted an empty variable such as '-F name='. It
10735    was one of those old bugs that never have worked properly...
10736
10737  - Jason Baietto pointed out a general flaw in the HTTP
10738    download. Curl didn't complain if it was prematurely aborted before the
10739    entire download was completed. It does now.
10740
10741 Daniel (19 November 1999):
10742  - Chris Maltby very accurately criticized the lack of
10743    return code checks on the fwrite() calls. I did a thorough check for all
10744    occurrences and corrected this.
10745
10746 Daniel (17 November 1999):
10747  - Paul Harrington pointed out that the -m/--max-time option
10748    doesn't work for the slow system calls like gethostbyname()... I don't have
10749    any good fix yet, just a slightly less bad one that makes curl exit hard
10750    when the timeout is reached.
10751
10752  - Bjorn Reese helped me point out a possible problem that might be the reason
10753    why Thomas Hurst experience problems in his Amiga version.
10754
10755  Daniel (12 November 1999):
10756  - I found a crash in the new cookie file parser. It crashed when you gave
10757    a plain http header file as input...
10758
10759 Version 6.3
10760
10761  Daniel (10 November 1999):
10762  - I kind of found out that the HTTP time-conditional GETs (-z) aren't always
10763    respected by the web server and the document is therefore sent in whole
10764    again, even though it doesn't match the requested condition. After reading
10765    section 13.3.4 of RFC 2616, I think I'm doing the right thing now when I do
10766    my own check as well. If curl thinks the condition isn't met, the transfer
10767    is aborted prematurely (after all the headers have been received).
10768
10769  - After comments from Robert Linden I also rewrote some parts of the man page
10770    to better describe how the -F works.
10771
10772  - Michael Anti put up a new curl download mirror in
10773    China:  http://www.pshowing.com/curl/
10774
10775  - I added the list of download mirrors to the README file
10776
10777  - I did add more explanations to the man page
10778
10779  Daniel (8 November 1999):
10780  - I made the -b/--cookie option capable of reading netscape formatted cookie
10781    files as well as normal http-header files. It should be able to
10782    transparently figure out what kind of file it got as input.
10783
10784  Daniel (29 October 1999):
10785  - Another one of Sebastiaan van Erk's ideas (that has been requested before
10786    but I seem to have forgotten who it was), is to add support for ranges in
10787    FTP downloads. As usual, one request is just a request, when they're two
10788    it is a demand. I've added simple support for X-Y style fetches. X has to
10789    be the lower number, though you may omit one of the numbers. Use the -r/
10790    --range switch (previously HTTP-only).
10791
10792  - Sebastiaan van Erk suggested that curl should be
10793    able to show the file size of a specified file. I think this is a splendid
10794    idea and the -I flag is now working for FTP. It displays the file size in
10795    this manner:
10796         Content-Length: XXXX
10797    As it resembles normal headers, and leaves us the opportunity to add more
10798    info in that display if we can come up with more in the future! It also
10799    makes sense since if you access ftp through a HTTP proxy, you'd get the
10800    file size the same way.
10801
10802    I changed the order of the QUOTE command executions. They're now executed
10803    just after the login and before any other command. I made this to enable
10804    quote commands to run before the -I stuff is done too.
10805
10806  - I found out that -D/--dump-header and -V/--version weren't documented in
10807    the man page.
10808
10809  - Many HTTP/1.1 servers do not support ranges. Don't ask me why. I did add
10810    some text about this in the man page for the range option. The thread in
10811    the mailing list that started this was initiated by Michael Anti.
10812
10813  - I get reports about nroff crashes on solaris 2.6+ when displaying the curl
10814    man page. Switch to gnroff instead, it is reported to work(!). Adam Barclay
10815    reported and brought the suggestion.
10816
10817  - In a dialogue with Johannes G. Kristinsson we came
10818    up with the idea to let -H/--header specified headers replace the
10819    internally generated headers, if you happened to select to add a header
10820    that curl normally uses by itself. The advantage with this is not entirely
10821    obvious, but in Johannes' case it means that he can use another Host: than
10822    the one curl would set.
10823
10824  Daniel (27 October 1999):
10825  - Jongki Suwandi brought a nice patch for (yet another) crash when following
10826    a location:. This time you had to follow a https:// server's redirect to
10827    get the core.
10828
10829 Version 6.2
10830
10831  Daniel (21 October 1999):
10832  - I think I managed to remove the suspicious (nil) that has been seen just
10833    before the "Host:" in HTTP requests when -v was used.
10834  - I found out that if you followed a location: when using a proxy, without
10835    having specified http:// in the URL, the protocol part was added once again
10836    when moving to the next URL! (The protocol part has to be added to the
10837    URL when going through a proxy since it has no protocol-guessing system
10838    such as curl has.)
10839  - Benjamin Ritcey reported a core dump under solaris 2.6
10840    with OpenSSL 0.9.4. It turned out this was due to a bad free() in main.c
10841    that occurred after the download was done and completed.
10842  - Benjamin found ftp downloads to show the first line of the download meter
10843    to get written twice, and I removed that problem. It was introduced with
10844    the multiple URL support.
10845  - Dan Zitter correctly pointed out that curl 6.1 and earlier versions didn't
10846    honor RFC 2616 chapter 4 section 2, "Message Headers": "...Field names are
10847    case-insensitive..."  HTTP header parsing assumed a certain casing. Dan
10848    also provided me with a patch that corrected this, which I took the liberty
10849    of editing slightly.
10850  - Dan Zitter also provided a nice patch for config.guess to better recognize
10851    the Mac OS X
10852  - Dan also corrected a minor problem in the lib/Makefile that caused linking
10853    to fail on OS X.
10854
10855  Daniel (19 October 1999):
10856  - Len Marinaccio came up with some problems with curl.  Since Windows has a
10857    crippled shell, it can't redirect stderr and that causes trouble. I added
10858    --stderr today which allows the user to redirect the stderr stream to a
10859    file or stdout.
10860
10861  Daniel (18 October 1999):
10862  - The configure script now understands the '--without-ssl' flag, which now
10863    totally disable SSL/https support. Previously it wasn't possible to force
10864    the configure script to leave SSL alone. The previous functionality has
10865    been retained. Troy Engel helped test this new one.
10866
10867 Version 6.1
10868
10869  Daniel (17 October 1999):
10870  - I ifdef'ed or commented all the zlib stuff in the sources and configure
10871    script. It turned out we needed to mock more with zlib than I initially
10872    thought, to make it capable of downloading compressed HTTP documents and
10873    uncompress them on the fly. I didn't mean the zlib parts of curl to become
10874    more than minor so this means I halt the zlib expedition for now and wait
10875    until someone either writes the code or zlib gets updated and better
10876    adjusted for this kind of usage.  I won't get into details here, but a
10877    short a summary is suitable:
10878    - zlib can't automatically detect whether to use zlib or gzip
10879      decompression methods.
10880    - zlib is very neat for reading gzipped files from a file descriptor,
10881      although not as nice for reading buffer-based data such as we would
10882      want it.
10883    - there are still some problems with the win32 version when reading from
10884      a file descriptor if that is a socket
10885
10886  Daniel (14 October 1999):
10887  - Moved the (external) include files for libcurl into a subdirectory named
10888    curl and adjusted all #include lines to use <curl/XXXX> to maintain a
10889    better name space and control of the headers. This has been requested.
10890
10891  Daniel (12 October 1999):
10892  - I modified the 'maketgz' script to perform a 'make' too before a release
10893    archive is put together in an attempt to make the time stamps better and
10894    hopefully avoid the double configure-running that use to occur.
10895
10896  Daniel (11 October 1999):
10897  - Applied Jörn's patches that fixes zlib for mingw32 compiles as well as
10898    some other missing zlib #ifdef and more text on the multiple URL docs in
10899    the man page.
10900
10901 Version 6.1beta
10902
10903  Daniel (6 October 1999):
10904  - Douglas E. Wegscheid sent me a patch that made the exact same thing as I
10905    just made: the -d switch is now capable of reading post data from a named
10906    file or stdin.  Use it similarly to the -F. To read the post data from a
10907    given file:
10908
10909         curl -d @path/to/filename www.postsite.com
10910
10911    or let curl read it out from stdin:
10912
10913         curl -d @- www.postit.com
10914
10915  Jörn Hartroth (3 October 1999):
10916  - Brought some more patches for multiple URL functionality. The MIME
10917    separation ideas are almost scrapped now, and a custom separator is being
10918    used instead. This is still compile-time "flagged".
10919
10920  Daniel
10921  - Updated curl.1 with multiple URL info.
10922
10923  Daniel (30 September 1999):
10924  - Felix von Leitner brought openssl-check fixes for configure.in to work
10925    out-of-the-box when the openssl files are installed in the system default
10926    dirs.
10927
10928  Daniel (28 September 1999)
10929  - Added libz functionality. This should enable decompressing gzip, compress
10930    or deflate encoding HTTP documents. It also makes curl send an accept that
10931    it accepts that kind of encoding. Compressed contents usually shortens
10932    download time. I *need* someone to tell me a site that uses compressed HTTP
10933    documents so that I can test this out properly.
10934
10935  - As a result of the adding of zlib awareness, I changed the version string
10936    a little. I plan to add openldap version reporting in there too.
10937
10938  Daniel (17 September 1999)
10939  - Made the -F option allow stdin when specifying files. By using '-' instead
10940    of file name, the data will be read from stdin.
10941
10942 Version 6.0
10943
10944  Daniel (13 September 1999)
10945  - Added -X/--http-request <request> to enable any HTTP command to be sent.
10946    Do not that your server has to support the exact string you enter. This
10947    should possibly a string like DELETE or TRACE.
10948
10949  - Applied Douglas' mingw32-fixes for the makefiles.
10950
10951  Daniel (10 September 1999)
10952  - Douglas E. Wegscheid pointed out a problem. Curl didn't check the FTP
10953    servers return code properly after the --quote commands were issued. It
10954    took anything non 200 as an error, when all 2XX codes should be accepted as
10955    OK.
10956
10957  - Sending cookies to the same site in multiple lines like curl used to do
10958    turned out to be bad and breaking the cookie specs. Curl now sends all
10959    cookies on a single Cookie: line. Curl is not yet RFC 2109 compliant, but I
10960    doubt that many servers do use that syntax (yet).
10961
10962  Daniel (8 September 1999)
10963  - Jörn helped me make sure it still compiles nicely with mingw32 under win32.
10964
10965  Daniel (7 September 1999)
10966  - FTP upload through proxy is now turned into a HTTP PUT. Requested by
10967    Stefan Kanthak.
10968
10969  - Added the ldap files to the .m32 makefile.
10970
10971  Daniel (3 September 1999)
10972  - Made cookie matching work while using HTTP proxy.
10973
10974  Bjorn Reese (31 August 1999)
10975  - Passed his ldap:// patch. Note that this requires the openldap shared
10976    library to be installed and that LD_LIBRARY_PATH points to the
10977    directory where the lib will be found when curl is run with a
10978    ldap:// URL.
10979
10980  Jörn Hartroth (31 August 1999)
10981  - Made the Mingw32 makefiles into single files.
10982  - Made file:// work for Win32. The same code is now used for unix as well for
10983    performance reasons.
10984
10985  Douglas E. Wegscheid (30 August 1999)
10986  - Patched the Mingw32 makefiles for SSL builds.
10987
10988  Matthew Clarke (30 August 1999)
10989  - Made a cool patch for configure.in to allow --with-ssl to specify the
10990    root dir of the openssl installation, as in
10991
10992         ./configure --with-ssl=/usr/ssl_here
10993
10994  - Corrected the 'reconf' script to work better with some shells.
10995
10996  Jörn Hartroth (26 August 1999)
10997  - Fixed the Mingw32 makefiles in lib/ and corrected the file.c for win32
10998    compiles.
10999
11000 Version 5.11
11001
11002  Daniel (25 August 1999)
11003  - John Weismiller pointed out a bug in the header-line
11004    realloc() system in download.c.
11005
11006  - I added lib/file.[ch] to offer a first, simple, file:// support. It
11007    probably won't do much good on win32 system at this point, but I see it
11008    as a start.
11009
11010  - Made the release archives get a Makefile in the root dir, which can be
11011    used to start the compiling/building process easier. I haven't really
11012    changed any INSTALL text yet, I wanted to get some feed-back on this
11013    first.
11014
11015  Daniel (17 August 1999)
11016  - Another Location: bug. Curl didn't do proper relative locations if the
11017    original URL had cgi-parameters that contained a slash. Nusu's page
11018    again.
11019
11020  - Corrected the NO_PROXY usage. It is a list of substrings that if one of
11021    them matches the tail of the host name it should connect to, curl should
11022    not use a proxy to connect there. Pointed out to me by Douglas
11023    E. Wegscheid.  I also changed the README text a little regarding this.
11024
11025  Daniel (16 August 1999)
11026  - Fixed a memory bug with http-servers that sent Location: to a Location:
11027    page. Nusu's page showed this too.
11028
11029  - Made cookies work a lot better. Setting the same cookie name several times
11030    used to add more cookies instead of replacing the former one which it
11031    should've. Nusu <nus at intergorj.ro> brought me an URL that made this
11032    painfully visible...
11033
11034  Troy (15 August 1999)
11035  - Brought new .spec files as well as a patch for configure.in that lets the
11036    configure script find the openssl files better, even when the include
11037    files are in /usr/include/openssl
11038
11039 Version 5.10
11040
11041  Daniel (13 August 1999)
11042  - SSL_CTX_set_default_passwd_cb() has been modified in the 0.9.4 version of
11043    OpenSSL. Now why couldn't they simply add a *new* function instead of
11044    modifying the parameters of an already existing function? This way, we get
11045    a compiler warning if compiling with 0.9.4 but not with earlier. So, I had
11046    to come up with a #if construction that deals with this...
11047
11048  - Made curl output the SSL version number get displayed properly with 0.9.4.
11049
11050  Troy (12 August 1999)
11051  - Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also
11052    a bit rearranged.
11053  
11054  Daniel (12 August 1999)
11055  - I had to copy a good <arpa/telnet.h> include file into the curl source
11056    tree to enable the silly win32 systems to compile. The distribution rights
11057    allows us to do that as long as the file remains unmodified.
11058
11059  - I corrected a few minor things that made the compiler complain when
11060    -Wall -pedantic was used.
11061
11062  - I'm moving the official curl web page to http://curl.haxx.nu. I think it
11063    will make it easier to remember as it is a lot shorter and less cryptic.
11064    The old one still works and shows the same info.
11065
11066  Daniel (11 August 1999)
11067  - Albert Chin-A-Young mailed me another correction for NROFF in the
11068    configure.in that is supposed to be better for IRIX users.
11069
11070  Daniel (10 August 1999)
11071  - Albert Chin-A-Young helped me with some stupid Makefile things, as well as
11072    some fiddling with the getdate.c stuff that he had problems with under
11073    HP-UX v10. getdate.y will now be compiled into getdate.c if the appropriate
11074    yacc or bison is found by the configure script. Since this is slightly new,
11075    we need to test the output getdate.c with win32 systems to make sure it
11076    still compiles there.
11077
11078  Daniel (5 August 1999)
11079  - I've just setup a new mailing list with the intention to keep discussions
11080    around libcurl development in it. I mainly expect it to be for thoughts and
11081    brainstorming around a "next generation" library, rather than nitpicking
11082    about the current implementation or details in the current libcurl.
11083
11084    To join our happy bunch of future-looking geeks, enter 'subscribe
11085    <address>' in the body of a mail and send it to
11086    libcurl-request@listserv.fts.frontec.se.  Curl bug reports, the usual curl
11087    talk and everything else should still be kept in this mailing list. I've
11088    started to archive this mailing list and have put the libcurl web page at
11089    www.fts.frontec.se/~dast/libcurl/.
11090
11091  - Stefan Kanthak contacted me regarding a few problems in the configure
11092    script which he discovered when trying to make curl compile and build under
11093    Siemens SINIX-Z V5.42B2004!
11094
11095  - Marcus Klein very accurately informed me that src/version.h was not present
11096    in the CVS repository. Oh, how silly...
11097
11098  - Linus Nielsen rewrote the telnet:// part and now curl offers limited telnet
11099    support. If you run curl like 'curl telnet://host' you'll get all output on
11100    the screen and curl will read input from stdin. You'll be able to login and
11101    run commands etc, but since the output is buffered, expect to get a little
11102    weird output.
11103
11104    This is still in its infancy and it might get changed. We need your
11105    feed-back and input in how this is best done.
11106
11107    WIN32 NOTE: I bet we'll get problems when trying to compile the current
11108    lib/telnet.c on win32, but I think we can sort them out in time.
11109
11110  - David Sanderson reported that FORCE_ALLOCA_H or HAVE_ALLOCA_H must be
11111    defined for getdate.c to compile properly on HP-UX 11.0. I updated the
11112    configure script to check for alloca.h which should make it.
11113
11114  Daniel (4 August 1999)
11115  - I finally got to understand Marcus Klein's ftp download resume problem,
11116    which turns out to be due to different outputs from different ftp
11117    servers. It makes ftp download resuming a little trickier, but I've made
11118    some modifications I really believe will work for most ftp servers and I do
11119    hope you report if you have problems with this!
11120
11121  - Added text about file transfer resuming to README.curl.
11122
11123  Daniel (2 August 1999)
11124  - Applied a progress-bar patch from Lars J. Aas. It offers
11125    a new styled progress bar enabled with -#/--progress-bar. 
11126
11127  T. Yamada <tai at imasy.or.jp> (30 July 1999)
11128  - It breaks with segfault when 1) curl is using .netrc to obtain
11129    username/password (option '-n'), and 2) is automatically redirected to
11130    another location (option '-L').
11131
11132    There is a small bug in lib/url.c (block starting from line 641), which
11133    tries to take out username/password from user- supplied command-line
11134    argument ('-u' option). This block is never executed on first attempt since
11135    CONF_USERPWD bit isn't set at first, but curl later turns it on when it
11136    checks for CONF_NETRC bit. So when curl tries to redo everything due to
11137    redirection, it segfaults trying to access *data->userpwd.
11138
11139 Version 5.9.1
11140
11141  Daniel (30 July 1999)
11142  - Steve Walch pointed out that there is a memory leak in the formdata
11143    functions. I added a FormFree() function that is now used and supposed to
11144    correct this flaw.
11145
11146  - Mark Wotton reported:
11147    'curl -L https://www.cwa.com.au/' core dumps.  I managed to cure this by
11148    correcting the cleanup procedure. The bug seems to be gone with my OpenSSL
11149    0.9.2b, although still occurs when I run the ~100 years old SSLeay 0.8.0. I
11150    don't know whether it is curl or SSLeay that is to blame for that.
11151
11152  - Marcus Klein:
11153    Reported an FTP upload resume bug that I really can't repeat nor understand.
11154    I leave it here so that it won't be forgotten.
11155
11156  Daniel (29 July 1999)
11157  - Costya Shulyupin suggested support for longer URLs when following Location:
11158    and I could only agree and fix it!
11159
11160  - Leigh Purdie found a problem in the upload/POST department. It turned out
11161    that http.c accidentaly cleared the pointer instead of the byte counter
11162    when supposed to.
11163
11164  - Costya Shulyupin pointed out a problem with port numbers and Location:. If
11165    you had a server at a non-standard port that redirected to an URL using a
11166    standard port number, curl still used that first port number.
11167
11168  - Ralph Beckmann pointed out a problem when using both CONF_FOLLOWLOCATION
11169    and CONF_FAILONERROR simultaneously. Since the CONF_FAILONERROR exits on
11170    the 302-code that the follow location header outputs it will never show any
11171    html on location: pages. I have now made it look for >=400 codes if
11172    CONF_FOLLOWLOCATION is set.
11173
11174  - 'struct slist' is now renamed to 'struct curl_slist' (as suggested by Ralph
11175    Beckmann).
11176
11177  - Joshua Swink and Rick Welykochy were the first to point out to me that the
11178    latest OpenSSL package now have moved the standard include path. It is now
11179    in /usr/local/ssl/include/openssl and I have now modified the --enable-ssl
11180    option for the configure script to use that as the primary path, and I
11181    leave the former path too to work with older packages of OpenSSL too.
11182
11183  Daniel (9 June 1999)
11184  - I finally understood the IRIX problem and now it seem to compile on it!
11185    I am gonna remove those #define strcasecmp() things once and for all now.
11186
11187  Daniel (4 June 1999)
11188  - I adjusted the FTP reply 227 parser to make the PASV command work better
11189    with more ftp servers. Appearantly the Roxen Challanger server replied
11190    something curl 5.9 could deal with! :-( Reported by Ashley Reid-Montanaro
11191    and Mark Butler brought a solution for it.
11192
11193  Daniel (26 May 1999)
11194  - Rearranged. README is new, the old one is now README.curl and I added a
11195    README.libcurl with text I got from Ralph Beckmann.
11196
11197  - I also updated the INSTALL text.
11198
11199  Daniel (25 May 1999)
11200  - David Jonathan Lowsky correctly pointed out that curl didn't properly deal
11201    with form posting where the variable shouldn't have any content, as in curl
11202    -F "form=" www.site.com. It was now fixed.
11203
11204 Version 5.9
11205
11206  Daniel (22 May 1999)
11207  - I've got a bug report from Aaron Scarisbrick in which he states he has some
11208    problems with -L under FreeBSD 3.0. I have previously got another bug
11209    report from Stefan Grether which points at an error with similar sympthoms
11210    when using win32. I made the allocation of the new url string a bit faster
11211    and different, don't know if it actually improves anything though...
11212
11213  Daniel (20 May 1999)
11214  - Made the cookie parser deal with CRLF newlines too.
11215
11216  Daniel (19 May 1999)
11217  - Download() didn't properly deal with failing return codes from the sread()
11218    function. Adam Coyne found the problem in the win32 version, and Troy Engel
11219    helped me out isolating it.
11220
11221  Daniel (16 May 1999)
11222  - Richard Adams pointed out a bug I introduced in 5.8. --dump-header doesn't
11223    work anymore! :-/ I fixed it now.
11224
11225  - After a suggestion by Joshua Swink I added -S / --show-error to force curl
11226    to display the error message in case of an error, even if -s/--silent was
11227    used.
11228
11229  Daniel (10 May 1999)
11230  - I moved the stuff concerning HTTP, DICT and TELNET it their own source
11231    files now. It is a beginning on my clean-up of the sources to make them
11232    layer all those protocols better to enable more to be added easier in the
11233    future!
11234
11235  - Leon Breedt sent me some files I've not put into the main curl
11236    archive. They're for creating the Debian package thingie. He also sent me a
11237    debian package that I've made available for download at the web page
11238
11239  Daniel (9 May 1999)
11240  - Made it compile on cygwin too.
11241
11242  Troy Engel (7 May 1999)
11243  - Brought a series of patches to allow curl to compile smoothly on MSVC++ 6
11244    again!
11245
11246  Daniel (6 May 1999)
11247  - I changed the #ifdef HAVE_STRFTIME placement for the -z code so that it
11248    will be easier to discover systems that don't have that function and thus
11249    can't use -z successfully. Made the strftime() get used if WIN32 is defined
11250    too.
11251
11252 Version 5.8
11253
11254  Daniel (5 May 1999)
11255  - I've had it with this autoconf/automake mess. It seems to work allright
11256    for most people who don't have automake installed, but for those who have
11257    there are problems all over.
11258
11259    I've got like five different bug reports on this only the last
11260    week... Claudio Neves and Federico Bianchi and root <duggerj001 at
11261    hawaii.rr.com> are some of them reporting this.
11262
11263    Currently, I have no really good fix since I want to use automake myself to
11264    generate the Makefile.in files. I've found out that the @SHELL@-problems
11265    can often be fixed by manually invoking 'automake' in the archive root
11266    before you run ./configure... I've hacked my maketgz script now to fiddle
11267    a bit with this and my tests seem to work better than before at least!
11268
11269  Daniel (4 May 1999)
11270  - mkhelp.pl has been doing badly lately. I corrected a case problem in
11271    the regexes.
11272
11273  - I've now remade the -o option to not touch the file unless it needs to.
11274    I had to do this to make -z option really fine, since now you can make a
11275    curl fetch and use a local copy's time when downloading to that file, as
11276    in:
11277
11278         curl -z dump -o dump remote.site.com/file.html
11279
11280    This will only get the file if the remote one is newer than the local.
11281    I'm aware that this alters previous behaviour a little. Some scripts out
11282    there may depend on that the file is always touched...
11283
11284  - Corrected a bug in the SSLv2/v3 selection.
11285
11286  - Felix von Leitner requested that curl should be able to send
11287    "If-Modified-Since" headers, which indeed is a fair idea.  I implemented it
11288    right away! Try -z <expression> where expression is a full GNU date
11289    expression or a file name to get the date from!
11290
11291  Stephan Lagerholm (30 Apr 1999)
11292  - Pointed out a problem with the src/Makefile for FreeBSD. The RM variable
11293    isn't set and causes the make to fail.
11294
11295  Daniel (26 April 1999)
11296  - Am I silly or what? Irving Wolfe pointed out to me that the curl version
11297    number was not set properly. Hasn't been since 5.6. This was due to a bug
11298    in my maketgz script!
11299
11300  David Eriksson (25 Apr 1999)
11301  - Found a bug in cookies.c that made it crash at times.
11302
11303 Version 5.7.1
11304
11305  Doug Kaufman (23 Apr 1999)
11306  - Brought two sunos 4 fixes. One of them being the hostip.c fix mentioned
11307    below and the other one a correction in include/stdcheaders.h
11308
11309  - Added a paragraph about compiling with the US-version of openssl to the
11310    INSTALL file.
11311
11312  Daniel
11313  - New mailing list address. Info updated on the web page as well as in the
11314    README file
11315
11316  Greg Onufer (20 Apr 1999)
11317  - hostip.c didn't compile properly on SunOS 5.5.1.
11318    It needs an #include <sys/types.h>
11319
11320 Version 5.7
11321
11322  Daniel (Apr 20 1999)
11323  - Decided to upload a non-beta version right now!
11324
11325  - Made curl support any-length HTTP headers. The destination buffer is now
11326    simply enlarged every time it turns out to be too small!
11327
11328  - Added the FAQ file to the archive. Still a bit smallish, but it is a
11329    start.
11330
11331  Eric Thelin (15 Apr 1999)
11332  - Made -D accept '-' instead of filename to write to stdout.
11333
11334 Version 5.6.3beta
11335
11336  Daniel (Apr 12 1999)
11337
11338  - Changed two #ifdef WIN32 to better #ifdef <errorcode> when connect()ing
11339    in url.c and ftp.c. Makes cygwin32 deal with them better too. We should
11340    try to get some decent win32-replacement there. Anyone?
11341
11342  - The old -3/--crlf option is now ONLY --crlf!
11343
11344  - I changed the "SSL fix" to a more lame one, but that doesn't remove as
11345    much functionality. Now I've enabled the lib to select what SSL version it
11346    should try first. Appearantly some older SSL-servers don't like when you
11347    talk v3 with them so you need to be able to force curl to talk v2 from the
11348    start. The fix dated April 6 and posted on the mailing list forced curl to
11349    use v2 at all times using a modern OpenSSL version, but we don't really
11350    want such a crippled solution.
11351  
11352  - Marc Boucher sent me a patch that corrected a math error for the
11353    "Curr.Speed" progress meter.
11354
11355  - Eric Thelin sent me a patch that enables '-K -' to read a config file from
11356    stdin.
11357
11358  - I found out we didn't close the file properly before so I added it!
11359
11360  Daniel (Apr 9 1999)
11361  - Yu Xin pointed out a problem with ftp download resume.  It didn't work at
11362    all! ;-O
11363
11364  Daniel (Apr 6 1999)
11365  - Corrected the version string part generated for the SSL version.
11366
11367  - I found a way to make some other SSL page work with openssl 0.9.1+ that
11368    previously didn't (ssleay 0.8.0 works with it though!). Trying to get
11369    some real info from the OpenSSL guys to see how I should do to behave the
11370    best way. SSLeay 0.8.0 shouldn't be that much in use anyway these days!
11371
11372 Version 5.6.2beta
11373
11374  Daniel (Apr 4 1999)
11375  - Finally have curl more cookie "aware". Now read carefully. This is how
11376    it works.
11377    To make curl read cookies from an already existing file, in plain header-
11378    format (like from the headers of a previous fetch) invoke curl with the
11379    -b flag like:
11380
11381         curl -b file http://site/foo.html
11382
11383    Curl will then use all cookies it finds matching. The old style that sets
11384    a single cookie with -b is still supported and is used if the string
11385    following -b includes a '=' letter, as in "-b name=daniel".
11386
11387    To make curl read the cookies sent in combination with a location: (which
11388    sites often do) point curl to read a non-existing file at first (i.e
11389    to start with no existing cookies), like:
11390
11391         curl -b nowhere http://site/setcookieandrelocate.html
11392
11393  - Added a paragraph in the TODO file about the SSL problems recently
11394    reported. Evidently, some kind of SSL-problem curl may need to address.
11395
11396  - Better "Location:" following.
11397
11398  Douglas E. Wegscheid (Tue, 30 Mar 1999)
11399  - A subsecond display patch.
11400
11401  Daniel (Mar 14 1999)
11402  - I've separated the version number of libcurl and curl now. To make
11403    things a little easier, I decided to start the curl numbering from
11404    5.6 and the former version number known as "curl" is now the one
11405    set for libcurl.
11406
11407  - Removed the 'enable-no-pass' from configure, I doubt anyone wanted
11408    that.
11409
11410  - Made lots of tiny adjustments to compile smoothly with cygwin under
11411    win32. It's a killer for porting this to win32, bye bye VC++! ;-)
11412    Compiles and builds out-of-the-box now. See the new wordings in
11413    INSTALL for details.
11414
11415  - Beginning experiments with downloading multiple document from a http
11416    server while remaining connected.
11417
11418 Version 5.6beta
11419
11420  Daniel (Mar 13 1999)
11421  - Since I've changed so much, I thought I'd just go ahead and implement the
11422    suggestion from Douglas E. Wegscheid. -D or --dump-header is now storing
11423    HTTP headers separately in the specified file.
11424
11425  - Added new text to INSTALL on what to do to build this on win32 now.
11426
11427  - Aaargh. I had to take a step back and prefix the shared #include files
11428    in the sources with "../include/" to please VC++...
11429
11430  Daniel (Mar 12 1999)
11431  - Split the url.c source into many tiny sources for better readability
11432    and smaller size.
11433
11434  Daniel (Mar 11 1999)
11435  - Started to change stuff for a move to make libcurl and a more separate
11436    curl application that uses the libcurl. Made the libcurl sources into
11437    the new lib directory while the curl application will remain in src as
11438    before. New makefiles, adjusted configure script and so.
11439
11440    libcurl.a built quickly and easily. I better make a better interface to
11441    the lib functions though.
11442
11443    The new root dir include/ is supposed to contain the public information
11444    about the new libcurl. It is a little ugly so far :-)
11445
11446
11447  Daniel (Mar 1 1999)
11448  - Todd Kaufmann sent me a good link to Netscape's cookie spec as well as the
11449    info that RFC 2109 specifies how to use them.  The link is now in the
11450    README and the RFC in the RESOURCES.
11451
11452  Daniel (Feb 23 1999)
11453  - Finally made configure accept --with-ssl to look for SSL libs and includes
11454    in the "standard" place /usr/local/ssl...
11455
11456  Daniel (Feb 22 1999)
11457  - Verified that curl linked fine with OpenSSL 0.9.1c which seems to be
11458    the most recent.
11459
11460  Henri Gomez (Fri Feb  5 1999)
11461  - Sent in an updated curl-ssl.spec. I still miss the script that builds an
11462    RPM automatically...
11463
11464 Version 5.5.1
11465
11466  Mark Butler (27 Jan 1999)
11467  - Corrected problems in Download().
11468
11469  Danitel Stenberg (25 Jan 1999)
11470  - Jeremie Petit pointed out a few flaws in the source that prevented it from
11471    compile warning free with the native compiler under Digital Unix v4.0d.
11472
11473 Version 5.5
11474
11475  Daniel Stenberg (15 Jan 1999)
11476  - Added Bjorns small text to the README about the DICT protocol.
11477
11478  Daniel Stenberg (11 Jan 1999)
11479  - <jswink at softcom.net> reported about the win32-versioin: "Doesn't use
11480    ALL_PROXY environment variable". Turned out to be because of the static-
11481    buffer nature of the win32 environment variable calls!
11482
11483  Bjorn Reese (10 Jan 1999)
11484  - I have attached a simple addition for the DICT protocol (RFC 2229).
11485    It performs dictionary lookups. The output still needs to be better
11486    formatted.
11487
11488    To test it try (the exact format, and more examples are described in
11489    the RFC)
11490
11491         dict://dict.org/m:hello
11492         dict://dict.org/m:hello::soundex
11493
11494
11495  Vicente Garcia (10 Jan 1999)
11496  - Corrected the progress meter for files larger than 20MB.
11497
11498  Daniel Stenberg (7 Jan 1999)
11499  - Corrected the -t and -T help texts. They claimed to be FTP only.
11500
11501 Version 5.4
11502
11503  Daniel Stenberg
11504  (7 Jan 1999)
11505  - Irving Wolfe reported that curl -s didn't always supress the progress
11506    reporting. It was the form post that autoamtically always switched it on
11507    again. This is now corrected!
11508
11509  (4 Jan 1999)
11510  - Andreas Kostyrka suggested I'd add PUT and he helped me out to test it. If
11511    you use -t or -T now on a http or https server, PUT will be used for file
11512    upload.
11513
11514    I removed the former use of -T with HTTP. I doubt anyone ever really used
11515    that.
11516
11517  (4 Jan 1999)
11518  - Erik Jacobsen found a width bug in the mprintf() function.  I corrected it
11519    now.
11520
11521  (4 Jan 1999)
11522  - As John V. Chow pointed out to me, curl accepted very limited URL sizes. It
11523    should now accept path parts that are up to at least 4096 bytes.
11524
11525  - Somehow I screwed up when applying the AIX fix from Gilbert Ramirez, so
11526    I redid that now.
11527
11528 Version 5.3a (win32 only)
11529
11530  Troy Engel
11531  - Corrected a win32 bug in the environment variable part.
11532
11533 Version 5.3
11534
11535  Gilbert Ramirez Jr. (21 Dec 1998)
11536  - I have implemented the "quote" function of FTP clients. It allows you to
11537    send arbitrary commands to the remote FTP server. I chose the -Q/--quote
11538    command-line arguments.
11539
11540    You can have more than one quoted string, and curl will apply them in
11541    order.  This is what I use for my MVS upload:
11542
11543   curl -B --crlf -Q "site lrecl=80" -Q "site blk=8000" -T file ftp://os390/test
11544
11545    Curl will send the two quoted "site" commands in the proper order.
11546
11547  - Made it compile smoothly on AIX.
11548
11549  Gilbert Ramirez Jr. (18 Dec 1998)
11550  - Brought an MVS patch: -3/--mvs, for ftp upload to the MVS ftp server.
11551
11552  Troy Engel (17 Dec 1998)
11553  - Brought a correction that fixes the win32 curl bug.
11554
11555  Daniel Stenberg
11556  - A bug, pointed out to me by Dr H. T. Leung, caused curl to crash on the -A
11557    flag on certain systems. Actually, all systems should've!
11558
11559  - Added a few defines to make directories/file names get build nicer (with _
11560    instead of . and \ instead of / in win32).
11561
11562  - steve <fisk at polar.bowdoin.edu> reported a weird bug that occured if the
11563    ftp server response line had a parenthesis on the line before the (size)
11564    info. I hope it works better now!
11565
11566 Version 5.2.1
11567
11568  Steven G. Johnson (Dec 14, 1998)
11569  - Brought a fix that corrected a crash in 5.2 due to bad treatment of the
11570    environment variables.
11571
11572 Version 5.2
11573
11574  Daniel Stenberg (Dec 14, 1998)
11575  - Rewrote the mkhelp script and now, the mkhelp.pl script generates the
11576    hugehelp.c file from the README *and* the man page file curl.1. By using
11577    both files, I no longer need to have double information in both the man
11578    page and the README as well. So, win32-users will only have the hugehelp.c
11579    file for all info, but then, they download the plain binary most times
11580    anyway.
11581
11582  - gcc2.8.1 with the -Wall flag complaints a lot on subscript has type `char'
11583    if I don't explicitly typecast the argument to isdigit() or isspace() to
11584    int. So I did to compile warning free with that too.
11585
11586  - Added checks for 'long double' and 'long long' in the configure script. I
11587    need those for the mprintf.c source to compile well on non long long
11588    comforming systems!
11589
11590 Version 5.1 (not publicly released)
11591
11592  Daniel Stenberg (Dec 10, 1998)
11593  - I got a request for a pre-compiled NT Alpha version. Anyone?
11594
11595  - Added Lynx/CERN www lib proxy environment variable support. That means curl
11596    now reads and understands the following environment variables:
11597
11598         HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY
11599
11600    They should be set for protocol-specific proxies. General proxy should be
11601    set with
11602         
11603         ALL_PROXY
11604
11605    And a comma-separated list of host names that shouldn't go through any
11606    proxy is set in (only an asterisk, '*' matches all hosts).
11607
11608         NO_PROXY
11609
11610    The usage of the -x/--proxy flag overrides the environment variables.
11611
11612  - Proxy can now be specified with a procotol:// prefix.
11613
11614  - Wrote the curl.1 man page.
11615
11616  - Introduced a whole new dynamic buffer system for all sprintf()s. It is
11617    based on the *printf() package by yours truly and Bjorn Reese. Hopefully,
11618    there aren't that many buffer overflow risks left now.
11619
11620  - Ah, I should mention I've compiled and built curl successfully under
11621    solaris 2.6 with gcc now, gcc 2.7.2 won't work but 2.8.1 did ok.
11622
11623  Oren Tirosh (Dec 3, 1998)
11624  - Brought two .spec files, to use when creating (Linux) Redhat style RPM
11625    packages. They're named curl.spec and curl-ssl.spec.
11626
11627  Troy Engel
11628  - Supplied the src/Makefile.vc6 for easy compiling with VC++ under Win32.
11629
11630 Version 5.0
11631
11632  Daniel Stenberg (Dec 1, 1998)
11633  - Not a single bug report in ages.
11634  - Corrected getpass.c and main.c to compile warning and error free with the
11635    Win32 VC++ crap.
11636
11637 Version 5.0 beta 24
11638
11639  Daniel Stenberg (Nov 20, 1998)
11640
11641  HOW TO BUILD A RELEASE ARCHIVE:
11642
11643  * Pre-requisite software:
11644    What              To build what             Reads data from
11645    ====              =============             ===============
11646    GNU automake      Makefile.in, aclocal.m4   configure.in
11647      GNU make(1)      - " -
11648      GNU gcc(1)       - " -
11649    GNU autoconf      configure                 configure.in
11650    GNU autoheader(2) config.h.in               configure.in, acconfig.h
11651
11652  * Make sure all files that should be part of the archive are put in FILES.
11653
11654  * Run './maketgz' and enter version number of the new to become archive.
11655
11656    maketgz does:
11657
11658    - Enters the newly created version number in url.h.
11659    - (If you don't have automake, this script will warn about that, but unless
11660      you have changed the Makefile.am files, that is nothing to care about.)
11661      If you have it, it'll run it.
11662    - If you have autoconf, the configure.in will be edited to get the newly
11663      created version number and autoconf will be run.
11664    - Creates a new directory named curl-<version>. (Actually, it uses the base
11665      name of the current directory up to the first '-'.)
11666    - Copies all files mentioned in FILES to the new directory. Saving
11667      permissions and directory structure.
11668    - Uses tar to create an archive of it all, named curl-<version>.tar.gz
11669    - gzips the archive
11670    - Removes the new directory and all its contents.
11671
11672  * When done, you have an archive stored in your directory named
11673    curl-<version>.tar.gz.
11674
11675    Done!
11676
11677    (1) They're required to make automake run properly.
11678    (2) It is distributed as a part of the GNU autoconf archive.
11679
11680  Daniel Stenberg (Nov 18, 1998)
11681  - I changed the TAG-system. If you ever used urlget() from this package in
11682    another product, you need to recompile with the new headers. I did this
11683    new stuff to better deal with different compilers and system with different
11684    variable sizes. I think it makes it a little more portable. This proves
11685    to compile warning free with the problematic IRIX compiler!
11686  - Win32 compiled with a silly error. Corrected now.
11687  - Brian Chaplin reported yet another problem in
11688    multiline FTP responses. I've tried to correct it. I mailed him a new
11689    version and I hope he gets back soon with positive feedback!
11690  - Improved the 'maketgz' to create a temporary directory tree which it makes
11691    an archive from instead of the previous renaming of the current one.
11692  - Mailing list opened (see README).
11693  - Made -v more verbose on the PASV section of ftp transfers. Now it tells
11694    host name and IP of the new host (and port number). I also added a section
11695    about PORT vs PASV in the README.
11696
11697 Version 5.0 beta 21
11698
11699  Angus Mackay (Nov 15, 1998)
11700  - Introduced automake stuff.
11701
11702  Daniel Stenberg (Nov 13, 1998)
11703  - Just made a successful GET of a document from an SSL-server using my own
11704    private certificate for authentication! The certificate has to be in PEM
11705    format. You do that the easiest way (although not *that* easy) by
11706    downloading the SSLyeay PKCS#12-patch by Dr Stephen N. Henson from his site
11707    at: http://www.drh-consultancy.demon.co.uk/. Using his tool, you can
11708    convert any modern Netscape or (even) MSIE certificate to PEM-format.  Use
11709    it with 'curl -E <certificate:password> https://site.com'.  If this isn't a
11710    cool feature, then I don't know what cool features look like! ;-)
11711  - Working slowly on telnet connections. #define TRY_TELNET to try it out.
11712    (curl -u user:passwd "telnet://host.com/cat .login" is one example) I do
11713    have problem to define how it should work. The prime purpose for this must
11714    be to get (8bit clean) files via telnet, and it really isn't that easy to
11715    get files this way. Still having problems with \n being converted to \r\n.
11716
11717  Angus Mackay (Nov 12, 1998)
11718  - Corrected another bug in the long parameter name parser.
11719  - Modified getpass.c (NOTE: see the special licensing in the top of that
11720    source file).
11721
11722  Daniel Stenberg (Nov 12, 1998)
11723  - We may have removed the silly warnings from url.c when compiled under IRIX.
11724    Thanks again to Bjorn Reese and Martin Staael.
11725  - Wrote formfind.pl which is a new perl script intended to help you find out
11726    how a FORM submission should be done. This needs a little more work to get
11727    really good.
11728
11729  Daniel Stenberg (Nov 11, 1998)
11730  - Made the HTTP header-checker accept white spaces before the HTTP/1.? line.
11731    Appearantly some proxies/sites add such at times (my test proxy did when I
11732    downloaded a gopher page with it)!
11733  - Moved the former -h to -M and made -h show the short help text instead. I
11734    had to enable a forced help text option. Now an even shorter help text will
11735    be presented when an unknown option and similar, is used.
11736  - stdcheaders.h didn't work with IRIX 6.4 native cc compiler. I hope my
11737    changes don't make other versions go nuts instead.
11738
11739  Daniel Stenberg (Nov 10, 1998)
11740  - Added a weird check in the configure script to check for the silly AIX
11741    warnings about my #define strcasecmp() stuff. I do that define to prevent
11742    me and other contributors to accidentaly use that function name instead
11743    of strequal()...
11744  - I bugfixed Angus's getpass.c very little.
11745  - Fixed the verbose flag names to getopt-style, i.e 'curl --loc' will be
11746    sufficient instead of --location as "loc" is a unique prefix. Also, anything
11747    after a '--' is treated as an URL. So if you do have a host with a weeeird
11748    name you can do 'curl -- -host.com'.
11749  - Another getopt-adjust; curl now accepts flags after the URL on the command
11750    line. 'curl www.foo.com -O' is perfectly valid.
11751  - Corrected the .curlrc parser so that strtok() is no longer used and I
11752    believe it works better. Even URLs can be specified in it now.
11753
11754  Angus Mackay (Nov 9, 1998)
11755  - Replaced getpass.c with a newly written one, not under GPL license
11756  - Changed OS to a #define in config.h instead of compiler flag
11757  - Makefile now uses -DHAVE_CONFIG_H
11758
11759  Daniel Stenberg (Nov 9, 1998)
11760  - Ok, I expanded the tgz-target to update the version string on each occation
11761    I build a release archive!
11762  - I reacted on Angus Mackay's initiative and remade the parameter parser to
11763    be more getopt compliant. Curl now supports "merged" flags as in 
11764         curl -lsv ftp.site.com
11765    Do note that I had to move three short-names of the options. Parameters
11766    that needs an additional string such as -x must be stand-alone or the
11767    last in a merged sequence:
11768         curl -lsx my-proxy ftp.site.com
11769    is ok, but using the flags in a different order like '-lxs' would cause
11770    unexpected results (as the 's' option would be skipped).
11771  - I've changed the headers in all files that are subject to the MozPL
11772    license, as they are supposed to look like when conforming.
11773  - Made the configure script make the config.h. The former config.h is now
11774    setup.h.
11775  - The RESOURCES and TODO files have been added to the archive.
11776
11777  Angus Mackay (Nov 5, 1998)
11778  - Fixed getpass.c and various configure stuff
11779
11780  Daniel Stenberg (Nov 3, 1998)
11781  - Use -H/--header for custom HTTP-headers. Lets you pass on your own
11782    specified headers to the remote server. I wouldn't recommend trying to use
11783    a header with a defined usage according to standards. Use this flag once
11784    for every custom header you want to add.
11785  - Use -B/--ftp-ascii to force ftp to use ASCII mode when transfering files.
11786  - Corrected the 'getlinks.pl' script, I accidentally left my silly proxy
11787    usage in there! Since the introduction of the .curlrc file, it is easier to
11788    write scripts that use curl since proxies and stuff should be in the
11789    .curlrc file anyway.
11790  - Introducing the new -F flag for HTTP POST. It supports multipart/form-data
11791    which means it is gonna be possible to upload files etc through HTTP POST.
11792    Shiraz Kanga asked for the feature and my brother,
11793    Björn Stenberg helped me design the user
11794    interface for this beast.  This feature requires quite some docs,
11795    since it has turned out not only quite capable, but also complicated! :-)
11796  - A note here, since I've received mail about it. SSLeay versions prior to
11797    0.8 will *not* work with curl!
11798  - Wil Langford reported a bug that occurred since curl
11799    did not properly use CRLF when issuing ftp commands. I fixed it.
11800  - Rearranged the order config files are read. .curlrc is now *always* read
11801    first and before the command line flags. -K config files then act as
11802    additional config items.
11803  - Use -q AS THE FIRST OPTION specified to prevent .curlrc from being read.
11804  - You can now disable a proxy by using -x "". Useful if the .curlrc file
11805    specifies a proxy and you wanna fetch something without going through
11806    that.
11807  - I'm thinking of dropping the -p support. Its really not useful since ports
11808    could (and should?) be specified as :<port> appended on the host name
11809    instead, both in URLs and to proxy host names.
11810  - Martin Staael reports curl -L bugs under Windows NT
11811    (test with URL http://come.to/scsde). This bug is not present in this
11812    version anymore.
11813  - Added support for the weird FTP URL type= thing. You can download a file
11814    using ASCII transfer by appending ";type=A" to the right of it. Other
11815    available types are type=D for dir-list (NLST) and type=I for binary
11816    transfer. I can't say I've ever seen anyone use this kind of URL though!
11817    :-)
11818  - Troy Engel pointed out a bug in my getenv("HOME")
11819    usage for win32 systems. I introduce getenv.c to better cope with
11820    this. Mr Engel helps me with the details around that...
11821  - A little note to myself and others, I should make the win32-binary built
11822    with SSL support...
11823  - Ryan Nelson sent me comments about building curl
11824    with SSL under FreeBSD. See the Makefile for details. Using the configure
11825    script, it should work better and automatically now...
11826  - Cleaned up in the port number mess in the source. No longer stores and uses
11827    proxy port number separate from normal port number.
11828  - 'configure' script working. Confirmed compiles on:
11829     Host         SSL  Compiler
11830     SunOS 5.5    no   gcc
11831     SunOS 5.5.1  yes  gcc
11832     SunOS 5.6    no   cc  (with gcc, it has the "gcc include files" problem)
11833     SunOS 4.1.3  no   gcc (without ANSI C headers)
11834     SunOS 4.1.2  no   gcc (native compiler failed)
11835     Linux 2.0.18 no   gcc
11836     Linux 2.0.32 yes  gcc
11837     Linux 2.0.35 no   gcc (with glibc)
11838     IRIX 6.2     no   gcc (cc compiles generate a few warnings)
11839     IRIX 6.4     no   cc  (generated warnings though)
11840     Win32        no   Borland
11841     OSF4.0       no   ?
11842
11843  - Ooops. The 5beta (and 4.10) under win32 failed if the HOME variable wasn't
11844    set.
11845  - When using a proxy, curl now guesses and uses the protocol part in cases
11846    like:
11847         curl -x proxy:80 www.site.com
11848    Proxies normally go nuts unless http:// is prepended to the host name, so
11849    if curl is used like this, it guesses protocol and appends the protocol
11850    string before passing it to the proxy. It already did this when used
11851    without proxy.
11852  - Better port usage with SSL through proxy now. If you specified a different
11853    https-port when accessing through a proxy, it didn't use that number
11854    correctly. I also rewrote the code that parses the stuff read from the
11855    proxy when you wanna connect through it with SSL.
11856  - Bjorn Reese helped me work around one of the compiler
11857    warnings on IRIX native cc compiles.
11858
11859 Version 4.10 (Oct 26, 1998)
11860  Daniel Stenberg
11861  - John A. Bristor suggested a config file switch,
11862    and since I've been having that idea kind of in the background for a long
11863    time I rewrote the parameter parsing function a little and now I introduce
11864    the -K/--config flag. I also made curl *always* (unless -K is used) try to
11865    load the .curlrc file for command line parameters. The syntax for the
11866    config file is the standard command line argument style. Details in 'curl
11867    -h' or the README.
11868  - I removed the -k option. Keep-alive isn't really anything anyone would
11869    want to enable with curl anyway.
11870  - Martin Staael helped me add the 'irix' target. Now
11871    "make irix" should build curl successfully on non-gcc SGI machines.
11872  - Single switches now toggle behaviours. I.e if you use -v -v the second
11873    will switch off the verbose mode the first one enabled. This is so that
11874    you can disable a default setting a .curlrc file enables etc.
11875
11876 Version 4.9 (Oct 7, 1998)
11877  Daniel Stenberg
11878  - Martin Staael suggested curl would support cookies.
11879    I added -b/--cookie to enable free-text cookie data to be passed. There's
11880    also a little blurb about general cookie stuff in the README/help text.
11881  - dmh <dmh at jet.es> suggested HTTP resume capabilities. Although you could
11882    manually get curl to resume HTTP documents, I made the -c resume flag work
11883    for HTTP too (unless -r is used too, which would be very odd anyway).
11884  - Added checklinks.pl to the archive. It is a still experimental perl script
11885    that checks all links of a web page by using curl.
11886  - Rearranged the archive hierarchy a little. Build the executable in the
11887    src/ dir from now on!
11888  - Version 4.9 and hereafter, is no longer released under the GPL license.
11889    I have now updated the LEGAL file etc and now this is released using the
11890    Mozilla Public License to avoid the plague known as "the GPL virus". You
11891    must make the source available if you decide to change and/or redistribute
11892    curl, but if you decide to use curl within something else you do not need
11893    to offer the world the source to that too.
11894  - Curl did not like HTTP servers that sent no headers at all on a GET
11895    request.  It is a violation of RFC2068 but appearantly some servers do
11896    that anyway.  Thanks to Gordon Beaton for the report!
11897  - -L/--location was added after a suggestion from Martin Staael. This makes
11898    curl ATTEMPT to follow the Location: redirect if one is present in the HTTP
11899    headers. If -i or -I is used with this flag, you will see headers from all
11900    sites the Location: points to. Do note that the first server can point to a
11901    second that points to a third etc. It seems the Location: parameter (said
11902    to be an AbsoluteURI in RFC2068) isn't always absolute.. :-/ Anyway, I've
11903    made curl ATTEMPT to do the best it can to deal with the reality.
11904  - Added getlinks.pl to the archive. getlinks.pl selectively downloads
11905    files that a web page links to.
11906
11907 Version 4.8.4
11908  Daniel Stenberg
11909  - As Julian Romero Nieto reported, curl reported wrong version number.
11910  - As Teemu Yli-Elsila pointed out, the win32 version of 4.8 (and probably all
11911    other versions for win32) didn't work with binary files since I'm too used
11912    to the UNIX style fopen() where binary and text don't differ...
11913  - Ralph Beckmann brought me some changes that lets curl compile error and
11914    warning free with -Wall -pedantic with g++. I also took the opportunity to
11915    clean off some unused variables and similar.
11916  - Ralph Beckmann made me aware of a really odd bug now corrected. When curl
11917    read a set of headers from a HTTP server, divided into more than one read
11918    and the first read showed a full line *exactly* (i.e ending with a
11919    newline), curl did not behave well.
11920
11921 Version 4.8.3
11922  Daniel Stenberg
11923  - I was too quick to release 4.8.2 with too little testing. One of the
11924    changes is now reverted slightly to the 4.8.1 way since 4.8.2 couldn't
11925    upload files. I still think both problems corrected in 4.8.2 remain
11926    corrected.  Reported by Julian Romero Nieto.
11927
11928 Version 4.8.2
11929  Daniel Stenberg
11930  - Bernhard Iselborn reported two FTP protocol errors curl did. They're now
11931    corrected. Both appeared when getting files from a MS FTP server! :-)
11932
11933 Version 4.8.1
11934  Daniel Stenberg
11935  - Added a last update of the progress meter when the transfer is done. The
11936    final output on the screen didn't have to be the final size transfered
11937    which made it sometimes look odd.
11938  - Thanks to David Long I got rid of a silly bug that happened if a HTTP-page
11939    had nothing but header. Appearantly Solaris deals with negative sizes in
11940    fwrite() calls a lot better than Linux does... =B-]
11941
11942 Version 4.8
11943  Daniel Stenberg
11944  - Continue FTP file transfer. -c is the switch. Note that you need to
11945    specify a file name if you wanna resume a download (you can't resume a
11946    download sent to stdout). Resuming upload may be limited by the server
11947    since curl is then using the non-RFC959 command SIZE to get the size of
11948    the target file before upload begins (to figure out which offset to
11949    use). Use -C to specify the offset yourself! -C is handy if you're doing
11950    the output to something else but a plain file or when you just want to get
11951    the end of a file.
11952  - recursiveftpget.pl now features a maximum recursive level argument.
11953
11954 Version 4.7
11955  Daniel Stenberg
11956  - Added support to abort a download if the speed is below a certain amount
11957    (speed-limit) bytes per second for a certain (speed-time) time.
11958  - Wrote a perl script 'recursiveftpget.pl' to recursively use curl to get a
11959    whole ftp directory tree. It is meant as an example of how curl can be
11960    used.  I agree it isn't the wisest thing to do to make a separate new
11961    connection for each file and directory for this.
11962
11963 Version 4.6
11964  Daniel Stenberg
11965  - Added a first attempt to optionally parse the .netrc file for login user
11966    and password. If used with http, it enables user authentication. -n is
11967    the new switch.
11968  - Removed the extra newlines on the default user-agent string.
11969  - Corrected the missing ftp upload error messages when it failed without the
11970    verbose flag set. Gary W. Swearingen found it.
11971  - Now using alarm() to enable second-precision timeout even on the name
11972    resolving/connecting phase. The timeout is although reset after that first
11973    sequence. (This should be corrected.) Gary W. Swearingen reported.
11974  - Now spells "Unknown" properly, as in "Unknown option 'z'"... :-)
11975  - Added bug report email address in the README.
11976  - Added a "current speed" field to the progress meter. It shows the average
11977    speed the last 5 seconds. The other speed field shows the average speed of
11978    the entire transfer so far.
11979
11980 Version 4.5.1
11981  Linas Vepstas
11982  - SSL through proxy fix
11983  - Added -A to allow User-Agent: changes
11984
11985  Daniel Stenberg 
11986  - Made the -A work when SSL-through-proxy.
11987
11988 Version 4.5
11989  Linas Vepstas
11990  - More SSL corrections
11991  - I've added a port to AIX.
11992  - running SSL through a proxy causes a chunk of code to be executred twice.
11993    one of those blocks needs to be deleted.
11994
11995  Daniel Stenberg
11996  - Made -i and -I work again
11997
11998 Version 4.4
11999  Linas Vepstas
12000  - -x can now also specify proxyport when used as in 'proxyhost:proxyport'
12001  - SSL fixes
12002
12003 Version 4.3
12004  Daniel Stenberg
12005  - Adjusted to compile under win32 (VisualC++ 5). The -P switch does not
12006    support network interface names in win32. I couldn't figure out how!
12007
12008 Version 4.2
12009  Linas Vepstas / Sampo Kellomaki
12010  - Added SSL / SSLeay support (https://)
12011  - Added the -T usage for HTTP POST.
12012
12013  Daniel Stenberg
12014  - Bugfixed the SSL implementation.
12015  - Made -P a lot better to use other IP addresses. It now accepts a following
12016    parameter that can be either
12017         interface - i.e "eth0" to specify which interface's IP address you
12018                     want to use
12019         IP address - i.e "192.168.10.1" to specify exact IP number
12020         host name - i.e "my.host.domain" to specify machine
12021         "-"       - (any single-letter string) to make it pick the machine's
12022                     default
12023  - The Makefile is now ready to compile for solaris, sunos4 and linux right
12024    out of the box.
12025  - Better generated version string seen with 'curl -V'
12026
12027 Version 4.1
12028  Daniel Stenberg
12029  - The IP number returned by the ftp server as a reply to PASV does no longer
12030    have to DNS resolve. In fact, no IP-number-only addresses have to anymore.
12031  - Binds better to available port when -P is used.
12032  - Now LISTs ./ instead of / when used as in ftp://ftp.funet.fi/. The reason
12033    for this is that exactly that site, ftp.funet.fi, does not allow LIST /
12034    while LIST ./ is fine. Any objections?
12035
12036 Version 4 (1998-03-20)
12037  Daniel Stenberg
12038  - I took another huge step and changed both version number and project name!
12039    The reason for the new name is that there are just one too many programs
12040    named urlget already and this program already can a lot more than merely
12041    getting URLs, and the reason for the version number is that I did add the
12042    pretty big change in -P and since I changed name I wanted to start with
12043    something fresh!
12044  - The --style flags are working better now.
12045  - Listing directories with FTP often reported that the file transfer was
12046    incomplete. Wrong assumptions were too common for directories, why no
12047    size will be attempted to get compared on them from now on.
12048  - Implemented the -P flag that let's the ftp control issue a PORT command
12049    instead of the standard PASV.
12050  - -a for appending FTP uploads works.
12051
12052 ***************************************************************************
12053
12054 Version 3.12 (14 March 1998)
12055  Daniel Stenberg
12056  - End-of-header tracking still lacked support for \r\n or just \n at the
12057    end of the last header line.
12058  Sergio Barresi
12059  - Added PROXY authentication.
12060  Rafael Sagula
12061  - Fixed some little bugs.
12062
12063 Version 3.11
12064  Daniel Stenberg
12065  - The header parsing was still not correct since the 3.2 modification...
12066
12067 Version 3.10
12068  Daniel Stenberg
12069  - 3.7 and 3.9 were simultaneously developed and merged into this version.
12070  - FTP upload did not work correctly since 3.2.
12071
12072 Version 3.9
12073  Rafael Sagula
12074  - Added the "-e <url> / --referer <url>" option where we can specify
12075    the referer page. Obviously, this is necessary only to fool the
12076    server, but...
12077
12078 Version 3.7
12079  Daniel Stenberg
12080  - Now checks the last error code sent from the ftp server after a file has
12081    been received or uploaded. Wasn't done previously.
12082  - When 'urlget <host>' is used without a 'protocol://' first in the host part,
12083    it now checks for host names starting with ftp or gopher and if it does,
12084    it uses that protocol by default instead of http.
12085
12086 Version 3.6
12087  Daniel Stenberg
12088  - Silly mistake made the POST bug. This has now also been tested to work with
12089    proxy.
12090
12091 Version 3.5
12092  Daniel Stenberg
12093  - Highly inspired by Rafael Sagula's changes to the 3.1 that added an almost
12094    functional POST, I applied his changes into this version and made them work.
12095    (It seems POST requires the Content-Type and Content-Length headers.) It is
12096    now usable with the -d switch.
12097
12098 Version 3.3 - 3.4
12099  Passed to avoid confusions
12100
12101 Version 3.2
12102  Daniel Stenberg
12103  - Major rewrite of two crucial parts of this code: upload and download.
12104    They are both now using a select() switch, that allows much better
12105    progress meter and time control. 
12106  - alarm() usage removed completely
12107  - FTP get can now list directory contents if the path ends with a slash '/'.
12108    Urlget on a ftp-path that doesn't end with a slash means urlget will
12109    attempt getting it as a file name.
12110  - FTP directory view supports -l for "list-only" which lists the file names
12111    only.
12112  - All operations support -m for max time usage in seconds allowed.
12113  - FTP upload now allows the size of the uploaded file to be provided, and
12114    thus it can better check it actually uploaded the whole file. It also
12115    makes the progress meter for uploads much better!
12116  - Made the parameter parsing fail in cases like 'urlget -r 900' which
12117    previously tried to connect to the host named '900'.
12118
12119 Version 3.1
12120  Kjell Ericson
12121  - Pointed out how to correct the 3 warnings in win32-compiles.
12122
12123  Daniel Stenberg
12124  - Removed all calls to exit().
12125  - Made the short help text get written to stdout instead of stderr.
12126  - Made this file instead of keeping these comments in the source.
12127  - Made two callback hooks, that enable external programs to use urlget()
12128    easier and to grab the output/offer the input easier.
12129  - It is evident that Win32-compiles are painful. I watched the output from
12130    the Borland C++ v5 and it was awful. Just ignore all those warnings.
12131
12132 Version 3.0
12133  Daniel Stenberg
12134  - Added FTP upload capabilities. The name urlget gets a bit silly now
12135    when we can put too... =)
12136  - Restructured the source quite a lot.
12137    Changed the urlget() interface. This way, we will survive changes much
12138    better. New features can come and old can be removed without us needing
12139    to change the interface. I've written a small explanation in urlget.h
12140    that explains it.
12141  - New flags include -t, -T, -O and -h. The -h text is generated by the new
12142    mkhelp script.
12143
12144 Version 2.9
12145  Remco van Hooff
12146  - Added a fix to make it compile smoothly on Amiga using the SAS/C
12147    compiler.
12148   
12149  Daniel Stenberg
12150  - Believe it or not, but the STUPID Novell web server seems to require
12151    that the Host: keyword is used, so well I use it and I (re-introduce) the
12152    urlget User-Agent:. I still have to check that this Host: usage works with
12153    proxies... 'Host:' is required for HTTP/1.1 GET according to RFC2068.
12154
12155 Version 2.8
12156  Rafael Sagula
12157  - some little modifications
12158
12159 Version 2.7
12160  Daniel Stenberg
12161  - Removed the -l option and introduced the -f option instead. Now I'll
12162    rewrite the former -l kludge in an external script that'll use urlget to
12163    fetch multipart files like that.
12164  - '-f' is introduced, it means Fail without output in case of HTTP server
12165    errors (return code >=300).
12166  - Added support for -r, ranges. Specify which part of a document you 
12167    want, and only that part is returned. Only with HTTP/1.1-servers.
12168  - Split up the source in 3 parts. Now all pure URL functions are in
12169    urlget.c and stuff that deals with the stand-alone program is in main.c.
12170  - I took a few minutes and wrote an embryo of a README file to explain
12171    a few things.
12172
12173 Version 2.6
12174  Daniel Stenberg
12175  - Made the -l (loop) thing use the new CONF_FAILONERROR which makes
12176    urlget() return error code if non-successful. It also won't output anything
12177    then. Now finally removed the HTTP 1.0 and error 404 dependencies.
12178  - Added -I which uses the HEAD request to get the header only from a
12179    http-server.
12180
12181 Version 2.5
12182  Rafael Sagula
12183  - Made the progress meter use HHH:MM:SS instead of only seconds.
12184
12185 Version 2.4
12186  Daniel Stenberg
12187  - Added progress meter. It appears when downloading > BUFFER SIZE and
12188    mute is not selected. I found out that when downloading large files from
12189    really really slow sites, it is desirable to know the status of the
12190    download. Do note that some downloads are done unawaring of the size, which
12191    makes the progress meter less thrilling ;) If the output is sent to a tty,
12192    the progress meter is shut off.
12193  - Increased buffer size used for reading.
12194  - Added length checks in the user+passwd parsing.
12195  - Made it grok user+passwd for HTTP fetches. The trick is to base64
12196    encode the user+passwd and send an extra header line. Read chapter 11.1 in
12197    RFC2068 for details. I added it to be used just like the ftp one.  To get a
12198    http document from a place that requires user and password, use an URL
12199    like:
12200
12201         http://user:passwd@www.site.to.leach/doc.html
12202
12203    I also added the -u flag, since WHEN USING A PROXY YOU CAN'T SPECIFY THE
12204    USER AND PASSWORD WITH HTTP LIKE THAT. The -u flag works for ftp too, but
12205    not if used with proxy. To do the same as the above one, you can invoke:
12206
12207         urlget -u user:passwd http://www.site.to.leach/doc.html
12208
12209 Version 2.3
12210  Rafael Sagula
12211  - Added "-o" option (output file)
12212  - Added URG_HTTP_NOT_FOUND return code.
12213    (Daniel's note:)
12214    Perhaps we should detect all kinds of errors and instead of writing that
12215    custom string for the particular 404-error, use the error text we actually
12216    get from the server. See further details in RFC2068 (HTTP 1.1
12217    definition). The current way also relies on a HTTP/1.0 reply, which newer
12218    servers might not do.
12219  - Looping mode ("-l" option). It's easier to get various split files.
12220    (Daniel's note:)
12221    Use it like 'urlget -l 1 http://from.this.site/file%d.html', which will
12222    make urlget to attempt to fetch all files named file1.html, file2.html etc
12223    until no more files are found. This is only a modification of the
12224    STAND_ALONE part, nothing in the urlget() function was modfified for this.
12225  Daniel Stenberg
12226  - Changed the -h to be -i instead. -h should be preserved to help use.
12227  - Bjorn Reese indicated that Borland _might_ use '_WIN32' instead of the
12228    VC++ WIN32 define and therefore I added a little fix for that.
12229
12230 Version 2.2
12231  Johan Andersson
12232  - The urlget function didn't set the path to url when using proxy.
12233  - Fixed bug with IMC proxy. Now using (almost) complete GET command.
12234   
12235  Daniel Stenberg
12236  - Made it compile on Solaris. Had to reorganize the includes a bit.
12237    (so Win32, Linux, SunOS 4 and Solaris 2 compile fine.)
12238  - Made Johan's keepalive keyword optional with the -k flag (since it
12239    makes a lot of urlgets take a lot longer time).
12240  - Made a '-h' switch in case you want the HTTP-header in the output.
12241
12242 Version 2.1
12243  Daniel Stenberg and Kjell Ericson
12244  - Win32-compilable
12245  - No more global variables
12246  - Mute option (no output at all to stderr)
12247  - Full range of return codes from urlget(), which is now written to be a
12248    function for easy-to-use in [other] programs.
12249  - Define STAND_ALONE to compile the stand alone urlget program
12250  - Now compiles with gcc options -ansi -Wall -pedantic ;)
12251
12252 Version 2.0
12253  - Introducing ftp GET support. The FTP URL type is recognized and used.
12254  - Renamed the project to 'urlget'.
12255  - Supports the user+passwd in the FTP URL (otherwise it tries anonymous
12256    login with a weird email address as password).
12257
12258 Version 1.5
12259  Daniel Stenberg
12260  - The skip_header() crap messed it up big-time. By simply removing that
12261    one we can all of a sudden download anything ;)
12262  - No longer requires a trailing slash on the URLs.
12263  - If the given URL isn't prefixed with 'http://', HTTP is assumed and
12264    given a try!
12265  - 'void main()' is history.
12266
12267 Version 1.4
12268  Daniel Stenberg
12269  - The gopher source used the ppath variable instead of path which could
12270    lead to disaster.
12271
12272 Version 1.3
12273  Daniel Stenberg
12274  - Well, I added a lame text about the time it took to get the data. I also
12275    fought against Johan to prevent his -f option (to specify a file name
12276    that should be written instead of stdout)! =)
12277  - Made it write 'connection refused' for that particular connect()
12278    problem.
12279  - Renumbered the version. Let's not make silly 1.0.X versions, this is
12280    a plain 1.3 instead.
12281
12282 Version 1.2
12283  Johan Andersson
12284  - Discovered and fixed the problem with getting binary files. puts() is
12285    now replaced with fwrite(). (Daniel's note: this also fixed the buffer
12286    overwrite problem I found in the previous version.)
12287
12288  Rafael Sagula
12289  - Let "-p" before "-x".
12290
12291  Daniel Stenberg
12292  - Bugfixed the proxy usage. It should *NOT* use nor strip the port number
12293    from the URL but simply pass that information to the proxy. This also
12294    made the user/password fields possible to use in proxy [ftp-] URLs.
12295    (like in ftp://user:password@ftp.my.site:8021/README)
12296
12297  Johan Andersson
12298  - Implemented HTTP proxy support.
12299  - Receive byte counter added.
12300
12301  Bjorn Reese
12302  - Implemented URLs (and skipped the old syntax).
12303  - Output is written to stdout, so to achieve the above example, do:
12304    httpget http://143.54.10.6/info_logo.gif > test.gif
12305
12306 Version 1.1
12307  Daniel Stenberg
12308  - Adjusted it slightly to accept named hosts on the command line. We
12309    wouldn't wanna use IP numbers for the rest of our lifes, would we?
12310
12311 Version 1.0
12312   Rafael Sagula
12313   - Wrote the initial httpget, which started all this!