Moved 7.19.2 and older entries from CHANGES to CHANGES.0 (the latter is not
[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 2008. The most recent changes are
10 always kept in the CHANGES file.
11
12 Version 7.19.2 (13 November 2008)
13
14 Michal Marek (13 Nov 2008)
15 - Fixed a potential data loss in Curl_client_write() when the transfer is
16   paused.
17
18 Daniel Stenberg (11 Nov 2008)
19 - Rainer Canavan filed bug #2255627
20   (http://curl.haxx.se/bug/view.cgi?id=2255627) which pointed out that a
21   program using libcurl's multi interface to download a HTTPS page with a
22   libcurl built powered by OpenSSL, would easily get silly and instead hand
23   over SSL details as data instead of the actual HTTP headers and body. This
24   happened because libcurl would consider the connection handshake done too
25   early. This problem was introduced at September 22nd 2008 with my fix of the
26   bug #2107377
27
28   The correct fix is now instead done within the GnuTLS-handling code, as both
29   the OpenSSL and the NSS code already deal with this situation in similar
30   fashion. I added test case 560 in an attempt to verify this fix, but
31   unfortunately it didn't trigger it even before this fix!
32
33 Yang Tse (11 Nov 2008)
34 - Related with bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535)
35   Daniel Fandrich noticed that curl_addrinfo was also missing in the build
36   process of other four non-configure platforms. Added now.
37
38 Daniel Fandrich (7 Nov 2008)
39 - The getifaddrs() version of Curl_if2ip() crashed when used on a Linux
40   system with a TEQL load-balancing device configured, which doesn't
41   have an address.  Thanks to Adam Sampson for spotting this (bug #2234923).
42
43 Yang Tse (6 Nov 2008)
44 - Merged existing IPv4 and IPv6 Curl_ip2addr functions into a single one
45   which now also takes a protocol address family argument.
46
47 - Bug #2230535 (http://curl.haxx.se/bug/view.cgi?id=2230535) pointed out a
48   problem with MSVC 6 makefile that caused a build failure. It was noted that
49   the curl_addrinfo.obj reference was missing. I took the opportunity to sort
50   the list in which this was missing. Issue submitted by John Wilkinson.
51
52 Version 7.19.1 (5 November 2008)
53
54 Daniel Stenberg (4 Nov 2008)
55 - CURLINFO_FILETIME now works for file:// transfers as well
56
57 Daniel Stenberg (3 Nov 2008)
58 - Bug #2218480 (http://curl.haxx.se/bug/view.cgi?id=2218480) pointed out a
59   problem with my CURLINFO_PRIMARY_IP fix from October 7th that caused a NULL
60   pointer read. I also took the opportunity to clean up this logic (storing of
61   the connection's IP address) somewhat as we had it stored in two different
62   places and ways previously and they are now unified.
63
64 Yang Tse (3 Nov 2008)
65 - Fix undersized IPv6 address internal buffer. IPv6 address strings longer
66   than 35 characters would be truncated.
67
68 Daniel Stenberg (2 Nov 2008)
69 - Daniel Johnson reported and fixed:
70
71   When c-ares isn't enabled, libcurl by default calls getaddrinfo with family
72   set to PF_UNSPEC which causes getaddrinfo to return all available addresses,
73   both IPv4 and IPv6. Libcurl then tries each one until it can connect. If the
74   net connection doesn't support IPv6, libcurl can still fall back to IPv4.
75
76   However, since c-ares doesn't support PF_UNSPEC, when it's used it defaults
77   to using family=PF_INET6 and therefore only returns IPv6 addresses when AAAA
78   records are available, even if IPv4 addresses are also available. The effect
79   is that since my ISP doesn't do IPv6, libcurl can't connect at all to a site
80   that has AAAA records. It will work if I explicitly use CURL_IPRESOLVE_V4 or
81   --ipv4 with the curl tool. I discovered this when curl would fail to connect
82   to seemingly random sites. It turns out they weren't random, they were sites
83   with AAAA records.
84
85   So now libcurl defaults to PF_INET... until c-ares has been tought to offer
86   both.
87
88 Yang Tse (31 Oct 2008)
89 - Tests 558 and 559 are stabilized. These two tests were initially introduced
90   to aid in the location of a seg-fault which was only triggered on non-debug
91   builds done with the icc 9.1 Intel compiler. Test 558 does not trigger the
92   problem, but test 559 does trigger it. As of today, it isn't yet absolutely
93   clear if it is a compiler optimizer issue or a memory corruption one.
94
95 Yang Tse (30 Oct 2008)
96 - Use our Curl_addrinfo structure definition to handle address info data even
97   when a system addrinfo struct is available. Provide and use a wrapper around
98   systems getaddrinfo function, Curl_getaddrinfo_ex which returns a pointer to
99   a list of dynamically allocated Curl_addrinfo structs.
100
101   Configure will check freeaddrinfo and getaddrinfo functions and define
102   preprocessor symbols HAVE_FREEADDRINFO and HAVE_GETADDRINFO when appropriate.
103
104 Daniel Fandrich (29 Oct 2008)
105 - Fixed a bug that caused a few bytes of garbage to be sent after a
106   curl_easy_pause() during a chunky upload. Reported by Steve Roskowski.
107
108 Daniel Fandrich (28 Oct 2008)
109 - Changed the "resolve" test precheck program to verify that an IPv6 socket
110   can be created before resolving the IPv6 name.  In the context of running
111   a test, it doesn't make sense to run an IPv6 test when a host is resolvable
112   but IPv6 isn't usable.  This should fix failures of test 1085 on hosts with
113   library and DNS support for IPv6 but where actual use of IPv6 has been
114   administratively disabled.
115
116 Daniel Fandrich (24 Oct 2008)
117 - Added experimental support for zlib and OpenSSL on Symbian OS.
118
119 Daniel Fandrich (21 Oct 2008)
120 - Fixed some problems with SFTP range support to fix test cases 634 through
121   637.
122
123 Daniel Fandrich (17 Oct 2008)
124 - Fixed a compile error reported by Albert Chin on AIX and IRIX when using
125   GTLS.
126
127 Daniel Stenberg (16 Oct 2008)
128 - Igor Novoseltsev added CURLOPT_PROXYUSER and CURLOPT_PROXYPASSWORD that then
129   make CURLOPT_PROXYUSERPWD sort of deprecated. The primary motive for adding
130   these new options is that they have no problems with the colon separator
131   that the CURLOPT_PROXYUSERPWD option does.
132
133 Daniel Stenberg (15 Oct 2008)
134 - Pascal Terjan filed bug #2154627
135   (http://curl.haxx.se/bug/view.cgi?id=2154627) which pointed out that libcurl
136   uses strcasecmp() in multiple places where it causes failures when the
137   Turkish locale is used. This is because 'i' and 'I' isn't the same letter so
138   strcasecmp() on those letters are different in Turkish than in English (or
139   just about all other languages). I thus introduced a totally new internal
140   function in libcurl (called Curl_raw_equal) for doing case insentive
141   comparisons for english-(ascii?) style strings that thus will make "file"
142   and "FILE" match even if the Turkish locale is selected.
143
144 Daniel Fandrich (15 Oct 2008)
145 - A <precheck> command is considered to have failed if it returns a non-zero
146   return code.  This way, if the precheck command can't be run at all for
147   whatever reason, it's treated as a precheck failure which causes the
148   test to be skipped.
149
150 Daniel Stenberg (15 Oct 2008)
151 - John Wilkinson filed bug #2155496
152   (http://curl.haxx.se/bug/view.cgi?id=2155496) pointing out an error case
153   without a proper human-readable error message. When a read callback returns
154   a too large value (like when trying to return a negative number) it would
155   trigger and the generic error message then makes the proplem slightly
156   different to track down. I've added an error message for this now.
157
158 Daniel Fandrich (9 Oct 2008)
159 - Fixed the --interface option to work with IPv6 connections on glibc
160   systems supporting getifaddrs(). Also fixed a problem where an IPv6
161   address could be chosen instead of an IPv4 one for --interface when it
162   involved a name lookup.
163
164 Daniel Fandrich (8 Oct 2008)
165 - Added tests 1082 through 1085 to test symbolic --interface parameters
166
167 - Added tests 633 through 637 to test the new file range support for SFTP.
168   All but the first test cause an infinite loop or other failure and so
169   are added to DISABLED.
170
171 Daniel Stenberg (8 Oct 2008)
172 - John Wilkinson filed bug #2152270
173   (http://curl.haxx.se/bug/view.cgi?id=2152270) which identified and fixed a
174   CURLINFO_REDIRECT_URL memory leak and an additional wrong-doing:
175
176   Any subsequent transfer with a redirect leaks memory, eventually crashing
177   the process potentially.
178
179   Any subsequent transfer WITHOUT a redirect causes the most recent redirect
180   that DID occur on some previous transfer to still be reported.
181
182 - Igor Novoseltsev filed bug #2111613
183   (http://curl.haxx.se/bug/view.cgi?id=2111613) that eventually identified a
184   flaw in how the multi_socket interface in some cases missed to call the
185   timeout callback when easy interfaces are removed and added within the same
186   millisecond.
187
188 - Igor Novoseltsev brought a patch that introduced two new options to
189   curl_easy_setopt: CURLOPT_USERNAME and CURLOPT_PASSWORD that sort of
190   deprecates the good old CURLOPT_USERPWD since they allow applications to set
191   the user name and password independently and perhaps more importantly allow
192   both to contain colon(s) which CURLOPT_USERPWD doesn't fully support.
193
194 Daniel Fandrich (7 Oct 2008)
195 - Changed the handling of read/write errors in Curl_perform() to allow a
196   a fresh connection to be made in such cases and the request retransmitted.
197   This should fix test case 160.  Added test case 1079 in an attempt to
198   test a similar connection dropping scenario, but as a race condition, it's
199   hard to test reliably.
200
201 - Created test cases 1080 and 1081 to reproduce a problem of
202   CURLINFO_REDIRECT_URL leaking memory and returning incorrect results when
203   two URLs are requested. Reported by vmpdemo in bug #2152270
204
205 Daniel Stenberg (7 Oct 2008)
206 - Fixed CURLINFO_PRIMARY_IP: When libcurl created a connection to host A then
207   the app re-used the handle to do a connection to host B and then again
208   re-used the handle to host A, it would not update the info with host A's IP
209   address (due to the connection being re-used) but it would instead report
210   the info from host B.
211
212 Yang Tse (7 Oct 2008)
213 - Added --enable-optimize configure option to enable and disable compiler
214   optimizations to allow decoupled setting from --enable-debug.
215
216 Yang Tse (2 Oct 2008)
217 - Added --enable-warnings configure option to enable and disable strict
218   compiler warnings to allow decoupled setting from --enable-debug.
219
220   runtests.pl will now run with picky compiler warnings enabled unless
221   explicitly disabled.
222
223 Daniel Fandrich (1 Oct 2008)
224 - "make clean" now cleans out the docs and tests directories, too.
225
226 Daniel Stenberg (30 Sep 2008)
227 - The libcurl FTP code now returns CURLE_REMOTE_FILE_NOT_FOUND error when SIZE
228   gets a 550 response back for the cases where a download (or NOBODY) is
229   wanted. It still allows a 550 as response if the SIZE is used as part of an
230   upload process (like if resuming an upload is requested and the file isn't
231   there before the upload). I also modified the FTP test server and a few test
232   cases accordingly to match this modified behavior.
233
234 Daniel Stenberg (29 Sep 2008)
235 - Daniel Egger provided a patch that allows you to disable proxy support in
236   libcurl to somewhat reduce the size of the binary. Run configure
237   --disable-proxy.
238
239 Daniel Fandrich (29 Sep 2008)
240 - Moved all signal-based name resolution timeout handling into a single new
241   Curl_resolv_timeout function to reduce coupling.
242
243 Daniel Stenberg (29 Sep 2008)
244 - Ian Lynagh provided a patch that now makes CURLOPT_RANGE work fine for SFTP
245   downloads!
246
247 - Maxim Ivanov filed bug report #2107803
248   (http://curl.haxx.se/bug/view.cgi?id=2107803) "no CURLINFO_REDIRECT_URL in
249   multi mode" together with a patch that fixed the problem.
250
251 Daniel Stenberg (25 Sep 2008)
252 - Emanuele Bovisio submitted bug report #2126435. We fixed the HTTP Digest
253   auth code to not behave badly when getting a blank realm with
254   realm="". http://curl.haxx.se/bug/view.cgi?id=2126435
255
256 Daniel Fandrich (23 Sep 2008)
257 - Make sure not to dereference the wrong UrlState proto union member when
258   switching from one protocol to another in a single request (e.g.
259   redirecting from HTTP to FTP as in test 1055) by resetting
260   state.expect100header before every request.
261
262 Daniel Stenberg (23 Sep 2008)
263 - Introducing Jamie Lokier's function for date to epoch conversion used in the
264   date parser function. This makes our function less dependent on system-
265   provided functions and instead we do all the magic ourselves. We also no
266   longer depend on the TZ environment variable. Switching to our own converter
267   has some side-effect and they are noted here for future reference (taken
268   from a mail by mr Lokier):
269
270   time_t is not measured in seconds in the ANSI C standard - or even counted
271   uniformly - weird platforms can use other numeric representations of dates
272   in time_t - hence the difftime() function.
273
274   On POSIX time_t is measured in UTC seconds, which means not including leap
275   seconds.  But it's mentioned in a few places that some old POSIX-ish
276   environments include leap seconds in their time_t counts...
277
278   I'm pretty sure [the new implementation is] correct on anything truly POSIX.
279   And it's obviously a lot less dependent on platform quirks and corner cases
280   in many ways than the mktime() version.
281
282 - Rob Crittenden brought a patch to "add some locking for thread-safety to NSS
283   implementation".
284
285 Daniel Stenberg (22 Sep 2008)
286 - Made the SOCKS code use the new Curl_read_plain() function to fix the bug
287   Markus Moeller reported: http://curl.haxx.se/mail/archive-2008-09/0016.html
288
289 - recv() errors other than those equal to EAGAIN now cause proper
290   CURLE_RECV_ERROR to get returned. This made test case 160 fail so I've now
291   disabled it until we can figure out another way to exercise that logic.
292
293 - Michael Goffioul filed bug report #2107377 "Problem with multi + GnuTLS +
294   proxy" (http://curl.haxx.se/bug/view.cgi?id=2107377) that showed how a multi
295   interface using program didn't work when built with GnuTLS and a CONNECT
296   request was done over a proxy (basically test 502 over a proxy to a HTTPS
297   site). It turned out the ssl connect function would get called twice which
298   caused the second call to fail.
299
300 Daniel Fandrich (22 Sep 2008)
301 - Fixed test 539 to handle an out of memory condition that shows up now
302   that memdebug.h is included in the test programs.
303
304 Yang Tse (20 Sep 2008)
305 - Fix regression in configure script which affected OpenSSL builds on MSYS.
306
307 Yang Tse (19 Sep 2008)
308 - configure script now checks availability of the alarm() function.
309
310 Daniel Fandrich (18 Sep 2008)
311 - Don't bother to install a SIGALRM handler unless alarm() is available.
312   Also, leave the existing SIGALRM handler alone if the timeout is too small
313   to handle.
314
315 Daniel Fandrich (17 Sep 2008)
316 - Removed reference to curl-ca-bundle.crt in the host verification failure
317   error message.
318
319 Yang Tse (17 Sep 2008)
320 - Improve configure detection of gethostname(), localtime_r(), strstr(),
321   getservbyport_r(), gethostbyaddr_r() and gethostbyname_r().
322
323 Yang Tse (14 Sep 2008)
324 - Improve configure detection of strcasecmp(), strcasestr(), strcmpi(),
325   stricmp(), strlcat(), strncasecmp(), strncmpi() and strnicmp().
326
327 Yang Tse (13 Sep 2008)
328 - Disable tracking of fdopen() calls in the low-level memory leak tracking
329   code when fdopen() is not available, to avoid compiler error.
330
331 Yang Tse (12 Sep 2008)
332 - Further adjust detection of strerror_r() in the configure process, and
333   ensure that errno is not modified inside Curl_strerror().
334
335 Yang Tse (10 Sep 2008)
336 - Improve detection of gmtime_r(), strtoll(), sigaction(), strtok_r(),
337   strdup() and ftruncate() in the configure process.
338
339 Daniel Fandrich (9 Sep 2008)
340 - Mike Revi discovered some swapped speed switches documented in the curl man
341   page.
342
343 - Checked in some documentation and code improvements and fixes that I
344   discovered in the FreeBSD ports system.
345
346 Daniel Stenberg (8 Sep 2008)
347 - Dmitry Kurochkin patched a problem: I have found bug in pipelining through
348   proxy. I have a transparent proxy. When running with http_proxy environment
349   variable not set my test completes fine (it goes through transparent
350   proxy). When I set http_proxy variable my test hangs after the first
351   downloaded is complete. Looks like the second handle never gets out from
352   WAITDO state.
353
354   The fix: It makes checkPendPipeline move 1 handler from pend pipe to send
355   pipe if pipelining is not supported by server but there are no handles in
356   send and recv pipes.
357
358 - Stefan Krause pointed out that libcurl would wrongly send away cookies to
359   sites in cases where the cookie clearly has a very old expiry date. The
360   condition was simply that libcurl's date parser would fail to convert the
361   date and it would then count as a (timed-based) match. Starting now, a
362   missed date due to an unsupported date format or date range will now cause
363   the cookie to not match.
364
365 Daniel Fandrich (5 Sep 2008)
366 - Improved the logic that decides whether to use HTTP 1.1 features or not in a
367   request.  Setting a specific version with CURLOPT_HTTP_VERSION overrides
368   all other checks, but otherwise, a 1.0 request will be made if the server
369   is known to support only 1.0 because it previously responded so and the
370   connection was kept alive, or a response to a previous request on this handle
371   came back as 1.0. The latter could take place in cases like redirection or
372   authentication where several requests have to be made before the operation
373   is complete.  If any one of the servers in a redirection chain supports only
374   1.0, then remaining requests will be sent in 1.0 mode.
375
376 - Detect cases where an upload must be sent chunked and the server supports
377   only HTTP 1.0 and return CURLE_UPLOAD_FAILED.
378
379 Daniel Stenberg (5 Sep 2008)
380 - Martin Drasar provided the CURLOPT_POSTREDIR patch. It renames
381   CURLOPT_POST301 (but adds a define for backwards compatibility for you who
382   don't define CURL_NO_OLDIES). This option allows you to now also change the
383   libcurl behavior for a HTTP response 302 after a POST to not use GET in the
384   subsequent request (when CURLOPT_FOLLOWLOCATION is enabled). I edited the
385   patch somewhat before commit. The curl tool got a matching --post302
386   option. Test case 1076 was added to verify this.
387
388 - Introducing CURLOPT_CERTINFO and the corresponding CURLINFO_CERTINFO. By
389   enabling this feature with CURLOPT_CERTINFO for a request using SSL (HTTPS
390   or FTPS), libcurl will gather lots of server certificate info and that info
391   can then get extracted by a client after the request has completed with
392   curl_easy_getinfo()'s CURLINFO_CERTINFO option. Linus Nielsen Feltzing
393   helped me test and smoothen out this feature.
394
395   Unfortunately, this feature currently only works with libcurl built to use
396   OpenSSL.
397
398   This feature was sponsored by networking4all.com - thanks!
399
400 - Dmitriy Sergeyev pointed out that curl_easy_pause() didn't unpause properly
401   during certain conditions. I also changed this code to use realloc() based
402   on Daniel Fandrich's suggestion.
403
404 Guenter Knauf (4 Sep 2008)
405 - MingW32 non-configure builds are now largefile feature enabled by default.
406   NetWare LIBC builds are also now largefile feature enabled by default.
407
408 Yang Tse (4 Sep 2008)
409 - Several fixes related with print formatting string directives.
410
411 Daniel Fandrich (3 Sep 2008)
412 - Search for the FreeBSD CA cert file /usr/local/share/certs/ca-root.crt
413
414 Daniel Fandrich (2 Sep 2008)
415 - Fixed an out of memory problem that caused torture test failures in tests
416   706 and 707.
417
418 Daniel Stenberg (2 Sep 2008)
419 - Keith Mok added supported_protocols and supported_features to the pkg-config
420   file for libcurl, and while doing that fix he unified with curl-config.in
421   how the supported protocols and features are extracted and used, so both those
422   tools should now always be synced.
423
424 Version 7.19.0 (1 September 2008)
425
426 Daniel Fandrich (29 Aug 2008)
427 - Added tests 1071 through 1074 to test automatic downgrading from HTTP 1.1
428   to HTTP 1.0 upon receiving a response from the HTTP server.  Tests 1072
429   and 1073 are similar to test 1069 in that they involve the impossible
430   scenario of sending chunked data to a HTTP 1.0 server.  All these fail
431   and are added to DISABLED.
432
433 - Added test 1075 to test --anyauth with Basic authentication.
434
435 Daniel Stenberg (29 Aug 2008)
436 - When libcurl was doing a HTTP POST and the server would respond with
437   "Connection: close" and actually close the connection after the
438   response-body, libcurl could still have outstanding data to send and it
439   would not properly notice this and stop sending. This caused weirdness and
440   sad faces. http://curl.haxx.se/bug/view.cgi?id=2080222
441
442   Note that there are still reasons to consider libcurl's behavior when
443   getting a >= 400 response code while sending data, as Craig Perras' note
444   "http upload: how to stop on error" specifies:
445   http://curl.haxx.se/mail/archive-2008-08/0138.html
446
447 Daniel Stenberg (28 Aug 2008)
448 - Dengminwen reported that libcurl would lock a (cookie) share twice (without
449   an unlock in between) for a certain case and that in fact works when using
450   regular windows mutexes but not with pthreads'! Locks should of course not
451   get locked again so this is now fixed.
452   http://curl.haxx.se/mail/lib-2008-08/0422.html
453
454 - I'm abandoning the system with the web site mirrors (but keeping download
455   files bing mirrored) and thus I've changed the URL in the cookiejar header
456   to no longer use curlm.haxx.se but instead use the main site curl.haxx.se
457
458 Daniel Fandrich (27 Aug 2008)
459 - Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set
460   the HTTP method to GET (or HEAD) when given a value of 0.
461
462 - Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin.  Test
463   case 1069 fails in a similar manner to test 1065 so is added to DISABLED.
464
465 Yang Tse (27 Aug 2008)
466 - Fix generation of MS VC6 .dsp file to make it support compilation of either
467   dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes.
468
469 Daniel Fandrich (26 Aug 2008)
470 - Fixed out of memory problems that caused torture test failures in tests
471   1021 and 1067.
472
473 Yang Tse (26 Aug 2008)
474 - Added check and symbol definition for WIN32 file API usage in configure,
475   supporting configure's --disable-largefile option for WIN32 targets also.
476
477 - Non-configure systems which do not use config-win32.h configuration file,
478   and want to use the WIN32 file API, must define USE_WIN32_LARGE_FILES or
479   USE_WIN32_SMALL_FILES as appropriate in their own configuration files.
480
481 Daniel Stenberg (23 Aug 2008)
482 - Running 'make ca-firefox' in the root build dir will now run the new
483   firefox-db2pem.sh conversion script that converts a local Firefox db of ca
484   certs into PEM format, suitable for use with a OpenSSL or GnuTLS built
485   libcurl.
486
487 - Constantine Sapuntzakis fixed a bug when doing proxy CONNECT with the multi
488   interface, and the proxy would send Connection: close during the
489   authentication phase.  http://curl.haxx.se/bug/view.cgi?id=2069047
490
491 Daniel Fandrich (22 Aug 2008)
492 - Fixed a problem when --dump-header - was given with more than one URL,
493   which caused an error when the second header was dumped due to stdout
494   being closed.  Added test case 1066 to verify.  Also fixed a potential
495   problem where a closed file descriptor might be used for an upload
496   when more than one URL is given.
497
498 Yang Tse (22 Aug 2008)
499 - Improved libcurl's internal curl_m*printf() functions integral data type
500   size and signedness handling.
501
502 - Internal adjustments to better select/differentiate when large/small file
503   support is provided using WIN32 functions directly.
504
505 Daniel Fandrich (20 Aug 2008)
506 - Added an edited version of Vincent Le Normand's documentation of SFTP quote
507   commands to the man pages.
508
509 Daniel Stenberg (20 Aug 2008)
510 - Phil Pellouchoud pointed out that the windows version of libcurl had a
511   memory leak because it never called the OpenSSL function
512   CRYPTO_cleanup_all_ex_data() as it was supposed to. This was because of a
513   missing define in config-win32.h!
514
515 Gisle Vanem (18 Aug 2008)
516 - Updated lib/Makefile.Watcom with the option to use c-ares (USE_ARES=1).
517
518 Yang Tse (18 Aug 2008)
519 - Added test case 557 to verify libcurl's internal curl_m*printf() functions
520   formatting functionality when handling signed and unsigned longs, as well as
521   our curl_off_t data type.
522
523 Yang Tse (17 Aug 2008)
524 - OpenSSl enabled NetWare builds are changed to use the 'openssl' subdirectory
525   when including the OpenSSL header files. This is the recommended setting, this
526   prevents the undesired inclusion of header files with the same name as those
527   of OpenSSL but which do not belong to the OpenSSL package. The visible change
528   from previously released libcurl versions is that now OpenSSl enabled NetWare
529   builds also define USE_OPENSSL in config files, and that OpenSSL header files
530   must be located in a subdirectory named 'openssl'.
531
532 Yang Tse (16 Aug 2008)
533 - Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TU
534   remain in use as internal curl_off_t print formatting strings for the internal
535   *printf functions which still cannot handle print formatting string directives
536   such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and
537   other DOS/Windows compilers.
538
539 Daniel Fandrich (15 Aug 2008)
540 - Added test case 1063 to test invalid long file ranges with file: URLs and
541   1064 to test multiple http PUTs.
542
543 - Added test case 1065 to test a PUT with a single file but two URLs. This
544   was discovered to be problematic while investigating an incident reported by
545   Von back in May.  curl in this case doesn't include a Content-Length: or
546   Transfer-Encoding: chunked header which is illegal. This test case is
547   added to DISABLED until a solution is found.
548
549 Yang Tse (15 Aug 2008)
550 - C preprocessor macros used internally and equally available externally which
551   aid in the use of the curl_off_t data type are named: CURL_FORMAT_CURL_OFF_T,
552   CURL_FORMAT_CURL_OFF_TU, CURL_SIZEOF_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_T,
553   CURL_SUFFIX_CURL_OFF_TU, CURL_OFF_T_C and CURL_OFF_TU_C.
554
555 Yang Tse (13 Aug 2008)
556 - The size of long is a build time characteristic and as such it is now recorded
557   in curlbuild.h as CURL_SIZEOF_LONG. Definition now done from configure process
558   and in CVS curlbuild.h.dist for non-configure systems.
559
560 Daniel Fandrich (12 Aug 2008)
561 - Fixed a buffer overflow problem in Curl_proxyCONNECT that could occur
562   when a server responded with long headers and data.  Luckily, the buffer
563   overflowed into another unused buffer, so no actual harm was done.
564   Added test cases 1060 and 1061 to verify.
565
566 Daniel Stenberg (12 Aug 2008)
567 - Andy Tsouladze fixed runtests.pl to not attempt to execute the stunnel
568   _directory_ if that happened to appear in the path!
569
570 Yang Tse (12 Aug 2008)
571 - Added macros for minimum-width signed and unsigned curl_off_t integer
572   constants CURL_OFF_T_C and CURL_OFF_TU_C. The clever double helper macro
573   used internally to provide its functionality is thanks to Lars Nilsson.
574
575 Daniel Fandrich (11 Aug 2008)
576 - Fixed a boundary condition error in ftp_readresp() whereby a non-terminal
577   line of a multiline FTP response whose last byte landed exactly at the end
578   of the BUFSIZE-length buffer would be treated as the terminal response
579   line.  The following response code read in would then actually be the
580   end of the previous response line, and all responses from then on would
581   correspond to the wrong command. Test case 1062 verifies this.
582
583 - Stop closing a never-opened ftp socket.
584
585 Daniel Stenberg (11 Aug 2008)
586 - Constantine Sapuntzakis filed bug report #2042430
587   (http://curl.haxx.se/bug/view.cgi?id=2042430) with a patch. "NTLM Windows
588   SSPI code is not thread safe". This was due to libcurl using static
589   variables to tell wether to load the necessary SSPI DLL, but now the loading
590   has been moved to the more suitable curl_global_init() call.
591
592 - Constantine Sapuntzakis filed bug report #2042440
593   (http://curl.haxx.se/bug/view.cgi?id=2042440) with a patch. He identified a
594   problem when using NTLM over a proxy but the end-point does Basic, and then
595   libcurl would do wrong when the host sent "Connection: close" as the proxy's
596   NTLM state was erroneously cleared.
597
598 Yang Tse (11 Aug 2008)
599 - Added missing signed and unsigned curl_off_t integer constant suffixes for
600   internal and external use. CURL_SUFFIX_CURL_OFF_T, CURL_SUFFIX_CURL_OFF_TU.
601
602 Daniel Fandrich (7 Aug 2008)
603 - Fixed an uninitialized variable in multi_runsingle() that could cause a
604   request to prematurely end.
605
606 - Added test1059 to test the FTP proxy tunnel problem fixed July 11.
607
608 Yang Tse (7 Aug 2008)
609 - Added curlbuild.h and curlrules.h header files to libcurl's public headers.
610   File curlbuild.h is a generated file on configure-capable systems. This is
611   a first step towards configure-based info in public headers. Currently only
612   used to provide support for a curl_off_t data type which is not gated to
613   off_t. Further details are documented inside these mentioned header files.
614
615 - Fix CURL_CHECK_DEF so that when the expansion of the preprocessor symbol
616   results in a set of double-quoted strings, this macro will now return an
617   expansion which consists of a single double-quoted string as the result of
618   concatenating all of them.
619
620 - Skip data type check in DO_CURL_OFF_T_CHECK macro when argument is empty.
621
622 - Adjusted testcurl.pl to copy checked out curlbuild.h.dist as curlbuild.h
623   for non-configure targets when the host system doesn't run buildconf.bat.
624
625 - Prevent buildconf from removing 'Makefile' and 'missing' files. This would
626   blow away our CVS checked files 'missing' and 'hiper/Makefile'.
627
628 - Remove adjustment done to testcurl.pl to verify if change introduced by
629   Guenter Knauf in lib/Makefile.netware is enough to get the netware autobuilds
630   going again.
631
632 Yang Tse (5 Aug 2008)
633 - Changes done to buildconf script. Validate that autom4te and autoconf, as
634   well as aclocal and automake, versions match. Improve removal of previous
635   run generated files. Remove verbose debug logging of aclocal on Solaris.
636
637 Daniel Stenberg (5 Aug 2008)
638 - Yehoshua Hershberg found a problem that would make libcurl re-use a
639   connection with the multi interface even if a previous use of it caused a
640   CURLE_PEER_FAILED_VERIFICATION to get returned. I now make sure that failed
641   SSL connections properly close the connections.
642
643 Daniel Stenberg (4 Aug 2008)
644 - Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and
645   proved how PUT and POST with a redirect could lead to a "hang" due to the
646   data stream not being rewound properly when it had to in order to get sent
647   properly (again) to the subsequent URL. This is now fixed and these test
648   cases are no longer disabled.
649
650 Yang Tse (4 Aug 2008)
651 - Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use.
652   Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62
653   version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols
654   no matter if the system is AIX or not. To keep the traditional behaviour,
655   and an uniform one across autoconf versions AC_AIX is replaced with our
656   own internal macro CURL_CHECK_AIX_ALL_SOURCE.
657
658 Daniel Stenberg (4 Aug 2008)
659 - Test case 1041 (added by Daniel Fandrich July 14th) proved a bug where PUT
660   with -C - sent garbage in the Content-Range: header. I fixed this problem by
661   making sure libcurl always sets the size of the _entire_ upload if an app
662   attemps to do resumed uploads since libcurl simply cannot know the size of
663   what is currently at the server end. Test 1041 is no longer disabled.
664
665 Yang Tse (2 Aug 2008)
666 - No longer test availability of the gdi32 library, nor use it for linking, even
667   when we have been doing this since revision 1.47 of configure.ac 4 years and
668   5 months ago when cross-compiling a Windows target. We actually don't use any
669   function from the Windows GDI (Graphics Device Interface) related with drawing
670   or graphics-related operations.
671
672 Daniel Fandrich (1 Aug 2008)
673 - Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't
674   support this so it goes untested.
675
676 Yang Tse (1 Aug 2008)
677 - Configure process now checks if the preprocessor _REENTRANT symbol is already
678   defined. If it isn't currently defined a set of checks are performed to test
679   if its definition is required to make visible to the compiler a set of *_r
680   functions. Finally, if _REENTRANT is already defined or needed it takes care
681   of making adjustments necessary to ensure that it is defined equally for the
682   configure process tests and generated config file.
683
684 - Removed definition of CURL_CHECK_WORKING_RESOLVER from acinclude.m4 it has
685   not been in use since revision 1.81 of configure.in 6 years, 9 months ago.
686
687 Daniel Fandrich (31 Jul 2008)
688 - Fixed parsing of an IPv6 proxy address to support a scope identifier,
689   as well as IPv4 addresses in IPv6 format. Also, better handle the case
690   of a malformatted IPv6 address (avoid empty and NULL strings).
691
692 - Fixed a problem with any FTP URL or any URLs containing an IPv6 address
693   being mangled when passed to proxies when CURLOPT_PORT is also set
694   (reported by Pramod Sharma).
695
696 - User names embedded in proxy URLs without a password were parsed
697   incorrectly--the host name is treated as part of the user name and the
698   port number becomes the password.  This can be observed in test 279
699   (was KNOWN_ISSUE #54).
700
701 Daniel Stenberg (30 Jul 2008)
702 - Phil Blundell added the CURLOPT_ADDRESS_SCOPE option, as well as adjusted
703   the URL parser to allow numerical IPv6-addresses to be specified with the
704   scope given, as per RFC4007 - with a percent letter that itself needs to be
705   URL escaped. For example, for an address of fe80::1234%1 the HTTP URL is:
706   "http://[fe80::1234%251]/"
707
708 - PHP's bug report #43158 (http://bugs.php.net/bug.php?id=43158) identifies a
709   true bug in libcurl built with OpenSSL. It made curl_easy_getinfo() more or
710   less always return 0 for CURLINFO_SSL_VERIFYRESULT because the function that
711   would set it to something non-zero would return before the assign in almost
712   all error cases. The internal variable is now set to non-zero from the start
713   of the function only to get cleared later on if things work out fine.
714
715 - Made the curl tool's -w option support the %{ssl_verify_result} variable
716
717 Daniel Fandrich (30 Jul 2008)
718 - Added test cases 1052 through 1055 to test uploading data from files
719   during redirects.  Test cases 1052 and 1055 show problems (maybe the same
720   root cause as 1051) and are disabled.
721
722 - Fixed a couple of buffer overflows in the MS-DOS port of the curl tool.
723
724 Daniel Fandrich (29 Jul 2008)
725 - Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS
726   and OS/2.
727
728 - Added test case 1051 to test Location: following with PUT, as reported
729   by Ben Sutcliffe.  The test when run manually shows a problem in curl
730   so it's disabled.
731
732 Daniel Fandrich (28 Jul 2008)
733 - Fixed display of the interface bind address in the trace output when it's
734   an IPv6 address.
735
736 - Added test cases 1045 through 1049 as simple tests of --interface using the
737   localhost interface.
738
739 - Added test case 1050 to test --ftp-port with an IPv6 address
740
741 Daniel Stenberg (26 Jul 2008)
742 - David Bau filed bug report #2026240 "CURL_READFUNC_PAUSE leads to buffer
743   overrun" (http://curl.haxx.se/bug/view.cgi?id=2026240) identifying two
744   problems, and providing the fix for them:
745
746   - CURL_READFUNC_PAUSE did in fact not pause the _sending_ of data that it is
747     designed for but paused _receiving_ of data!
748
749   - libcurl didn't internally set the read counter to zero when this return
750     code was detected, which would potentially lead to junk getting sent to
751     the server.
752
753 Daniel Fandrich (26 Jul 2008)
754 - Added test 1044 to test large file support in ftp with -I.
755
756 - Eliminate a unnecessary socket creation in Curl_getaddrinfo for an IPv4
757   address in an IPv6 capable libcurl.
758
759 - Added feature in runtests.pl to select tests based on key word.
760
761 Daniel Fandrich (23 Jul 2008)
762 - Changed the long logfile elision code in runtests.pl to properly handle
763   lines ending in \r.
764
765 - Changed references to TRUE and FALSE in the curl_easy_setopt man page to
766   1 and zero, respectively, since TRUE and FALSE aren't part of the
767   libcurl API.
768
769 Daniel Stenberg (23 Jul 2008)
770 - I went over the curl_easy_setopt man page and replaced most references to
771   non-zero with the fixed value of 1. We should strive at making options
772   support '1' for enabling them mentioned explicitly, as that then will allow
773   us for to extend them in the future without breaking older programs.
774
775   Possibly we should even introduce a fancy define to use instead of '1' all
776   over...
777
778 Yang Tse (21 Jul 2008)
779 - Use the sreadfrom() wrapper to replace recvfrom() in our code.
780
781 Yang Tse (20 Jul 2008)
782 - when recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will
783   now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID,
784   RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID.
785
786 Yang Tse (17 Jul 2008)
787 - RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
788   to the data type pointed by its respective argument and not the pointer type.
789
790 Yang Tse (16 Jul 2008)
791 - Configure process now checks availability of recvfrom() socket function and
792   finds out its return type and the types of its arguments. Added definitions
793   for non-configure systems config files, and introduced macro sreadfrom which
794   will be used on udp sockets as a recvfrom() wrapper.
795
796 Yang Tse (15 Jul 2008)
797 - Added description/comment to include paths used in several Makefile.am files.
798   Added automake option nostdinc to test servers makefile and modified libcurl
799   external headers include path for libtest programs.
800
801 Daniel Fandrich (14 Jul 2008)
802 - Added test1040 through test1043 to test -C - on HTTP. Test 1041 failed so
803   it's added to DISABLED.
804
805 Yang Tse (14 Jul 2008)
806 - HTTP_ONLY definition check in lib/setup.h is now done once that configuration
807   file has been included. In this way if symbol is defined in the config file
808   it will no longer be ignored.  Removed inclusion of remaining system header
809   files from configuration files. Moved _REENTRANT definition up/earlier in
810   lib/setup.h
811
812 Yang Tse (11 Jul 2008)
813 - Added missing multiple header inclusion prevention definition for header
814   file content_encoding.h
815
816 Daniel Fandrich (11 Jul 2008)
817 - Fixed test 553 to pass the torture test.
818
819 Daniel Stenberg (11 Jul 2008)
820 - Daniel Fandrich found out we didn't pass on the user-agent properly when
821   doing "proxy-tunnels" with non-HTTP prototols and that was simply because
822   the code assumed the user-agent was only needed for HTTP.
823
824 Daniel Fandrich (10 Jul 2008)
825 - Changed slightly the SFTP quote commands chmod, chown and chgrp to only
826   set the attribute that has changed instead of all possible ones. Hopefully,
827   this will solve the "Permission denied" problem that Nagarajan Sreenivasan
828   reported when setting some modes, but regardless, it saves a protocol
829   round trip in the chmod case.
830
831 - Added test cases 1038 and 1039 to test Adrian Kreher's report that ftp
832   uploads with -C - didn't resume properly, but the tests pass.
833
834 Yang Tse (10 Jul 2008)
835 - Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI
836   is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which
837   exactly pinpointed the problem only triggered on Windows Vista, provided
838   reference to docs and also a fix. There is much work behind Peter Lamberg's
839   excellent bug report. Thank You!
840
841 Daniel Fandrich (9 Jul 2008)
842 - Added tests 1036 and 1037 to verify resumed ftp downloads with -C -
843
844 Daniel Stenberg (9 Jul 2008)
845 - Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I
846   edited it slightly. Now you should be able to use IPv6 addresses fine even
847   with libcurl built to use c-ares.
848
849 Daniel Fandrich (9 Jul 2008)
850 - Fixed an OOM handling problem that cause test 11 to fail the torture test.
851
852 Daniel Fandrich (8 Jul 2008)
853 - Fixed test 554 to pass the torture test.
854
855 Daniel Fandrich (7 Jul 2008)
856 - Added test cases 1034 & 1035 to test IDN name conversion failures.
857
858 Daniel Stenberg (7 Jul 2008)
859 - Scott Barrett provided a test case for a segfault in the FTP code and the
860   fix for it. It occured when you did a FTP transfer using
861   CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but
862   switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being
863   cleared properly.  Scott's test case is now known as test 539 and it
864   verifies the fix.
865
866 Daniel Stenberg (3 Jul 2008)
867 - Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx
868   response codes. Previously libcurl would hang on such occurances. I added
869   test case 1033 to verify.
870
871 - Introcuding a new timestamp for curl_easy_getinfo():
872   CURLINFO_APPCONNECT_TIME. This is set with the "application layer"
873   handshake/connection is completed. Which typically is SSL, TLS or SSH and by
874   using this you can figure out the application layer's own connect time. You
875   can extract the time stamp using curl's -w option and the new variable named
876   'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar.
877
878 Daniel Fandrich (2 Jul 2008)
879 - Support Open Watcom C on Linux (as well as Windows).
880
881 Yang Tse (2 Jul 2008)
882 - The previously committed fix for bug report #1999181 prevented using the
883   monotonic clock on any system without an always supported POSIX compliant
884   implementation. Now the POSIX compliant configuration check is removed and
885   will fallback to gettimeofday when the monotonic clock is unavailable at
886   run-time.
887
888 - The configure process will now halt when sed, grep, egrep or ar programs
889   can not be found among the directories in PATH variable.
890
891 Daniel Stenberg (1 Jul 2008)
892 - Rolland Dudemaine provided fixes to get libcurl to build for the INTEGRITY
893   operating system.
894
895 Daniel Stenberg (30 Jun 2008)
896 - Made the internal printf() support %llu properly to print unsigned long longs.
897
898 - Stephen Collyer and Tor Arntsen helped identify a flaw in the range code
899   which output the range using a signed variable where it should rather use
900   unsigned.
901
902 Yang Tse (29 Jun 2008)
903 - John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on
904   some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was
905   that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test
906   macro when checking monotonic clock availability. This is now fixed and the
907   monotonic clock will not be used unless the feature test macro is defined
908   with a value greater than zero indicating always supported.
909
910 Daniel Fandrich (25 Jun 2008)
911 - Honour --stderr with the -v option.
912
913 - Fixed a file handle leak in the command line client if more than one
914   --stderr option was given.
915
916 Daniel Stenberg (22 Jun 2008)
917 - Eduard Bloch filed the debian bug report #487567
918   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
919   libcurl used Content-Range: instead of Range when doing a range request with
920   --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
921   verify.
922
923 Daniel Fandrich (21 Jun 2008)
924 - Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that
925   is not ANSI C, just a common extension.  This caused problems on
926   at least Open Watcom C.
927
928 Yang Tse (20 Jun 2008)
929 - Modified configuration script to actually verify if the compiler is good
930   enough at detecting compilation errors or at least it has been properly
931   configured to do so. Configuration heavily depends on this capability, so
932   if this compiler sanity check fails the configuration process will now fail.
933
934 Daniel Stenberg (20 Jun 2008)
935 - Phil Pellouchoud found a case where libcurl built with NSS failed to
936   handshake with a SSLv2 server, and it turned out to be because it didn't
937   recognize the cipher named "rc4-md5". In our list that cipher was named
938   plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported
939   that it made things work for him again.
940
941 - Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy
942   crashed libcurl. This is now addressed by making sure we use "plain send"
943   internally when doing the socks handshake instead of the Curl_write()
944   function which is designed to use the "target" protocol. That's then SCP or
945   SFTP in this case. I also took the opportunity and cleaned up some ssh-
946   related #ifdefs in the code for readability.
947
948 Daniel Stenberg (19 Jun 2008)
949 - Christopher Palow fixed a curl_multi_socket() issue which previously caused
950   libcurl to not tell the app properly when a socket was closed (when the name
951   resolve done by c-ares is completed) and then immediately re-created and put
952   to use again (for the actual connection). Since the closure will make the
953   "watch status" get lost in several event-based systems libcurl will need to
954   tell the app about this close/re-create case.
955
956 - Dengminwen found a bug in the connection re-use function when using the
957   multi interface with pipelining enabled as it would wrongly check for,
958   detect and close "dead connections" even though that connection was already
959   in use!
960
961 Daniel Fandrich (18 Jun 2008)
962 - Added SSH failure test cases 628-632
963
964 - Fixed a memory leak in the command-line tool that caused a valgrind error.
965
966 Daniel Stenberg (18 Jun 2008)
967 - Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer
968   always fire up a new connection rather than using the existing one when the
969   multi interface is used. Original bug report:
970   https://bugzilla.redhat.com/show_bug.cgi?id=450140
971
972 Yang Tse (18 Jun 2008)
973 - Internal configure script improvement. No longer break out of shell "for"
974   statements from inside AC_FOO_IFELSE macros, otherwise temporary macro files
975   are not properly removed.
976
977 Daniel Fandrich (12 Jun 2008)
978 - Fixed curl-config --ca which wasn't being exported by configure.
979
980 Daniel Stenberg (11 Jun 2008)
981 - I did a cleanup of the internal generic SSL layer and how the various SSL
982   libraries are supported. Starting now, each underlying SSL library support
983   code does a set of defines for the 16 functions the generic layer (sslgen.c)
984   uses (all these new function defines use the prefix "curlssl_"). This
985   greatly simplified the generic layer in readability by involving much less
986   #ifdefs and other preprocessor stuff and should make it easier for people to
987   make libcurl work with new SSL libraries.
988
989   Hopefully I can later on document these 16 functions somewhat as well.
990
991   I also made most of the internal SSL-dependent functions (using Curl_ssl_
992   prefix) #defined to nothing when no SSL support is requested - previously
993   they would unnecessarily call mostly empty functions.
994
995   I've built libcurl with OpenSSL and GnuTLS and without SSL to test this and
996   I've also tried building with NSS but the NSS support is a mystery to me and
997   I failed to build libcurl with the NSS libraries I have installed. We really
998   should A) improve our configure script to detect unsuitable NSS versions
999   already at configure time and B) document our requirements better for the
1000   SSL libraries.
1001
1002 Daniel Stenberg (10 Jun 2008)
1003 - I made the OpenSSL code build again with OpenSSL 0.9.6. The CRLFILE
1004   functionality killed it due to its unconditional use of
1005   X509_STORE_set_flags...
1006
1007 Daniel Stenberg (8 Jun 2008)
1008 - Due to the three new libcurl changes and the massive command line option
1009   change I decided we'll mark it by bumping the next release number to 7.19.0!
1010
1011 - curl the tool now deals with its command line options somewhat differently!
1012   All boolean options (such as -O, -I, -v etc), both short and long versions,
1013   now always switch on/enable the option named. Using the same option multiple
1014   times thus make no difference. To switch off one of those options, you need
1015   to use the long version of the option and type --no-OPTION. Like to disable
1016   verbose mode you use --no-verbose!
1017
1018 - Added --remote-name-all to curl, which if used changes the default for all
1019   given URLs to be dealt with as if -O is used. So if you want to disable that
1020   for a specific URL after --remote-name-all has been used, you muse use -o -
1021   or --no-remote-name.
1022
1023 Daniel Stenberg (6 Jun 2008)
1024 - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, for
1025   OpenSSL, NSS and GnuTLS-built libcurls.
1026
1027 - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, for
1028   OpenSSL, NSS and GnuTLS-built libcurls.
1029
1030 - Added CURLINFO_PRIMARY_IP as a new information retrievable with
1031   curl_easy_getinfo. It returns a pointer to a string with the most recently
1032   used IP address. Modified test case 500 to also verify this feature. The
1033   implementing of this feature was sponsored by Lenny Rachitsky at NeuStar.
1034
1035 Version 7.18.2 (4 June 2008)
1036
1037 Daniel Fandrich (3 Jun 2008)
1038 - Fixed a problem where telnet data would be lost if an EWOULDBLOCK
1039   condition were encountered.
1040
1041 Marty Kuhrt (1 Jun 2008)
1042 - Updated main.c to return CURLE_OK if PARAM_HELP_REQUESTED was returned
1043   from getparameter instead of CURLE_FAILED_INIT.  No point in returning
1044   an error if --help or --version were requested.
1045
1046 Daniel Stenberg (28 May 2008)
1047 - Emil Romanus found a problem and helped me repeat it. It occured when using
1048   the curl_multi_socket() API with HTTP pipelining enabled and could lead to
1049   the pipeline basically stalling for a very long period of time until it took
1050   off again.
1051
1052 - Jeff Weber reported memory leaks with aborted SCP and SFTP transfers and
1053   provided excellent repeat recipes. I fixed the cases I managed to reproduce
1054   but Jeff still got some (SCP) problems even after these fixes:
1055   http://curl.haxx.se/mail/lib-2008-05/0342.html
1056
1057 Daniel Stenberg (26 May 2008)
1058 - Bug report #1973352 (http://curl.haxx.se/bug/view.cgi?id=1973352) identified
1059   how the HTTP redirect following code didn't properly follow to a new URL if
1060   the new url was but a query string such as "Location: ?moo=foo". Test case
1061   1031 was added to verify this fix.
1062
1063 - Andreas Faerber and Scott McCreary made (lib)curl build for the Haiku OS.
1064
1065 Yang Tse (26 May 2008)
1066 - David Rosenstrauch reported that header files spnegohelp.h and
1067   openssl/objects.h were needed to compile SPNEGO support.
1068
1069 Daniel Fandrich (22 May 2008)
1070 - Made sure to pass longs in to curl_easy_setopt where necessary in the
1071   example programs and libtest code.
1072
1073 Daniel Stenberg (19 May 2008)
1074 - When trying to repeat a multi interface problem I fell over a few multi
1075   interface problems:
1076
1077   o with pipelining disabled, the state should never be set to WAITDO but
1078     rather go straight to DO
1079
1080   o we had multiple states for which the internal function returned no socket
1081     at all to wait for, with the effect that libcurl calls the socket callback
1082     (when curl_multi_socket() is used) with REMOVE prematurely (as it would be
1083     added again within very shortly)
1084
1085   o when in DO and DOING states, the HTTP and HTTPS protocol handler functions
1086     didn't return that the socket should be waited for writing, but instead it
1087     was treated as if no socket was needing monitoring so again REMOVE was
1088     called prematurely.
1089
1090 Daniel Stenberg (13 May 2008)
1091 - Added test case 556 that uses curl_easy_send() and curl_easy_recv()
1092
1093 Daniel Stenberg (9 May 2008)
1094 - Introducing curl_easy_send() and curl_easy_recv(). They can be used to send
1095   and receive data over a connection previously setup with curl_easy_perform()
1096   and its CURLOPT_CONNECT_ONLY option. The sendrecv.c example was added to
1097   show how they can be used.
1098
1099 Yang Tse (9 May 2008)
1100 - Internal time differences now use monotonic time source if available.
1101   This also implies the removal of the winmm.lib dependency for WIN32.
1102
1103 Daniel Stenberg (9 May 2008)
1104 - Stefan Krause reported a busy-looping case when using the multi interface
1105   and doing CONNECT to a proxy. The app would then busy-loop until the proxy
1106   completed its response.
1107
1108 Michal Marek (9 May 2008)
1109 - Make Curl_write and it's callees accept a const pointer, in preparation
1110   of tetetest's patch for curl_easy_send()
1111
1112 Daniel Stenberg (7 May 2008)
1113 - Liam Healy filed the debian bug report #480044
1114   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=480044) identifying a
1115   segfault when using krb5 ftp, but the krb4 code had the same problem.
1116
1117 Yang Tse (7 May 2008)
1118 - Christopher Palow provided the patch (edited by me) that introduces the
1119   use of microsecond resolution keys for internal splay trees.
1120
1121 Daniel Stenberg (4 May 2008)
1122 - Yuriy Sosov pointed out a configure fix for detecting c-ares when that is
1123   built debug-enabled.
1124
1125 Daniel Stenberg (3 May 2008)
1126 - Ben Van Hof filed bug report #1945240: "libcurl sometimes sends body twice
1127   when using CURL_AUTH_ANY" (http://curl.haxx.se/bug/view.cgi?id=1945240).
1128   The problem was that when libcurl rewound a stream meant for upload when it
1129   would prepare for a second request, it could accidentally continue the
1130   sending of the rewound data on the first request instead of on the second.
1131   Ben also provided test case 1030 that verifies this fix.
1132
1133 Daniel Stenberg (3 May 2008)
1134 - Jean-Francois Bertrand reported a libcurl crash with CURLOPT_TCP_NODELAY
1135   since libcurl used getprotobyname() and that isn't thread-safe. We now
1136   switched to use IPPROTO_TCP unconditionally, but perhaps the proper fix is
1137   to detect the thread-safe version of the function and use that.
1138   http://curl.haxx.se/mail/lib-2008-05/0011.html
1139
1140 Daniel Stenberg (1 May 2008)
1141 - Bart Whiteley provided a patch that made libcurl work properly when an app
1142   uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket
1143   to a http server.
1144
1145 Daniel Stenberg (29 Apr 2008)
1146 - To make it easier for applications that want lots of magic stuff done on
1147   redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now
1148   introduce the new CURLINFO_REDIRECT_URL option that lets applications
1149   extract the URL libcurl would've redirected to if it had been told to. This
1150   then enables the application to continue to that URL as it thinks is
1151   suitable, without having to re-implement the magic of creating the new URL
1152   from the Location: header etc. Test 1029 verifies it.
1153
1154 Yang Tse (29 Apr 2008)
1155 - Improved easy interface resolving timeout handling in c-ares enabled builds
1156
1157 Daniel Fandrich (28 Apr 2008)
1158 - Added test 1028 to test an HTTP redirect to a FTP URL.
1159
1160 Daniel Stenberg (28 Apr 2008)
1161 - Norbert Frese filed bug report #1951588: "Problem with curlftpfs and
1162   libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an
1163   identical report to what Denis Golovan reported in
1164   http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the
1165   user/password pointers properly even though there might've been a new
1166   struct/cconnection getting used.
1167
1168 Daniel Stenberg (26 Apr 2008)
1169 - Reverted back to use automake 1.9.6 in the next release (from automake
1170   1.10.1) since it *still* suffers from Solaris-related bugs. Our previous
1171   automake 1.10 problem was reported in bug #1701360
1172   (http://curl.haxx.se/bug/view.cgi?id=1701360) and this recent problem was
1173   bug #1944825 (http://curl.haxx.se/bug/view.cgi?id=1944825). I have not
1174   personally approached the automake team about either one of these but I
1175   figure we need a Solaris 10 guy to do it!
1176
1177 Yang Tse (25 Apr 2008)
1178 - Added 'timeout' and 'delay' attributes support for the test harness
1179   <command> subsection.
1180
1181 Daniel Fandrich (24 Apr 2008)
1182 - Made --stderr able to redirect all stderr messages.
1183
1184 Yang Tse (23 Apr 2008)
1185 - Improve synchronization between test harness runtests.pl script
1186   and test harness servers to minimize risk of false test failures.
1187
1188 Daniel Fandrich (22 Apr 2008)
1189 - Added support for running on Symbian OS.
1190
1191 Daniel Fandrich (18 Apr 2008)
1192 - Added test cases 1026 and 1027 to do some rudimentary tests on the --manual
1193   and --help options.
1194
1195 Michal Marek (14 Apr 2008)
1196 - allow disabling the typechecker by defining CURL_DISABLE_TYPECHECK, as
1197   discussed in http://curl.haxx.se/mail/lib-2008-04/0291.html
1198
1199 Daniel Stenberg (14 Apr 2008)
1200 - Stefan Krause reported a case where the OpenSSL handshake phase wasn't
1201   properly acknowledging the timeout values, like if you pulled the network
1202   plug in the midst of it.
1203
1204 - Andre Guibert de Bruet fixed a second case of not checking the malloc()
1205   return code in the Negotiate code.
1206
1207 - Sandor Feldi reported bug #1942022
1208   (http://curl.haxx.se/bug/view.cgi?id=1942022) pointing out a mistake in the
1209   lib/Makefile.vc[68] makefiles' release-ssl-dll target.
1210
1211 - Brock Noland reported that curl behaved differently depending on which order
1212   you used -i and -I.
1213
1214 Daniel Stenberg (12 Apr 2008)
1215 - Andre Guibert de Bruet found and fixed a case where malloc() was called but
1216   was not checked for a NULL return, in the Negotiate code.
1217
1218 Daniel Fandrich (9 Apr 2008)
1219 - Added test cases 1024 & 1025 to test a scenario similar to the one reported
1220   by Ben Combee where libcurl would send the wrong cookie to a redirected
1221   server.  libcurl was doing the right thing in these test cases.
1222
1223 Michal Marek (7 Apr 2008)
1224 - Fix the MIT / Heimdal check for good:
1225   Define HAVE_GSSMIT if <gssapi/{gssapi.h,gssapi_generic.h,gssapi_krb5.h}> are
1226   available, otherwise define HAVE_GSSHEIMDAL if <gssapi.h> is available.
1227
1228   Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if
1229   GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should
1230   avoid breakage in case we wrongly recognize Heimdal as MIT again.
1231
1232 Daniel Stenberg (5 Apr 2008)
1233 - Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly
1234
1235 - Based on the Debian bug report #474224 that complained about the FTP error
1236   message when libcurl doesn't get a 220 back immediately on connect, I now
1237   changed it to be more specific on what the problem is. Also worth noticing:
1238   while the bug report contains an example where the response is:
1239
1240     421 There are too many connected users, please try again later
1241
1242   we cannot assume that the error message will always be this readable nor
1243   that it fits within a particular boundary etc.
1244
1245 Daniel Fandrich (3 Apr 2008)
1246 - Added test627 to test SFTP with CURLOPT_NOBODY
1247
1248 Daniel Stenberg (3 Apr 2008)
1249 - Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to
1250   GET simply because previously when you set CURLOPT_NOBODY to TRUE first and
1251   then FALSE you'd end up in a broken state where a HTTP request would do a
1252   HEAD by still act a lot like for a GET and hang waiting for the content etc.
1253
1254 - Scott Barrett added support for CURLOPT_NOBODY over SFTP
1255
1256 Daniel Fandrich (3 Apr 2008)
1257 - Made sure that curl_global_init is called in all the multithreaded
1258   example programs.
1259
1260 Michal Marek (31 Mar 2008)
1261 - Removed the generated ca-bundle.h file. The verbatim value of $ca and
1262   $capath is known to configure, so it can be defined in config.h instead.
1263
1264 Daniel Stenberg (31 Mar 2008)
1265 - Added CURLFORM_STREAM as a supported option to curl_formadd() to allow an
1266   application to provide data for a multipart with the read callback. Note
1267   that the size needs to be provided with CURLFORM_CONTENTSLENGTH when the
1268   stream option is used. This feature is verified by the new test case
1269   554. This feature was sponsored by Xponaut.
1270
1271 Daniel Fandrich (30 Mar 2008)
1272 - Changed the makefile so the doc/examples/ programs are never built in a
1273   normal build/install (only with the 'make check' target), so that a
1274   build failure in the examples isn't fatal.
1275
1276 Version 7.18.1 (30 March 2008)
1277
1278 Daniel Stenberg (28 Mar 2008)
1279 - Stephen Collyer pointed out that configure --with-libssh2 without a given
1280   path didn't work properly.
1281
1282 Daniel Stenberg (27 Mar 2008)
1283 - As found out and reported by Dan Petitt, libcurl didn't show progress/call
1284   the progress callback for the first (potentially huge) piece of body data
1285   sent together with the POST request headers in the initial send().
1286
1287 Daniel Stenberg (25 Mar 2008)
1288 - Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in case
1289   libcurl wasn't built to use OpenSSL as that is a prerequisite for this
1290   option to function!
1291
1292 Daniel Stenberg (22 Mar 2008)
1293 - Fixed the problem with doing a zero byte SCP transfer, verified with test
1294   case 617 (which was added by Daniel Fandrich 5 Mar 2008).
1295
1296 Daniel Fandrich (20 Mar 2008)
1297 - Fixed a problem where curl-config --protocols could erroneously show LDAPS
1298   support when curl didn't even have regular LDAP support.  It looks like
1299   this could happen when the --enable-ldaps configure switch is given but
1300   configure couldn't find the LDAP headers or libraries.
1301
1302 Michal Marek (20 Mar 2008)
1303 - Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath by
1304   default instead of a ca bundle. The configure script will also look for a
1305   ca path if no ca bundle is found and no option given.
1306
1307 - Fixed detection of previously installed curl-ca-bundle.crt
1308
1309 Daniel Fandrich (18 Mar 2008)
1310 - Added test 626 to reproduce an infinite loop when given an invalid
1311   SFTP quote command reported by Vincent Le Normand, and fixed it.
1312
1313 Michal Marek (18 Mar 2008)
1314 - Added curl_easy_getinfo typechecker.
1315
1316 - Added macros for curl_share_setopt and curl_multi_setopt to check at least
1317   the correct number of arguments.
1318
1319 Daniel Fandrich (13 Mar 2008)
1320 - Added tests 622-625 to test SFTP/SCP uploads. Test 625 was an attempt to
1321   reproduce the --ftp-create-dirs problem reported by Brian Ulm, but that
1322   seems to need a call curl_easy_reset() which this test case doesn't do.
1323
1324 Daniel Stenberg (13 Mar 2008)
1325 - Brian Ulm figured out that if you did an SFTP upload with
1326   CURLOPT_FTP_CREATE_MISSING_DIRS to create a directory, and then re-used the
1327   handle and uploaded another file to another directory that needed to be
1328   created, the second upload would fail. Another case of a state variable that
1329   wasn't properly reset between requests.
1330
1331 - I rewrote the 100-continue code to use a single state variable instead of
1332   the previous two ones. I think it made the logic somewhat clearer.
1333
1334 Daniel Stenberg (11 Mar 2008)
1335 - Dmitry Popov filed bug report #1911069
1336   (http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race
1337   condition in the name resolver code when the DNS cache is shared between
1338   multiple easy handles, each running in simultaneous threads that could cause
1339   crashes.
1340
1341 - Added a macro for curl_easy_setopt() that accepts three arguments and simply
1342   does nothing with them, just to make sure libcurl users always use three
1343   arguments to this function. Due to its use of ... for the third argument, it
1344   is otherwise hard to detect abuse.
1345
1346 Michal Marek (11 Mar 2008)
1347 - Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only
1348   works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html ,
1349   http://curl.haxx.se/mail/lib-2008-02/0292.html )
1350
1351 Daniel Fandrich (10 Mar 2008)
1352 - Added tests 618-621 to test SFTP/SCP transfers of more than one file
1353   (test 620 tests the just-fixed problem reported by Brian Ulm).
1354
1355 Daniel Stenberg (9 Mar 2008)
1356 - Brian Ulm reported a crash when doing a second SFTP transfer on a re-used
1357   easy handle if curl_easy_reset() was used between them. I fixed it and Brian
1358   verified that it cured his problem.
1359
1360 - Brian Ulm reported that if you first tried to download a non-existing SFTP
1361   file and then fetched an existing one and re-used the handle, libcurl would
1362   still report the second one as non-existing as well! I fixed it and Brian
1363   verified that it cured his problem.
1364
1365 Michal Marek (6 Mar 2008)
1366 - Fix the gssapi configure check to detect newer MIT Kerberos (patch by
1367   Michael Calmer)
1368
1369 Yang Tse (6 Mar 2008)
1370 - Fix regression on Curl_socket_ready() and Curl_poll() so that these will
1371   again fail on select/poll errors different than EINTR.
1372
1373 Daniel Fandrich (5 Mar 2008)
1374 - Fixed the test harness so it will write out zero-length data files.
1375
1376 - Added tests 616 and 617 to see how SFTP and SCP cope with zero-length
1377   files, as questioned by Mike Protts. SFTP does for me but SCP doesn't
1378   so test 617 is disabled for now.
1379
1380 Daniel S (4 Mar 2008)
1381 - Mike Protts brought a patch that makes resumed transfers work with SFTP.
1382
1383 Daniel S (1 Mar 2008)
1384 - Anatoli Tubman found and fixed a crash with Negotiate authentication used on
1385   a re-used connection where both requests used Negotiate.
1386
1387 Guenter Knauf (26 Feb 2008)
1388 - Kaspar Brand provided a patch to support server name indication (RFC 4366).
1389
1390 Daniel S (25 Feb 2008)
1391 - Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that
1392   forces it to prefer SSLv3.
1393
1394 Daniel S (23 Feb 2008)
1395 - Sam Listopad provided a patch in feature-request #1900014
1396   http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to
1397   use OpenSSL) support a full chain of certificates in a given PKCS12
1398   certificate.
1399
1400 Daniel S (22 Feb 2008)
1401 - Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model
1402   options as the lib/Makefile.vc6 already did.
1403
1404 Daniel S (21 Feb 2008)
1405 - Zmey Petroff found a crash when libcurl accessed a NULL pointer, which
1406   happened if you set the connection cache size to 1 and for example failed to
1407   login to an FTP site. Bug report #1896698
1408   (http://curl.haxx.se/bug/view.cgi?id=1896698)
1409
1410 Daniel S (20 Feb 2008)
1411 - Fixed test case 405 to not fail when libcurl is built with GnuTLS
1412
1413 - Based on initial work done by Gautam Kachroo to address a bug, we now keep
1414   better control at the exact state of the connection's SSL status so that we
1415   know exactly when it has completed the SSL negotiation or not so that there
1416   won't be accidental re-uses of connections that are wrongly believed to be
1417   in SSL-completed-negotiate state.
1418
1419 - We no longer support setting the CURLOPT_URL option from inside a callback
1420   such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location:
1421   following. The patch that introduced this feature was done for 7.11.0, but
1422   this code and functionality has been broken since about 7.15.4 (March 2006)
1423   with the introduction of non-blocking OpenSSL "connects".
1424
1425   It was a hack to begin with and since it doesn't work and hasn't worked
1426   correctly for a long time and nobody has even noticed, I consider it a very
1427   suitable subject for plain removal. And so it was done.
1428
1429 Guenter Knauf (19 Feb 2008)
1430 - We do no longer support SSLv2 by default since it has known flaws.
1431   Kaspar Brand provided a patch for all supported SSL toolkits.
1432
1433 Daniel Fandrich (19 Feb 2008)
1434 - Added test309 to test HTTP redirect to HTTPS URL
1435
1436 Daniel S (18 Feb 2008)
1437 - We're no longer providing a very old ca-bundle in the curl tarball. You can
1438   get a fresh one downloaded and created with 'make ca-bundle' or you can get
1439   one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh
1440   new one extracted from Mozilla's recent list of ca certs.
1441
1442   The configure option --with-ca-bundle now lets you specify what file to use
1443   as default ca bundle for your build. If not specified, the configure script
1444   will check a few known standard places for a global ca cert to use.
1445
1446 Daniel S (17 Feb 2008)
1447 - Jerome Muffat-Meridol helped me fix Curl_done() to close the current
1448   connection by force when it was called before the entire request is
1449   completed, simply because we can't know if the connection really can be
1450   re-used safely at that point.
1451
1452 - Based on the same debugging logic, I've also made Curl_http_done() not
1453   return CURLE_GOT_NOTHING if called "prematurely". This should have no real
1454   effect to anything but the code makes more sense like this.
1455
1456 Daniel S (15 Feb 2008)
1457 - Made the gnutls code path not even try to get the server cert if no peer
1458   verification is requested. Previously it would even return failure if gnutls
1459   failed to get the server cert even though no verification was asked for.
1460   Public server showing the problem: https://www.net222.caisse-epargne.fr
1461
1462 - Fix my Curl_timeleft() leftover mistake in the gnutls code
1463
1464 - Pooyan McSporran found and fixed a flaw where you first would do a normal
1465   http request and then you'd reuse the handle and replace the Accept: header,
1466   as then libcurl would send two Accept: headers!
1467
1468 Daniel S (11 Feb 2008)
1469 - Yang Tse pointed out a few remaining quirks from my timeout refactoring from
1470   Feb 7 that didn't abort properly on timeouts. These are actually old
1471   problems but now they should be fixed.
1472
1473 Yang Tse (10 Feb 2008)
1474 - Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out
1475   and provides test program that demonstrates that libcurl might not set error
1476   description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded
1477   name resolver builds. Fixed now.
1478
1479 Daniel Fandrich (8 Feb 2008)
1480 - Added key words to all SSL-using tests so they can be skipped if necessary.
1481   Removed a few unnecessary requires SSL statements.
1482
1483 Daniel S (8 Feb 2008)
1484 - Mike Hommey filed and fixed bug report #1889856
1485   (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl
1486   layer, cleaning-up and reinitializing curl ends up with https requests
1487   failing with "ASN1 parser: Element was not found" errors. Obviously a
1488   regression added in 7.16.3.
1489
1490 Yang Tse (8 Feb 2008)
1491 - Improved test harness SCP/SFTP start up server verification, doing a real
1492   connection to the sftp server, authenticating and running a simple sftp
1493   pwd command using the test harness generated configuration and key files.
1494
1495 Daniel S (8 Feb 2008)
1496 - Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and
1497   creates a suitable ca-bundle.crt file in PEM format for use with curl. The
1498   recommended way to run it is to use 'make ca-bundle' in the build tree root.
1499
1500 Daniel Fandrich (7 Feb 2008)
1501 - Added tests 1022 and 1023 to validate output of curl-config --version and
1502   --vernum
1503
1504 Daniel S (7 Feb 2008)
1505 - Refactored a lot of timeout code into a few functions in an attempt to make
1506   them all use the same (hopefully correct) logic to make it less error-prone
1507   and easier to introduce library-wide where it should be used.
1508
1509 Yang Tse (6 Feb 2008)
1510 - Fix an issue in strdup replacement function when dealing with absolutely
1511   huge strings. Only systems without a standard strdup would be affected.
1512
1513 Daniel S (3 Feb 2008)
1514 - Dmitry Kurochkin cleaned up the pipelining code and removed the need for and
1515   use of the "is_in_pipeline" struct field.
1516
1517 - I wrote up and added the threaded-ssl.c example source code that shows how
1518   to do multi-threaded downloads of HTTPS files with a libcurl that is built
1519   with OpenSSL. It uses pthreads for the threading.
1520
1521 Daniel S (31 Jan 2008)
1522 - Niklas Angebrand made the cookie support in libcurl properly deal with the
1523   "HttpOnly" feature introduced by Microsoft and apparently also supported by
1524   Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly
1525   is now supported when received from servers in HTTP headers, when written to
1526   cookie jars and when read from existing cookie jars.
1527
1528   I modified test case 31 and 46 to also do some basic HttpOnly testing.
1529
1530 - Dmitry Kurochkin moved several struct fields from the connectdata struct to
1531   the SingleRequest one to make pipelining better. It is a bit tricky to keep
1532   them in the right place, to keep things related to the actual request or to
1533   the actual connection in the right place.
1534
1535 Daniel S (29 Jan 2008)
1536 - Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously
1537   crash!
1538
1539 - Michal Marek fixed minor mistake in test case 553 that prevented it from
1540   working on other IP-addresses or port numbers.
1541
1542 Version 7.18.0 (28 January 2008)
1543
1544 Daniel S (27 Jan 2008)
1545 - Dmitry Kurochkin: In "real world" testing I found more bugs in
1546   pipelining. Broken connection is not restored and we get into infinite
1547   loop. It happens because of wrong is_in_pipeline values.
1548
1549 Daniel S (26 Jan 2008)
1550 - Kevin Reed filed bug report #1879375
1551   (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
1552   got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
1553   proxy authentication and the proxy replies with an auth (like NTLM) and then
1554   closes the connection after that initial informational response.
1555
1556   libcurl would not properly re-initialize the connection to the proxy and
1557   continue the auth negotiation like supposed. It does now however, as it will
1558   now detect if one or more authentication methods were available and asked
1559   for, and will thus retry the connection and continue from there.
1560
1561 - I made the progress callback get called properly during proxy CONNECT.
1562
1563 Daniel S (23 Jan 2008)
1564 - Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
1565   memory, and so did "SESS". Fixed now.
1566
1567 Yang Tse (22 Jan 2008)
1568 - Check poll.h at configuration time, and use it when sys/poll.h unavailable
1569
1570 Daniel S (22 Jan 2008)
1571 - Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
1572   that it is bad anyway. Starting now, removing a handle that is in used in a
1573   pipeline will break the pipeline - it'll be set back up again but still...
1574
1575 Yang Tse (21 Jan 2008)
1576 - Disable ldap support for cygwin builds, since it breaks whole build process.
1577   Fixing it will affect other platforms, so it is postponed for another release.
1578
1579 Daniel S (18 Jan 2008)
1580 - Lau Hang Kin found and fixed a problem with the multi interface when doing
1581   CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
1582   properly during that state, due to a missing case in the switch in the
1583   multi_getsock() function.
1584
1585 Yang Tse (17 Jan 2008)
1586 - Don't abort tests 518 and 537 when unable to raise the open-file soft limit.
1587
1588 Daniel S (16 Jan 2008)
1589 - Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring
1590   out what valgrind to run.
1591
1592 Yang Tse (16 Jan 2008)
1593 - Improved handling of out of memory in the command line tool that afected
1594   data url encoded HTTP POSTs when reading it from a file.
1595
1596 Daniel S (16 Jan 2008)
1597 - Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
1598   previously had a number of flaws, perhaps most notably when an application
1599   fired up N transfers at once as then they wouldn't pipeline at all that
1600   nicely as anyone would think... Test case 530 was also updated to take the
1601   improved functionality into account.
1602
1603 - Calls to Curl_failf() are not supposed to provide a trailing newline as the
1604   function itself adds that. Fixed on 50 or something strings!
1605
1606 Daniel S (15 Jan 2008)
1607 - I made the torture test on test 530 go through. This was actually due to
1608   silly code left from when we switched to let the multi handle "hold" the dns
1609   cache when using the multi interface... Of course this only triggered when a
1610   certain function call returned error at the correct moment.
1611
1612 Daniel S (14 Jan 2008)
1613 - Joe Malicki filed bug report #1871269
1614   (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
1615   problem that occurred when doing a large HTTP POST request with the
1616   response-body read from a callback.
1617
1618 Daniel S (12 Jan 2008)
1619 - I re-arranged the curl --help output. All the options are now sorted on
1620   their long option names and all descriptions are one-liners.
1621
1622 - Eric Landes provided the patch (edited by me) that introduces the
1623   --keepalive-time to curl to set the keepalive probe interval. I also took
1624   the opportunity to rename the recently added no-keep-alive option to
1625   no-keepalive to keep a consistent naming and to avoid getting two dashes in
1626   these option names. Eric also provided an update to the man page for the new
1627   option.
1628
1629 Daniel S (11 Jan 2008)
1630 - Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it
1631   already worked for FTP:// URLs.
1632
1633 - I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
1634   spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
1635   performance for the upload resume cases where you want to upload the last
1636   few bytes of a very large file. To implement this decently, I had to switch
1637   the client code for uploading from fopen()/fread() to plain open()/read() so
1638   that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
1639   on systems that offer support for that.
1640
1641 Daniel S (10 Jan 2008)
1642 - Michal Marek made curl-config --libs not include /usr/lib64 in the output
1643   (it already before skipped /usr/lib).  /usr/lib64 is the default library
1644   directory on many 64bit systems and it's unlikely that anyone would use the
1645   path privately on systems where it's not.
1646
1647 - Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
1648   libcurl to seek in a given input stream. This is particularly important when
1649   doing upload resumes when there's already a huge part of the file present
1650   remotely. Before, and still if this callback isn't used, libcurl will read
1651   and through away the entire file up to the point to where the resuming
1652   begins (which of course can be a slow opereration depending on file size,
1653   I/O bandwidth and more). This new function will also be preferred to get
1654   used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when
1655   doing multi-stage HTTP auth with POST/PUT.
1656
1657 - Nikitinskit Dmitriy filed bug report #1868255
1658   (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
1659   and fixes a problem with parsing WWW-Authenticate: headers with additional
1660   spaces in the line that the parser wasn't written to deal with.
1661
1662 Daniel S (8 Jan 2008)
1663 - Introducing curl_easy_pause() and new magic return codes for both the read
1664   and the write callbacks that now can make a connection's reading and/or
1665   writing get paused.
1666
1667 Daniel S (6 Jan 2008)
1668 - Jeff Johnson filed bug report #1863171
1669   (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
1670   libcurl's date parser didn't accept a +1300 time zone which actually is used
1671   fairly often (like New Zealand's Dailight Savings Time), so I modified the
1672   parser to now accept up to and including -1400 to +1400.
1673
1674 Daniel S (5 Jan 2008)
1675 - Based on further discussion on curl-library, I reverted yesterday's SOCKS5
1676   code to instead introduce support for a new proxy type called
1677   CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy
1678   instead of IP address and there's thus no longer any need for a new
1679   curl_easy_setopt() option.
1680
1681   The default SOCKS5 proxy is again back to sending the IP address to the
1682   proxy.  The new curl command line option for enabling sending host name to a
1683   SOCKS5 proxy is now --socks5-hostname.
1684
1685 Daniel S (4 Jan 2008)
1686 - Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
1687   proxy do the host name resolving and only if --socks5ip (or
1688   CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and
1689   pass on the IP address only to the proxy.
1690
1691 Yang Tse (3 Jan 2008)
1692 - Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with
1693   OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH
1694   3.7, SunSSH 1.0 or later.
1695
1696 Daniel S (2 Jan 2008)
1697 - I fixed two cases of missing return code checks when handling chunked
1698   decoding where a write error (or abort return from a callback) didn't stop
1699   libcurl's processing.
1700
1701 - I removed the socklen_t use from the public curl/curl.h header and instead
1702   made it an unsigned int. The type was only used in the curl_sockaddr struct
1703   definition (only used by the curl_opensocket_callback). On all platforms I
1704   could find information about, socklen_t is 32 unsigned bits large so I don't
1705   think this will break the API or ABI. The main reason for this change is of
1706   course for all the platforms that don't have a socklen_t definition in their
1707   headers to build fine again. Providing our own configure magic and custom
1708   definition of socklen_t on those systems proved to work but was a lot of
1709   cruft, code and extra magic needed - when this very small change of type
1710   seems harmless and still solves the missing socklen_t problem.
1711
1712 - Richard Atterer brought a patch that added support for SOCKS4a proxies,
1713   which is an inofficial PROXY4 variant that sends the hostname to the proxy
1714   instead of the resolved address (which is already supported by SOCKS5).
1715   --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can
1716   now be set to CURLPROXY_SOCKS4A as well.
1717
1718 Daniel S (1 Jan 2008)
1719 - Mohun Biswas pointed out that --libcurl generated a source code with an int
1720   function but without a return statement. While fixing that, I also took care
1721   about adding some better comments for the generated code.
1722
1723 Daniel S (27 Dec 2007)
1724 - Dmitry Kurochkin mentioned a flaw
1725   (http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which
1726   failed to set the bits.proxy variable properly when an environment variable
1727   told libcurl to use a http proxy.
1728
1729 Daniel S (26 Dec 2007)
1730 - In an attempt to repeat the problem in bug report #1850730
1731   (http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The
1732   test is doing a 70K POST with a read callback and an ioctl callback over a
1733   proxy requiring Digest auth. The test case code is more or less identical to
1734   the test recipe code provided by Spacen Jasset (who submitted the bug
1735   report).
1736
1737 Daniel S (25 Dec 2007)
1738 - Gary Maxwell filed bug report #1856628
1739   (http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the
1740   (small) memory leak in the SSL session ID caching code. It happened when a
1741   previous entry in the cache was re-used.
1742
1743 Daniel Fandrich (19 Dec 2007)
1744 - Ensure that nroff doesn't put anything but ASCII characters into the
1745   --manual text.
1746
1747 Yang Tse (18 Dec 2007)
1748 - MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP,
1749   and makes wrong asumptions of build target when it isn't specified. So,
1750   if no build target has been defined we will target WinXP when building
1751   curl/libcurl with MSVC 9.0 (VS2008).
1752
1753 - (http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed
1754   a file truncation problem on Windows build targets triggered when retrying
1755   a download with curl.
1756
1757 Daniel S (17 Dec 2007)
1758 - Mateusz Loskot pointed out that MSVC 9.0 (VS2008) has the pollfd struct and
1759   defines in winsock2.h somehow differently than previous versions and that
1760   curl 7.17.1 would fail to compile out of the box.
1761
1762 Daniel S (13 Dec 2007)
1763 - David Wright filed bug report #1849764
1764   (http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He
1765   identified a problem for re-used connections that previously had sent
1766   Expect: 100-continue and in some situations the subsequent POST (that didn't
1767   use Expect:) still had the internal flag set for its use. David's fix (that
1768   makes the setting of the flag in every single request unconditionally) is
1769   fine and is now used!
1770
1771 Daniel S (12 Dec 2007)
1772 - Gilles Blanc made the curl tool enable SO_KEEPALIVE for the connections and
1773   added the --no-keep-alive option that can disable that on demand.
1774
1775 Daniel S (9 Dec 2007)
1776 - Andrew Moise filed bug report #1847501
1777   (http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy()
1778   that should be memmove() in the convert_lineends() function.
1779
1780 Daniel S (8 Dec 2007)
1781 - Renamed all internal static functions that had Curl_ prefixes to no longer
1782   have them. The Curl_ prefix is exclusively used for library internal global
1783   symbols. Static functions can be named anything, except for using Curl_ or
1784   curl_ prefixes. This is for consistency and for easier maintainance and
1785   overview.
1786
1787 - Cleaned up and reformatted the TODO document to look like the FAQ and
1788   CONTRIBUTE, which makes nicer web pages
1789
1790 - Added test cases 549 and 550 that test CURLOPT_PROXY_TRANSFER_MODE.
1791
1792 - Added keywords on a bunch of test cases
1793
1794 - Fixed an OOM problem in the curl code that would lead to fclose on a bad
1795   handle and crash
1796
1797 Daniel S (5 Dec 2007)
1798 - Spacen Jasset reported a problem with doing POST (with data read with a
1799   callback) over a proxy when NTLM is used as auth with the proxy. The bug
1800   also concerned Digest and was limited to using callback only. Spacen worked
1801   with us to provide a useful patch. I added the test case 547 and 548 to
1802   verify two variations of POST over proxy with NTLM.
1803
1804 Daniel S (3 Dec 2007)
1805 - Ray Pekowski filed bug report #1842029
1806   (http://curl.haxx.se/bug/view.cgi?id=1842029) in which he identified a
1807   problem with SSL session caching that prevent it from working, and provided
1808   the associated fix!
1809
1810 - Now libcurl (built with OpenSSL) doesn't return error anymore if the remote
1811   SSL-based server doesn't present a certificate when the request is told to
1812   ignore certificate verification anyway.
1813
1814 - Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
1815   the appending of the "type=" thing on FTP URLs when they are passed to a
1816   HTTP proxy. Some proxies just don't like that appending (which is done
1817   unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
1818   better with the appending done!
1819
1820 Daniel S (29 Nov 2007)
1821 - A bug report on the curl-library list showed a HTTP Digest session going on
1822   with a 700+ letter nonce. Previously libcurl only support 127 letter ones
1823   and now I bumped it to 1023.
1824
1825 - Fixed the resumed FTP upload loop to not require that the read callback
1826   returns a full buffer on each invoke.
1827
1828 Daniel S (25 Nov 2007)
1829 - Added test case 1015 that tests --data-urlencode in multiple ways
1830
1831 - Fixed --data-urlencode for when no @ or = are used
1832
1833 - Extended the user-agent buffer curl uses, since we can hit the 128 byte
1834   border with plenty development libraries used. Like my current set: "curl
1835   7.17.2-CVS (i686-pc-linux-gnu) libcurl/7.17.2-CVS OpenSSL/0.9.8g
1836   zlib/1.2.3.3 c-ares/1.5.2-CVS libidn/1.1 libssh2/0.19.0-CVS"
1837
1838 Daniel S (24 Nov 2007)
1839 - Internal rearrangements, so that the previous struct HandleData is no more.
1840   It is now known as SingleRequest and the Curl_transfer_keeper struct within
1841   that was remove entirely. This has the upside that there are less duplicate
1842   struct members that made it hard to see and remember what struct that was
1843   used to store what data. The transfer_keeper thing was once stored on a
1844   per-connection basis and then it made sense to have the duplicate info but
1845   since it was moved to the SessionHandle (in 7.16.0) it just added weirdness.
1846   The SingleRequest struct is used by data that only is valid for this single
1847   request.
1848
1849 Yang Tse (22 Nov 2007)
1850 - Provide a socklen_t definition in curl.h for Win32 API build targets
1851   which don't have one.
1852
1853 Daniel S (22 Nov 2007)
1854 - Alessandro Vesely helped me improve the --data-urlencode's syntax, parser
1855   and documentation.
1856
1857 Daniel S (21 Nov 2007)
1858 - While inspecting the Negotiate code, I noticed how the proxy auth was using
1859   the same state struct as the host auth, so both could never be used at the
1860   same time! I fixed it (without being able to check) to use two separate
1861   structs to allow authentication using Negotiate on host and proxy
1862   simultaneously.
1863
1864 Daniel S (20 Nov 2007)
1865 - Emil Romanus pointed out a bug that made an easy handle get the cookie
1866   engine activated when set to use a share (even if the share doesn't share
1867   cookies). I fixed it.
1868
1869 - Fixed a very long-lasting mprintf() bug that occurred when we did "%.*s%s",
1870   since the second %s would then wrongly used the numerical precision argument
1871   instead and crash.
1872
1873 - Introduced --data-urlencode to the curl tool for easier url encoding of the
1874   data sent in a post.
1875
1876 Daniel S (18 Nov 2007)
1877 - Rob Crittenden fixed SSL connections with NSS done with the multi-interface
1878
1879 Daniel S (17 Nov 2007)
1880 - Michal Marek made the test suite remember what test servers that fail to
1881   start so that subsequent tries are simply skipped.
1882
1883 - Andres Garcia made the examples build fine on Windows (mingw + msys) when
1884   the lib was built staticly.
1885
1886 Daniel S (16 Nov 2007)
1887 - Ates Goral identified a problem in http.c:add_buffer_send() when a debug
1888   callback was used, as it could wrongly pass on a bad size for the outgoing
1889   HTTP header. The bad size would be a very large value as it was a wrapped
1890   size_t content. This happened when the whole HTTP request failed to get sent
1891   in one single send.  http://curl.haxx.se/mail/lib-2007-11/0165.html
1892
1893 Daniel S (15 Nov 2007)
1894 - Fixed yet another remaining problem with doing SFTP directory listings on a
1895   re-used persistent connection. Mentioned by Immanuel Gregoire on the mailing
1896   list.
1897
1898 - Michal Marek fixed the test suite to better deal with the case when the HTTP
1899   ipv6 server can't run.
1900
1901 Yang Tse (14 Nov 2007)
1902 - Fix a variable potential wrapping in add_buffer() when using absolutely
1903   huge send buffer sizes.
1904
1905 Daniel S (13 Nov 2007)
1906 - Fixed a remaining problem with doing SFTP directory listings on a re-used
1907   persistent connection. Mentioned by Immanuel Gregoire on the mailing list.
1908
1909 Daniel S (12 Nov 2007)
1910 - Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was
1911   forwarded from the Gentoo bug tracker by Daniel Black and was originally
1912   submitted by Robin Johnson, pointed out that libcurl would do bad memory
1913   references when it failed and bailed out before the handler thing was
1914   setup. My fix is not done like the provided patch does it, but instead I
1915   make sure that there's never any chance for a NULL pointer in that struct
1916   member.
1917
1918 Yang Tse (10 Nov 2007)
1919 - Vikram Saxena (http://curl.haxx.se/mail/lib-2007-11/0096.html) pointed out
1920   that the pollfd struct was being multi defined when using VS2008. This is
1921   now fixed in /curl/lib/select.h
1922
1923 Daniel S (8 Nov 2007)
1924 - Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed
1925   out that SFTP requests didn't use persistent connections. Neither did SCP
1926   ones.  I gave the SSH code a good beating and now both SCP and SFTP should
1927   use persistent connections fine. I also did a bunch of indent changes as
1928   well as a bug fix for the "keyboard interactive" auth.
1929
1930 Dan F (6 Nov 2007)
1931 - Improved telnet support by drastically reducing the number of write
1932   callbacks needed to pass a buffer to the user.  Instead one per byte it
1933   is now as little as one per segment.
1934
1935 Yang Tse (6 Nov 2007)
1936 - Bug report #1824894 (http://curl.haxx.se/bug/view.cgi?id=1824894) pointed
1937   out a problem in curl.h when building C++ apps with MSVC. To fix it, the
1938   inclusion of header files in curl.h is moved outside of the C++ extern "C"
1939   linkage block.
1940
1941 Daniel S (1 Nov 2007)
1942 - Toby Peterson patched a memory problem in the command line tool that
1943   happened when a user had a home dir as an empty string. curl would then do
1944   free() on a wrong area.
1945
1946 Dan F (1 Nov 2007)
1947 - Fixed curl-config --features to not display libz when it wasn't used
1948   due to a missing header file.
1949
1950 Dan F (31 October 2007)
1951 - Fixed the output of curl-config --protocols which showed SCP and SFTP
1952   always, except when --without-libssh2 was given
1953
1954 - Added test cases 1013 and 1014 to check that curl-config --protocols and
1955   curl-config --features matches the output of curl --version
1956
1957 Dan F (30 October 2007)
1958 - Fixed an OOM problem with file: URLs
1959
1960 - Moved Curl_file_connect into the protocol handler struct
1961
1962 Dan F (29 October 2007)
1963 - Added test case 546 to check that subsequent FTP transfers work after a
1964   failed one using the multi interface
1965
1966 Daniel S (29 October 2007)
1967 - Based on one of those bug reports that are intercepted by a distro's bug
1968   tracker (https://bugzilla.redhat.com/show_bug.cgi?id=316191), I now made
1969   curl-config --features and --protocols show the correct output when built
1970   with NSS.
1971
1972 Version 7.17.1 (29 October 2007)
1973
1974 Dan F (25 October 2007)
1975 - Added the --static-libs option to curl-config
1976
1977 Daniel S (25 October 2007)
1978 - Made libcurl built with NSS possible to ignore the peer verification.
1979   Previously it would fail if the ca bundle wasn't present, even if the code
1980   ignored the verification results.
1981
1982 Patrick M (25 October 2007)
1983 - Fixed test server to allow null bytes in binary posts.
1984 _ Added tests 35, 544 & 545 to check binary data posts, both static (in place)
1985   and dynamic (copied).
1986
1987 Daniel S (25 October 2007)
1988 - Michal Marek fixed the test script to be able to use valgrind even when the
1989   lib is built shared with libtool.
1990
1991 - Fixed a few memory leaks when the same easy handle is re-used to request
1992   URLs with different protocols. FTP and TFTP related leaks. Caught thanks to
1993   Dan F's new test cases.
1994
1995 Dan F (24 October 2007)
1996 - Fixed the test FTP and TFTP servers to support the >10000 test number
1997   notation
1998
1999 - Added test cases 2000 through 2003 which test multiple protocols using the
2000   same easy handle
2001
2002 - Fixed the filecheck: make target to work outside the source tree
2003
2004 Daniel S (24 October 2007)
2005 - Vladimir Lazarenko pointed out that we should do some 'mt' magic when
2006   building with VC8 to get the "manifest" embedded to make fine stand-alone
2007   binaries. The maketgz and the src/Makefile.vc6 files were adjusted
2008   accordingly.
2009
2010 Daniel S (23 October 2007)
2011 - Bug report #1812190 (http://curl.haxx.se/bug/view.cgi?id=1812190) points out
2012   that libcurl tried to re-use connections a bit too much when using non-SSL
2013   protocols tunneled over a HTTP proxy.
2014
2015 Daniel S (22 October 2007)
2016 - Michal Marek forwarded the bug report
2017   https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to
2018   FTP that caused memory havoc. His work together with my efforts created two
2019   fixes:
2020
2021   #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with
2022        at connection cleanup, at which time the struct HandleData could be
2023        used by another connection.
2024        Also, the unused char *urlpath member is removed from struct FTP.
2025  
2026   #2 - provide a Curl_reset_reqproto() function that frees
2027        data->reqdata.proto.* on connection setup if needed (that is if the
2028        SessionHandle was used by a different connection).
2029
2030   A long-term goal is of course to somehow get rid of how the reqdata struct
2031   is used, as it is too error-prone.
2032  
2033 - Bug report #1815530 (http://curl.haxx.se/bug/view.cgi?id=1815530) points out
2034   that specifying a proxy with a trailing slash didn't work (unless it also
2035   contained a port number).
2036
2037 Patrick M (15 October 2007)
2038 - Fixed the dynamic CURLOPT_POSTFIELDS problem: this option is now static again
2039   and option CURLOPT_COPYPOSTFIELDS has been added to support dynamic mode.
2040
2041 Patrick M (12 October 2007)
2042 - Added per-protocol callback static tables, replacing callback ptr storage
2043   in the connectdata structure by a single handler table ptr.
2044
2045 Dan F (11 October 2007)
2046 - Fixed the -l option of runtests.pl
2047
2048 - Added support for skipping tests based on key words.
2049
2050 Daniel S (9 October 2007)
2051 - Michal Marek removed the no longer existing return codes from the curl.1
2052   man page.
2053
2054 Daniel S (7 October 2007)
2055 - Known bug #47, which confused libcurl if doing NTLM auth over a proxy with
2056   a response that was larger than 16KB is now improved slightly so that now
2057   the restriction at 16KB is for the headers only and it should be a rare
2058   situation where the response-headers exceed 16KB. Thus, I consider #47 fixed
2059   and the header limitation is now known as known bug #48.
2060
2061 Daniel S (5 October 2007)
2062 - Michael Wallner made the CULROPT_COOKIELIST option support a new magic
2063   string: "FLUSH". Using that will cause libcurl to flush its cookies to the
2064   CURLOPT_COOKIEJAR file.
2065
2066 - The new file docs/libcurl/ABI describes how we view ABI breakages, soname
2067   bumps and what the version number's significance to all that is.
2068
2069 Daniel S (4 October 2007)
2070 - I enabled test 1009 and made the --local-port use a wide range to reduce the
2071   risk of failures.
2072
2073 - Kim Rinnewitz reported that --local-port didn't work with TFTP transfers.
2074   This happened because the tftp code always uncondionally did a bind()
2075   without caring if one already had been done and then it failed. I wrote a
2076   test case (1009) to verify this, but it is a bit error-prone since it will
2077   have to pick a fixed local port number and since the tests are run on so
2078   many different hosts in different situations I'll add it in disabled state.
2079
2080 Yang Tse (3 October 2007)
2081 - Fixed issue related with the use of ares_timeout() result.
2082
2083 Daniel S (3 October 2007)
2084 - Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and
2085   CURLOPT_OPENSOCKETDATA to set a callback that allows an application to
2086   replace the socket() call used by libcurl. It basically allows the app to
2087   change address, protocol or whatever of the socket.
2088
2089 - I renamed the CURLE_SSL_PEER_CERTIFICATE error code to
2090   CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made
2091   this return code get used by the previous SSH MD5 fingerprint check in case
2092   it fails.
2093
2094 - Based on a patch brought by Johnny Luong, libcurl now offers
2095   CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both
2096   make the SCP or SFTP connection verify the remote host's md5 checksum of the
2097   public key before doing a connect, to reduce the risk of a man-in-the-middle
2098   attack.
2099
2100 Daniel S (2 October 2007)
2101 - libcurl now handles chunked-encoded CONNECT responses
2102
2103 Daniel S (1 October 2007)
2104 - Alex Fishman reported a curl_easy_escape() problem that was made the
2105   function do wrong on all input bytes that are >= 0x80 (decimal 128) due to a
2106   signed / unsigned mistake in the code. I fixed it and added test case 543 to
2107   verify.
2108
2109 Daniel S (29 September 2007)
2110 - Immanuel Gregoire fixed a problem with persistent transfers over SFTP.
2111
2112 Daniel S (28 September 2007)
2113 - Adapted the c-ares code to the API change c-ares 1.5.0 brings in the
2114   notifier callback(s).
2115
2116 Dan F (26 September 2007)
2117 - Enabled a few more gcc warnings with --enable-debug.  Renamed a few
2118   variables to avoid shadowing global declarations.
2119
2120 Daniel S (26 September 2007)
2121 - Philip Langdale provided the new CURLOPT_POST301 option for
2122   curl_easy_setopt() that alters how libcurl functions when following
2123   redirects. It makes libcurl obey the RFC2616 when a 301 response is received
2124   after a non-GET request is made. Default libcurl behaviour is to change
2125   method to GET in the subsequent request (like it does for response code 302
2126   - because that's what many/most browsers do), but with this CURLOPT_POST301
2127   option enabled it will do what the spec says and do the next request using
2128   the same method again. I.e keep POST after 301. 
2129
2130   The curl tool got this option as --post301
2131
2132   Test case 1011 and 1012 were added to verify.
2133
2134 - Max Katsev reported that when doing a libcurl FTP request with
2135   CURLOPT_NOBODY enabled but not CURLOPT_HEADER, libcurl wouldn't do TYPE
2136   before it does SIZE which makes it less useful. I walked over the code and
2137   made it do this properly, and added test case 542 to verify it.
2138
2139 Daniel S (24 September 2007)
2140 - Immanuel Gregoire fixed KNOWN_BUGS #44: --ftp-method nocwd did not handle
2141   URLs ending with a slash properly (it should list the contents of that
2142   directory). Test case 351 brought back and also test 1010 was added.
2143
2144 Daniel S (21 September 2007)
2145 - Mark Davies fixed Negotiate authentication over proxy, and also introduced
2146   the --proxy-negotiate command line option to allow a user to explicitly
2147   select it.
2148
2149 Daniel S (19 September 2007)
2150 - Rob Crittenden provided an NSS update with the following highlights:
2151
2152   o It looks for the NSS database first in the environment variable SSL_DIR,
2153     then in /etc/pki/nssdb, then it initializes with no database if neither of
2154     those exist.
2155
2156   o If the NSS PKCS#11 libnspsem.so driver is available then PEM files may be
2157     loaded, including the ca-bundle. If it is not available then only
2158     certificates already in the NSS database are used.
2159
2160   o Tries to detect whether a file or nickname is being passed in so the right
2161     thing is done
2162
2163   o Added a bit of code to make the output more like the OpenSSL module,
2164     including displaying the certificate information when connecting in
2165     verbose mode
2166
2167   o Improved handling of certificate errors (expired, untrusted, etc)
2168
2169   The libnsspem.so PKCS#11 module is currently only available in Fedora
2170   8/rawhide. Work will be done soon to upstream it. The NSS module will work
2171   with or without it, all that changes is the source of the certificates and
2172   keys.
2173
2174 Daniel S (18 September 2007)
2175 - Immanuel Gregoire pointed out that public key SSH auth failed if no
2176   public/private key was specified and there was no HOME environment variable,
2177   and then it didn't continue to try the other auth methods. Now it will
2178   instead try to get the files id_dsa.pub and id_dsa from the current
2179   directory if none of the two conditions were met.
2180
2181 Dan F (17 September 2007)
2182 - Added hooks to the test suite to make it possible to test a curl running
2183   on a remote host.
2184
2185 - Changed some FTP tests to validate the format of the PORT and EPRT commands
2186   sent by curl, if not the addresses themselves.
2187
2188 Daniel S (15 September 2007)
2189 - Michal Marek made libcurl automatically append ";type=<a|i>" when using HTTP
2190   proxies for FTP urls.
2191
2192 - Günter Knauf fixed LDAP builds in the Windows makefiles and fixed LDAPv3
2193   support on Windows.
2194
2195 Dan F (13 September 2007)
2196 - Added LDAPS, SCP and SFTP to curl-config --protocols. Removed and
2197   fixed some AC_SUBST configure entries.
2198
2199 Version 7.17.0 (13 September 2007)
2200
2201 Daniel S (12 September 2007)
2202 - Bug report #1792649 (http://curl.haxx.se/bug/view.cgi?id=1792649) pointed
2203   out a problem with doing an empty upload over FTP on a re-used connection.
2204   I added test case 541 to reproduce it and to verify the fix.
2205
2206 - I noticed while writing test 541 that the FTP code wrongly did a CWD on the
2207   second transfer as it didn't store and remember the "" path from the
2208   previous transfer so it would instead CWD to the entry path as stored. This
2209   worked, but did a superfluous command. Thus, test case 541 now also verifies
2210   this fix.
2211
2212 Dan F (5 September 2007)
2213 - Added test case 1007 to test permission problem when uploading with TFTP
2214   (to validate bug #1790403).
2215
2216 - TFTP now reports the "not defined" TFTP error code 0 as an error,
2217   not success.
2218
2219 Daniel S (5 September 2007)
2220 - Continued the work on a fix for #1779054
2221   (http://curl.haxx.se/bug/view.cgi?id=1779054). My previous fix from August
2222   24 was not complete (either) but could accidentally "forget" parts of a
2223   server response which led to faulty server response time-out errors.
2224
2225 Dan F (5 September 2007)
2226 - Minix doesn't support getsockopt on UDP sockets or send/recv on TCP
2227   sockets.
2228
2229 Dan F (31 August 2007)
2230 - Made some of the error strings returned by the *strerror functions more
2231   generic, and more consistent with each other.
2232
2233 - Renamed the curl_ftpssl enum to curl_usessl and its enumerated constants,
2234   creating macros for backward compatibility:
2235
2236     CURLFTPSSL_NONE => CURLUSESSL_NONE
2237     CURLFTPSSL_TRY => CURLUSESSL_TRY
2238     CURLFTPSSL_CONTROL => CURLUSESSL_CONTROL
2239     CURLFTPSSL_ALL => CURLUSESSL_ALL
2240     CURLFTPSSL_LAST => CURLUSESSL_LAST
2241
2242 Dan F (30 August 2007)
2243 - Renamed several libcurl error codes and options to make them more general
2244   and allow reuse by multiple protocols. Several unused error codes were
2245   removed.  In all cases, macros were added to preserve source (and binary)
2246   compatibility with the old names.  These macros are subject to removal at
2247   a future date, but probably not before 2009.  An application can be
2248   tested to see if it is using any obsolete code by compiling it with the
2249   CURL_NO_OLDIES macro defined.
2250
2251   The following unused error codes were removed:
2252
2253     CURLE_BAD_CALLING_ORDER
2254     CURLE_BAD_PASSWORD_ENTERED
2255     CURLE_FTP_CANT_RECONNECT
2256     CURLE_FTP_COULDNT_GET_SIZE
2257     CURLE_FTP_COULDNT_SET_ASCII
2258     CURLE_FTP_USER_PASSWORD_INCORRECT
2259     CURLE_FTP_WEIRD_USER_REPLY
2260     CURLE_FTP_WRITE_ERROR
2261     CURLE_LIBRARY_NOT_FOUND
2262     CURLE_MALFORMAT_USER
2263     CURLE_OBSOLETE
2264     CURLE_SHARE_IN_USE
2265     CURLE_URL_MALFORMAT_USER
2266
2267   The following error codes were renamed:
2268
2269     CURLE_FTP_ACCESS_DENIED =>      CURLE_REMOTE_ACCESS_DENIED
2270     CURLE_FTP_COULDNT_SET_BINARY => CURLE_FTP_COULDNT_SET_TYPE
2271     CURLE_FTP_SSL_FAILED =>         CURLE_USE_SSL_FAILED
2272     CURLE_FTP_QUOTE_ERROR =>        CURLE_QUOTE_ERROR
2273     CURLE_TFTP_DISKFULL =>          CURLE_REMOTE_DISK_FULL
2274     CURLE_TFTP_EXISTS =>            CURLE_REMOTE_FILE_EXISTS
2275     CURLE_HTTP_RANGE_ERROR =>       CURLE_RANGE_ERROR 
2276
2277   The following options were renamed:
2278
2279     CURLOPT_SSLKEYPASSWD => CURLOPT_KEYPASSWD 
2280     CURLOPT_FTPAPPEND =>    CURLOPT_APPEND
2281     CURLOPT_FTPLISTONLY =>  CURLOPT_DIRLISTONLY
2282     CURLOPT_FTP_SSL =>      CURLOPT_USE_SSL
2283
2284   A few more changes will take place with the next SONAME bump of the
2285   library.  These are documented in docs/TODO
2286
2287 - Documented some newer error codes in libcurl-error(3)
2288
2289 - Added more accurate error code returns from SFTP operations.  Added test
2290   case 615 to test an SFTP upload failure.
2291
2292 Dan F (28 August 2007)
2293 - Some minor internal type and const changes based on a splint scan.
2294
2295 Daniel S (24 August 2007)
2296 - Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
2297   out that libcurl didn't deal with large responses from server commands, when
2298   the single response was consisting of multiple lines but of a total size of
2299   16KB or more. Dan Fandrich improved the ftp test script and provided test
2300   case 1006 to repeat the problem, and I fixed the code to make sure this new
2301   test case runs fine.
2302
2303 Patrick M (23 August 2007)
2304 - OS/400 port: new files lib/config-os400.h lib/setup-os400.h packages/OS400/*.
2305   See packages/OS400/README.OS400.
2306
2307 Daniel S (23 August 2007)
2308 - Bug report #1779751 (http://curl.haxx.se/bug/view.cgi?id=1779751) pointed
2309   out that doing first a file:// upload and then an FTP upload crashed libcurl
2310   or at best caused furious valgrind complaints. Fixed now!
2311
2312 Daniel S (22 August 2007)
2313 - Bug report #1779054 (http://curl.haxx.se/bug/view.cgi?id=1779054) pointed
2314   out that libcurl didn't deal with very long (>16K) FTP server response lines
2315   properly. Starting now, libcurl will chop them off (thus the client app will
2316   not get the full line) but survive and deal with them fine otherwise. Test
2317   case 1003 was added to verify this.
2318
2319 Daniel S (20 August 2007)
2320 - Based on a patch by Christian Vogt, the FTP code now sets the upcoming
2321   download transfer size much earlier to be possible to get read with
2322   CURLINFO_CONTENT_LENGTH_DOWNLOAD as soon as possible. This is very much in a
2323   similar spirit to the HTTP size change from August 11 2007.
2324
2325 Daniel S (18 August 2007)
2326 - Robson Braga Araujo filed bug report #1776232
2327   (http://curl.haxx.se/bug/view.cgi?id=1776232) about libcurl calling
2328   Curl_client_write(), passing on a const string that the caller may not
2329   modify and yet it does (on some platforms).
2330
2331 - Robson Braga Araujo filed bug report #1776235
2332   (http://curl.haxx.se/bug/view.cgi?id=1776235) about ftp requests with NOBODY
2333   on a directory would do a "SIZE (null)" request. This is now fixed and test
2334   case 1000 was added to verify.
2335
2336 Daniel S (17 August 2007)
2337 - Song Ma provided a patch that cures a problem libcurl has when doing resume
2338   HTTP PUT using Digest authentication. Test case 5320 and 5322 were also
2339   added to verify the functionality.
2340
2341 Daniel S (14 August 2007)
2342 - Andrew Wansink provided an NTLM bugfix: in the case the server sets the flag
2343   NTLMFLAG_NEGOTIATE_UNICODE, we need to filter it off because libcurl doesn't
2344   UNICODE encode the strings it packs into the NTLM authenticate packet.
2345
2346 Daniel S (11 August 2007)
2347 - Allen Pulsifer provided a patch that makes libcurl set the expected download
2348   size earlier when doing HTTP downloads, so that applications and the
2349   progress meter etc know get the info earlier in the flow than before.
2350
2351 - Patrick Monnerat modified the LDAP code and approach in curl. Starting now,
2352   the configure script checks for openldap and friends and we link with those
2353   libs just like we link all other third party libraries, and we no longer
2354   dlopen() those libraries. Our private header file lib/ldap.h was renamed to
2355   lib/curl_ldap.h due to this. I set a tag in CVS (curl-7_17_0-preldapfix)
2356   just before this commit, just in case.
2357
2358 Dan F (8 August 2007)
2359 - Song Ma noted a zlib memory leak in the illegal compressed header
2360   countermeasures code path.
2361
2362 Daniel S (4 August 2007)
2363 - Patrick Monnerat fixed curl_easy_escape() and curlx_strtoll() to work on
2364   non-ASCII systems.
2365
2366 Daniel S (3 August 2007)
2367 - I cut out support for libssh2 versions older than 0.16 to make our code a
2368   lot simpler, and to avoid getting trouble with the LIBSSH2_APINO define
2369   that 1) didn't work properly since it was >32 bits and 2) is removed in
2370   libssh2 0.16...
2371
2372 Daniel S (2 August 2007)
2373 - Scott Cantor filed bug report #1766320
2374   (http://curl.haxx.se/bug/view.cgi?id=1766320) pointing out that the libcurl
2375   code accessed two curl_easy_setopt() options (CURLOPT_DNS_CACHE_TIMEOUT and
2376   CURLOPT_DNS_USE_GLOBAL_CACHE) as ints even though they're documented to be
2377   passed in as longs, and that makes a difference on 64 bit architectures.
2378
2379 - Dmitriy Sergeyev reported a regression: resumed file:// transfers broke
2380   after 7.16.2. This is much due to the different treatment file:// gets
2381   internally, but now I added test 231 to make it less likely to happen again
2382   without us noticing!
2383
2384 Daniel S (1 August 2007)
2385 - Patrick Monnerat and I modified libcurl so that now it *copies* all strings
2386   passed to it with curl_easy_setopt()! Previously it has always just refered
2387   to the data, forcing the user to keep the data around until libcurl is done
2388   with it. That is now history and libcurl will instead clone the given
2389   strings and keep private copies. This is also part of Patrick Monnerat's
2390   OS/400 port.
2391
2392   Due to this being a somewhat interesting change API wise, I've decided to
2393   bump the version of the upcoming release to 7.17.0. Older applications will
2394   of course not notice this change nor do they have to care, but new
2395   applications can be written to take advantage of this.
2396
2397 - Greg Morse reported a problem with POSTing using ANYAUTH to a server
2398   requiring NTLM, and he provided test code and a test server and we worked
2399   out a bug fix. We failed to count sent body data at times, which then caused
2400   internal confusions when libcurl tried to send the rest of the data in order
2401   to maintain the same connection alive.
2402
2403 Daniel S (31 July 2007)
2404 - Peter O'Gorman pointed out (and fixed) that the non-blocking check in
2405   configure made libcurl use blocking sockets on AIX 4 and 5, while that
2406   wasn't the intention.
2407
2408 Daniel S (29 July 2007)
2409 - Jayesh A Shah filed bug report #1759542
2410   (http://curl.haxx.se/bug/view.cgi?id=1759542) identifying a rather serious
2411   problem with FTPS: libcurl closed the data connection socket and then later
2412   in the flow it would call the SSL layer to do SSL shutdown which then would
2413   use a socket that had already been closed - so if the application had opened
2414   a new one in the mean time, libcurl could send gibberish that way! I worked
2415   with Greg Zavertnik to properly diagnose and fix this. The fix affects code
2416   for all SSL libraries we support, but it has only been truly verified to
2417   work fine for the OpenSSL version. The others have only been code reviewed.
2418
2419 Daniel S (23 July 2007)
2420 - Implemented the parts of Patrick Monnerat's OS/400 patch that introduces
2421   support for the OS/400 Secure Sockets Layer library.
2422
2423 Dan F (23 July 2007)
2424 - Implemented only the parts of Patrick Monnerat's OS/400 patch that renamed
2425   some few internal identifiers to avoid conflicts, which could be useful on
2426   other platforms.
2427
2428 Daniel S (22 July 2007)
2429 - HTTP Digest bug fix by Chris Flerackers:
2430
2431   Scenario
2432
2433   - Perfoming a POST request with body
2434   - With authentication (only Digest)
2435   - Re-using a connection
2436
2437   libcurl would send a HTTP POST with an Authorization header but without
2438   body. Our server would return 400 Bad Request in that case (because
2439   authentication passed, but the body was empty).
2440
2441   Cause
2442
2443   1) http_digest.c -> Curl_output_digest
2444   - Updates allocptr.userpwd/allocptr.proxyuserpwd *only* if d->nonce is
2445   filled in (and no errors)
2446   - authp->done = TRUE if d->nonce is filled in
2447   2) http.c -> Curl_http
2448   - *Always* uses allocptr.userpwd/allocptr.proxyuserpwd if not NULL
2449   3) http.c -> Curl_http, Curl_http_output_auth
2450
2451   So what happens is that Curl_output_digest cannot yet update the
2452   Authorization header (allocptr.userpwd) which results in authhost->done=0 ->
2453   authhost->multi=1 -> conn->bits.authneg = TRUE.  The body is not
2454   added. *However*, allocptr.userpwd is still used when building the request
2455
2456 - Added test case 354 that makes a simple FTP retrieval without password, which
2457   verifies the bug fix in #1757328.
2458
2459 Daniel S (21 July 2007)
2460 - To allow more flexibility in FTP test cases, I've removed the enforced states
2461   from the test server code as they served no real purpose. The test server
2462   is here to serve for the test cases, not to attempt to function as a real
2463   server! While at it, I modified test case 141 to better test and verify
2464   curl -I on a single FTP file.
2465
2466 Daniel S (20 July 2007)
2467 - James Housley fixed the SFTP PWD command to work.
2468
2469 - Ralf S. Engelschall filed bug report #1757328
2470   (http://curl.haxx.se/bug/view.cgi?id=1757328) and submitted a patch. It
2471   turns out we broke login to FTP servers that don't require (nor understand)
2472   PASS after the USER command. The breakage was done as part of the krb5
2473   commit so a krb-using person needs to verify that the current version now
2474   works or if we need to fix it (in a different way of course).
2475
2476 Dan F (17 July 2007)
2477 - Fixed test cases 613 and 614 by improving the log postprocessor to handle
2478   a new directory listing format that newer libssh2's can provide.  This
2479   is probably NOT sufficient to handle all directory listing formats that
2480   server's can provide, and should be revisited.
2481
2482 Daniel S (17 July 2007)
2483 - Daniel Johnson fixed a bug in how libssh2_session_last_error() was used, in
2484   two places.
2485
2486 - Jofell Gallardo posted a libcurl log using FTP that exposed a bug which made
2487   a control connection that was deemed "dead" to yet be re-used in a following
2488   request.
2489
2490 Daniel S (13 July 2007)
2491 - Colin Hogben filed bug report #1750274
2492   (http://curl.haxx.se/bug/view.cgi?id=1750274) and submitted a patch for the
2493   case where libcurl did a connect attempt to a non-listening port and didn't
2494   provide a human readable error string back.
2495
2496 - Daniel Cater fixes:
2497   1 - made 'make vc8' work on windows.
2498   2 - made libcurl itself built with CURL_NO_OLDIES defined (which doesn't
2499       define the symbols for backwards source compatibility)
2500   3 - updated libcurl-errors.3
2501   4 - added CURL_DISABLE_TFTP to docs/INSTALL
2502
2503 Daniel S (12 July 2007)
2504 - Made the krb5 code build with Heimdal's GSSAPI lib.
2505
2506 Dan F (12 July 2007)
2507 - Compile most of the example apps in docs/examples when doing a 'make check'.
2508   Fixed some compile warnings and errors in those examples.
2509
2510 - Removed the example program ftp3rdparty.c since libcurl doesn't support
2511   3rd party FTP transfers any longer.
2512
2513 Daniel S (12 July 2007)
2514 - Shmulik Regev found an (albeit rare) case where the proxy CONNECT operation
2515   could in fact get stuck in an endless loop.
2516
2517 - Made CURLOPT_SSL_VERIFYHOST set to 1 acts as described in the documentation:
2518   fail to connect if there is no Common Name field found in the remote cert.
2519   We should deprecate the support for this set to 1 anyway soon, since the
2520   feature is pointless and most likely never really used by anyone.
2521
2522 Daniel S (11 July 2007)
2523 - Shmulik Regev fixed a bug with transfer-encoding skipping during the 407
2524   error pages for proxy authentication.
2525
2526 - Giancarlo Formicuccia reported and fixed a problem with a closed connection
2527   to a proxy during CONNECT auth negotiation.
2528
2529 Dan F (10 July 2007)
2530 - Fixed a curl memory leak reported by Song Ma with a modified version
2531   of the patch he suggested.  Added his test case as test289 to verify.
2532
2533 - Force the time zone to GMT in the cookie tests in case the user is
2534   using one of the so-called 'right' time zones that take into account
2535   leap seconds, which causes the tests to fail (as reported by
2536   Daniel Black in bug report #1745964).
2537
2538 Version 7.16.4 (10 July 2007)
2539
2540 Daniel S (10 July 2007)
2541 - Kees Cook notified us about a security flaw
2542   (http://curl.haxx.se/docs/adv_20070710.html) in which libcurl failed to
2543   properly reject some outdated or not yet valid server certificates when
2544   built with GnuTLS. Kees also provided the patch.
2545
2546 James H (5 July 2007)
2547 - Gavrie Philipson provided a patch that will use a more specific error
2548   message for an scp:// upload failure.  If libssh2 has his matching
2549   patch, then the error message return by the server will be used instead
2550   of a more generic error.
2551
2552 Daniel S (1 July 2007)
2553 - Thomas J. Moore provided a patch that introduces Kerberos5 support in
2554   libcurl. This also makes the options change name to --krb (from --krb4) and
2555   CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still 
2556
2557 - Song Ma helped me verify and extend a fix for doing FTP over a SOCKS4/5
2558   proxy.
2559
2560 Daniel S (27 June 2007)
2561 - James Housley: Add two new options for the SFTP/SCP/FILE protocols:
2562   CURLOPT_NEW_FILE_PERMS and CURLOPT_NEW_DIRECTORY_PERMS. These control the
2563   premissions for files and directories created on the remote
2564   server. CURLOPT_NEW_FILE_PERMS defaults to 0644 and
2565   CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755
2566
2567 - I corrected the 10-at-a-time.c example and applied a patch for it by James
2568   Bursa.
2569
2570 Daniel S (26 June 2007)
2571 - Robert Iakobashvili re-arranged the internal hash code to work with a custom
2572   hash function for different hashes, and also expanded the default size for
2573   the socket hash table used in multi handles to greatly enhance speed when
2574   very many connections are added and the socket API is used.
2575
2576 - James Housley made the CURLOPT_FTPLISTONLY mode work for SFTP directory
2577   listings as well
2578
2579 Daniel S (25 June 2007)
2580 - Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or
2581   chunked encoding (that also lacks "Connection: close"). It now simply
2582   assumes that the connection WILL be closed to signal the end, as that is how
2583   RFC2616 section 4.4 point #5 says we should behave.
2584   
2585 Version 7.16.3 (25 June 2007)
2586
2587 Daniel S (23 June 2007)
2588 - As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
2589   http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do
2590   no-body requests on FTP files on re-used connections properly, or at least
2591   it didn't provide the info back in the header callback properly in the
2592   subsequent requests.
2593
2594 Daniel S (21 June 2007)
2595 - Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
2596   tool reports and it was indeed a legitimate one and it is one fixed. It was
2597   a use of a share without doing the proper locking first.
2598   
2599 Daniel S (20 June 2007)
2600 - Adam Piggott filed bug report #1740263
2601   (http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
2602   getting a large amount of URLs with curl, they were fetched slower and
2603   slower... which turned out to be because the --libcurl data collecting which
2604   wrongly always was enabled, but no longer is...
2605
2606 Daniel S (18 June 2007)
2607 - Robson Braga Araujo filed bug report #1739100
2608   (http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl
2609   could not actually list the contents of the root directory of a given FTP
2610   server if the login directory isn't root. I fixed the problem and added
2611   three test cases (one is disabled for now since I identified KNOWN_BUGS #44,
2612   we cannot use --ftp-method nocwd and list ftp directories).
2613
2614 Daniel S (14 June 2007)
2615 - Shmulik Regev:
2616
2617   I've encountered (and hopefully fixed) a problem involving proxy CONNECT
2618   requests and easy handles state management. The problem isn't simple to
2619   reproduce since it depends on socket state. It only manifests itself when
2620   working with non-blocking sockets.
2621
2622   Here is the scenario:
2623
2624   1. in multi_runsingle the easy handle is in the CURLM_STATE_WAITCONNECT and
2625   calls Curl_protocol_connect
2626
2627   2. in Curl_proxyCONNECT, line 1247, if the socket isn't ready the function
2628   returns and conn->bits.tunnel_connecting is TRUE
2629
2630   3. when the call to Curl_protocol_connect returns the protocol_connect flag
2631   is false and the easy state is changed to CURLM_STATE_PROTOCONNECT which
2632   isn't correct if a proxy is used.  Rather CURLM_STATE_WAITPROXYCONNECT
2633   should be used.
2634
2635   I discovered this while performing an HTTPS request through a proxy (squid)
2636   on my local network. The problem caused openssl to fail as it read the proxy
2637   response to the CONNECT call ('HTTP/1.0 Established') rather than the SSL
2638   handshake (the exact openssl error was 'wrong ssl version' but this isn't
2639   very important)
2640
2641 - Dave Vasilevsky filed bug report #1736875
2642   (http://curl.haxx.se/bug/view.cgi?id=1736875) almost simultanouesly as Dan
2643   Fandrich mentioned a related build problem on the libcurl mailing list:
2644   http://curl.haxx.se/mail/lib-2007-06/0131.html. Both problems had the same
2645   reason: the definitions of the POLL* defines and the pollfd struct in the
2646   libcurl code was depending on HAVE_POLL instead of HAVE_SYS_POLL_H.
2647
2648 Daniel S (13 June 2007)
2649 - Tom Regner provided a patch and worked together with James Housley, so now
2650   CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP
2651   ones.
2652
2653 - Rich Rauenzahn filed bug report #1733119
2654   (http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the
2655   fix.  The problem is that for 64bit HPUX builds, several socket-related
2656   functions would still assume int (32 bit) arguments and not socklen_t (64
2657   bit) ones.
2658
2659 Daniel S (12 June 2007)
2660 - James Housley brought his revamped SSH code that is state-machine driven to
2661   really take advantage of the now totally non-blocking libssh2 (in CVS).
2662
2663 Dan F (8 June 2007)
2664 - Incorporated Daniel Black's test706 and test707 SOCKS test cases.
2665
2666 - Fixed a few problems when starting the SOCKS server.
2667
2668 - Reverted some recent changes to runtests.pl that weren't compatible with
2669   perl 5.0.
2670
2671 - Fixed the test harness so that it actually kills the ssh being used as
2672   the SOCKS server.
2673
2674 Daniel S (6 June 2007)
2675 - -s/--silent can now be used to toggle off the silence again if used a second
2676   time.
2677
2678 Daniel S (5 June 2007)
2679 - Added Daniel Black's work that adds the first few SOCKS test cases. I also
2680   fixed two minor SOCKS problems to make the test cases run fine.
2681
2682 Daniel S (31 May 2007)
2683 - Feng Tu made (lib)curl support "upload" resuming work for file:// URLs.
2684
2685 Daniel S (30 May 2007)
2686 - I modified the 10-at-a-time.c example to transfer 500 downloads in parallel
2687   with a c-ares enabled build only to find that it crashed miserably, and this
2688   was due to some select()isms left in the code. This was due to API
2689   restrictions in c-ares 1.3.x, but with the upcoming c-ares 1.4.0 this is no
2690   longer the case so now libcurl runs much better with c-ares and the multi
2691   interface with > 1024 file descriptors in use.
2692
2693   Extra note: starting now we require c-ares 1.4.0 for asynchronous name
2694   resolves.
2695
2696 - Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting
2697   the maximum size of the connection cache maximum size of the multi handle.
2698
2699 Daniel S (27 May 2007)
2700 - When working with a problem Stefan Becker had, I found an off-by-one buffer
2701   overwrite in Curl_select(). While fixing it, I also improved its performance
2702   somewhat by changing calloc to malloc and breaking out of a loop earlier
2703   (when possible).
2704
2705 Daniel S (25 May 2007)
2706 - Rob Crittenden fixed bug #1705802
2707   (http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel
2708   Black identifying several FTP-SSL test cases fail when we build libcurl with
2709   NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS.
2710
2711 Daniel S (24 May 2007)
2712 - Song Ma filed bug report #1724016
2713   (http://curl.haxx.se/bug/view.cgi?id=1724016) noticing that downloading
2714   glob-ranges for TFTP was broken in CVS. Fixed now.
2715   
2716 - 'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
2717   pointed out that the warnf() function in the curl tool didn't properly deal
2718   with the cases when excessively long words were used in the string to chop
2719   up.
2720
2721 Daniel S (22 May 2007)
2722 - Andre Guibert de Bruet fixed a memory leak in the function that verifies the
2723   peer's name in the SSL certificate when built for OpenSSL. The leak happens
2724   for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN
2725   name from UTF8. He also fixed a leak when PKCS #12 parsing failed.
2726
2727 Daniel S (18 May 2007)
2728 - Feng Tu reported that curl -w did wrong on TFTP transfers in bug report
2729   #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
2730   transfer-related info "variables" were indeed overwritten with zeroes
2731   wrongly and have now been adjusted. The upload size still isn't accurate.
2732
2733 Daniel S (17 May 2007)
2734 - Feng Tu pointed out a division by zero error in the TFTP connect timeout
2735   code for timeouts less than five seconds, and also provided a fix for it.
2736   Bug report #1715392 (http://curl.haxx.se/bug/view.cgi?id=1715392)
2737
2738 Dan F (16 May 2007)
2739 - Added support for compiling under Minix 3.1.3 using ACK.
2740
2741 Dan F (14 May 2007)
2742 - Added SFTP directory listing test case 613.
2743
2744 - Added support for quote commands before a transfer using SFTP and test
2745   case 614.
2746
2747 - Changed the post-quote commands to occur after the transferred file is
2748   closed.
2749
2750 - Allow SFTP quote commands chmod, chown, chgrp to set a value of 0.
2751
2752 Dan F (9 May 2007)
2753 - Kristian Gunstone fixed a problem where overwriting an uploaded file with
2754   sftp didn't truncate it first, which would corrupt the file if the new
2755   file was shorter than the old.
2756
2757 Dan F (8 May 2007)
2758 - Added FTPS test cases 406 and 407
2759
2760 Daniel S (8 May 2007)
2761 - CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is
2762   because I just made SCP uploads return this value if the file size of
2763   the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to
2764   reflect this news, and a define for the old name was added to the public
2765   header file.
2766
2767 Daniel S (7 May 2007)
2768 - James Bursa fixed a bug in the multi handle code that made the connection
2769   cache grow a bit too much, beyond the normal 4 * easy_handles.
2770
2771 Daniel S (2 May 2007)
2772 - Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0
2773   when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is
2774   not very nice if the client wants to be able to use _either_ a HTTP 1.1
2775   server or one within the aliases list... so starting now, libcurl will
2776   simply consider 200-alias matches the to be HTTP 1.0 compliant.
2777
2778 - Tobias Rundström reported a problem they experienced with xmms2 and recent
2779   libcurls, which turned out to be the 25-nov-2006 change which treats HTTP
2780   responses without Content-Length or chunked encoding as without bodies. We
2781   now added the conditional that the above mentioned response is only without
2782   body if the response is HTTP 1.1.
2783
2784 - Jeff Pohlmeyer improved the hiperfifo.c example to use the
2785   CURLMOPT_TIMERFUNCTION callback option.
2786
2787 - Set the timeout for easy handles to expire really soon after addition or
2788   when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform,
2789   to make applications using only curl_multi_socket() to properly function
2790   when adding easy handles "on the fly". Bug report and test app provided by
2791   Michael Wallner.
2792
2793 Dan F (30 April 2007)
2794 - Improved the test harness to allow running test servers on other than
2795   the default port numbers, allowing more than one test suite to run
2796   simultaneously on the same host.
2797
2798 Daniel S (28 April 2007)
2799 - Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before,
2800   since it then inits libgcrypt and libgcrypt is being evil and EXITS the
2801   application if it fails to get a fine random seed. That's really not a nice
2802   thing to do by a library.
2803
2804 - Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had
2805   been removed from a multi handle, and then fixed another flaw that prevented
2806   curl_easy_duphandle() to work even after the first fix - the handle was
2807   still marked as using the multi interface.
2808
2809 Daniel S (26 April 2007)
2810 - Peter O'Gorman found a problem with SCP downloads when the downloaded file
2811   was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
2812   out" all data from libssh2. The effect being that libcurl would hang on the
2813   socket waiting for data when libssh2 had in fact already read it all...
2814
2815 Dan F (25 April 2007)
2816 - Added support in runtests.pl for "!n" test numbers to disable individual
2817   tests.  Changed -t to only keep log files around when -k is specified,
2818   to have the same behaviour as without -t.
2819
2820 Daniel S (25 April 2007)
2821 - Sonia Subramanian brought our attention to a problem that happens if you set
2822   the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection
2823   in the connection cache is closed to make room for the new one when you call
2824   curl_easy_perform(). It would then wrongly free range-related data in the
2825   connection close funtion.
2826
2827 Yang Tse (25 April 2007)
2828 - Steve Little fixed compilation on VMS 64-bit mode
2829
2830 Daniel S (24 April 2007)
2831 - Robert Iakobashvili made the 'master_buffer' get allocated first once it is
2832   can/will be used as it then makes the common cases save 16KB of data for each
2833   easy handle that isn't used for pipelining.
2834
2835 Dan F (23 April 2007)
2836 - Added <postcheck> support to the test harness.
2837
2838 - Added tests 610-612 to test more SFTP post-quote commands.
2839
2840 Daniel S (22 April 2007)
2841 - Song Ma's warning if -r/--range is given with a "bad" range, also noted in
2842   the man page now.
2843
2844 - Daniel Black filed bug #1705177
2845   (http://curl.haxx.se/bug/view.cgi?id=1705177) where --without-ssl
2846   --with-gnutl outputs a warning about SSL not being enabled even though GnuTLS
2847   was found and used.
2848
2849 Daniel S (21 April 2007)
2850 - Daniel Black filed bug #1704675
2851   (http://curl.haxx.se/bug/view.cgi?id=1704675) identifying a double-free
2852   problem in the SSL-dealing layer, telling GnuTLS to free NULL credentials on
2853   closedown after a failure and a bad #ifdef for NSS when closing down SSL.
2854
2855 Yang Tse (20 April 2007)
2856 - Save one call to curlx_tvnow(), which calls gettimeofday(), in each of
2857   Curl_socket_ready(), Curl_poll() and Curl_select() when these are called
2858   with a zero timeout or a timeout value indicating a blocking call should
2859   be performed.
2860
2861 Daniel S (18 April 2007)
2862 - James Housley made SFTP uploads use libssh2's non-blocking API
2863
2864 - Prevent the internal progress meter from updating more frequently than once
2865   per second.
2866
2867 Dan F (17 April 2007)
2868 - Added test cases 296, 297 and 298 to test --ftp-method handling
2869
2870 Daniel S (16 April 2007)
2871 - Robert Iakobashvil added curl_multi_socket_action() to libcurl, which is a
2872   function that deprecates the curl_multi_socket() function. Using the new
2873   function the application tell libcurl what action that was found in the
2874   socket that it passes in. This gives a significant performance boost as it
2875   allows libcurl to avoid a call to poll()/select() for every call to
2876   curl_multi_socket*().
2877
2878   I added a define in the public curl/multi.h header file that will make your
2879   existing application automatically use curl_multi_socket_action() instead of
2880   curl_multi_socket() when you recompile. But of course you'll get better
2881   performance if you adjust your code manually and actually pass in the
2882   correct action bitmask to this function.
2883
2884 Daniel S (14 April 2007)
2885 - Jay Austin added "DH PARAMETERS" to the stunnel.pem certificate for the test
2886   suite to make stunnel run better in some (most?) environments.
2887
2888 Dan F (13 April 2007)
2889 - Added test cases 294 and 295 to test --ftp-account handling
2890
2891 - Improved handling of out of memory in ftp.
2892
2893 Yang Tse (13 April 2007)
2894 - Fix test case 534 which started to fail 2007-04-13 due to the existance
2895   of a new host on the net with the same silly domain the test was using
2896   for a host which was supposed not to exist.
2897
2898 Daniel S (12 April 2007)
2899 - Song Ma found a memory leak in the if2ip code if you pass in an interface
2900   name longer than the name field of the ifreq struct (typically 6 bytes), as
2901   then it wouldn't close the used dummy socket. Bug #1698974
2902   (http://curl.haxx.se/bug/view.cgi?id=1698974)
2903
2904 Version 7.16.2 (11 April 2007)
2905
2906 Yang Tse (10 April 2007)
2907 - Ravi Pratap provided some fixes for HTTP pipelining
2908
2909 - configure script will ignore --enable-sspi option for non-native Windows.
2910
2911 Daniel S (9 April 2007)
2912 - Nick Zitzmann did ssh.c cleanups
2913
2914 Daniel S (3 April 2007)
2915 - Rob Jones fixed better #ifdef'ing for a bunch of #include lines.
2916
2917 Daniel S (2 April 2007)
2918 - Nick Zitzmann made the CURLOPT_POSTQUOTE option work for SFTP as well. The
2919   accepted commands are as follows:
2920
2921   chgrp (gid) (path)
2922     Changes the group ID of the file or directory at (path) to (gid). (gid)
2923     must be a number.
2924
2925   chmod (perms) (path)
2926     Changes the permissions of the file or directory at (path) to
2927     (perms). (perms) must be a number in the format used by the chmod Unix
2928     command.
2929
2930   chown (uid) (path)
2931     Changes the user ID of the file or directory at (path) to (uid). (uid)
2932     must be a number.
2933
2934   ln (source) (dest)
2935     Creates a symbolic link at (dest) that points to the file located at
2936     (source).
2937
2938   mkdir (path)
2939     Creates a new directory at (path).
2940
2941   rename (source) (dest)
2942     Moves the file or directory at (source) to (dest).
2943
2944   rm (path)
2945     Deletes the file located at (path).
2946
2947   rmdir (path)
2948     Deletes the directory located at (path). This command will raise an error
2949     if the directory is not empty.
2950
2951   symlink (source) (dest)
2952     Same as ln.
2953
2954 Daniel S (1 April 2007)
2955 - Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many
2956   easy handles are added to a multi handle, by avoiding the looping over all
2957   the handles to find which one to remove.
2958
2959 - Matt Kraai provided a patch that makes curl build on QNX 6 fine again.
2960
2961 Daniel S (31 March 2007)
2962 - Fixed several minor issues detected by the coverity.com scanner.
2963
2964 - "Pixel" fixed a problem that appeared when you used -f with user+password
2965   embedded in the URL.
2966
2967 Dan F (29 March 2007)
2968 - Don't tear down the ftp connection if the maximum filesize was exceeded
2969   and added tests 290 and 291 to check.
2970
2971 - Added ftps upload and SSL required tests 401 and 402.
2972
2973 - Send an EOF message before closing an SCP channel, as recommended by
2974   RFC4254. Enable libssh2 tracing when ssh debugging is turned on.
2975
2976 Yang Tse (27 March 2007)
2977 - Internal function Curl_select() renamed to Curl_socket_ready()
2978
2979   New Internal wrapper function Curl_select() around select (2), it
2980   uses poll() when a fine poll() is available, so now libcurl can be
2981   built without select() support at all if a fine poll() is available.
2982
2983 Daniel S (25 March 2007)
2984 - Daniel Johnson fixed multi code to traverse the easy handle list properly.
2985   A left-over bug from the February 21 fix.
2986
2987 Dan F (23 March 2007)
2988 - Added --pubkey option to curl and made --key also work for SCP/SFTP,
2989   plus made --pass work on an SSH private key as well.
2990
2991 - Changed the test harness to attempt to gracefully shut down servers
2992   before resorting to the kill -9 hammer.
2993
2994 - Added test harness infrastructure to support scp/sftp tests, using
2995   OpenSSH as the server.
2996
2997 - Fixed a memory leak when specifying a proxy with a file: URL.
2998
2999 Yang Tse (20 March 2007)
3000 - Fixed: When a signal was caught awaiting for an event using Curl_select()
3001   or Curl_poll() with a non-zero timeout both functions would restart the
3002   specified timeout. This could even lead to the extreme case that if a
3003   signal arrived with a frecuency lower to the specified timeout neither
3004   function would ever exit.
3005
3006   Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in
3007   Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR
3008   defined both functions will return as soon as a signal is caught. Use it
3009   at your own risk, all calls to these functions in the library should be
3010   revisited and checked before fully supporting this feature.
3011
3012 Yang Tse (19 March 2007)
3013 - Bryan Henderson fixed the progress function so that it can get called more
3014   frequently allowing same calling frecuency for the client progress callback.
3015   
3016 Dan F (15 March 2007)
3017 - Various memory leaks plugged and NULL pointer fixes made in the ssh code.
3018
3019 Daniel (15 March 2007)
3020 - Nick made the curl tool accept globbing ranges that only is one number, i.e
3021   you can now use [1-1] without curl complaining.
3022
3023 Daniel (10 March 2007)
3024 - Eygene Ryabinkin:
3025
3026   The problem is the following: when we're calling Curl_done and it decides to
3027   keep the connection opened ('left intact'), then the caller is not notified
3028   that the connection was done via the NULLifying of the pointer, so some easy
3029   handle is keeping the pointer to this connection.
3030
3031   Later ConnectionExists can select such connection for reuse even if we're
3032   not pipelining: pipeLen is zero, so the (pipeLen > 0 && !canPipeline) is
3033   false and we can reuse this connection for another easy handle. But thus the
3034   connection will be shared between two easy handles if the handle that wants
3035   to take the ownership is not the same as was not notified of the connection
3036   was done in Curl_done. And when some of these easy handles will get their
3037   connection really freed the another one will still keep the pointer.
3038
3039   My fix was rather trivial: I just added the NULLification to the 'else'
3040   branch in the Curl_done. My tests with Git and ElectricFence showed no
3041   problems both for HTTP pulling and cloning. Repository size is about 250 Mb,
3042   so it was a considerable amount of Curl's work.
3043
3044 Dan F (9 March 2007)
3045 - Updated the test harness to add a new "crypto" feature check and updated the
3046   appropriate test case to use it.  For now, this is treated the same as the
3047   "SSL" feature because curl doesn't list it separately.
3048
3049 Daniel (9 March 2007)
3050 - Robert Iakobashvili fixed CURLOPT_INTERFACE for IPv6.
3051
3052 - Robert A. Monat improved the maketgz and VC6/8 generating to set the correct
3053   machine type too.
3054
3055 - Justin Fletcher fixed a file descriptor leak in the curl tool when trying to
3056   upload a file it couldn't open. Bug #1676581
3057   (http://curl.haxx.se/bug/view.cgi?id=1676581)
3058
3059 Dan F (9 March 2007)
3060 - Updated the test harness to check for protocol support before running each
3061   test, fixing KNOWN_BUGS #11.
3062
3063 Dan F (7 March 2007)
3064 - Reintroduced (after a 3 year hiatus) an FTPS test case (400) into the test
3065   harness.  It is very limited as it supports only ftps:// URLs with
3066   --ftp-ssl-control specified, which implicitly encrypts the control
3067   channel but not the data channels.  That allows stunnel to be used with
3068   an unmodified ftp server in exactly the same way that the test https
3069   server is set up.
3070
3071 Dan F (7 March 2007)
3072 - Honour --ftp-ssl-control on ftps:// URLs to allow encrypted control and
3073   unencrypted data connections.
3074
3075 Dan F (6 March 2007)
3076 - Fixed a couple of improper pointer uses detected by valgrind in test
3077   cases 181 & 216.
3078
3079 Daniel (2 March 2007)
3080 - Robert A. Monat and Shmulik Regev helped out to fix the new */Makefile.vc8
3081   makefiles that are included in the source release archives, generated from
3082   the Makefile.vc6 files by the maketgz script. I also modified the root
3083   Makefile to have a VC variable that defaults to vc6 but can be overridden to
3084   allow it to be used for vc8 as well. Like this:
3085
3086     nmake VC=vc8 vc
3087
3088 Daniel (27 February 2007)
3089 - Hang Kin Lau found and fixed: When I use libcurl to connect to an https
3090   server through a proxy and have the remote https server port set using the
3091   CURLOPT_PORT option, protocol gets reset to http from https after the first
3092   request.
3093  
3094   User defined URL was modified internally by libcurl and subsequent reuse of
3095   the easy handle may lead to connection using a different protocol (if not
3096   originally http).
3097  
3098   I found that libcurl hardcoded the protocol to "http" when it tries to
3099   regenerate the URL if CURLOPT_PORT is set. I tried to fix the problem as
3100   follows and it's working fine so far
3101
3102 Daniel (25 February 2007)
3103 - Adam D. Moss made the HTTP CONNECT procedure less blocking when used from
3104   the multi interface. Note that it still does a part of the connection in a
3105   blocking manner.
3106
3107 Daniel (23 February 2007)
3108 - Added warning outputs if the command line uses more than one of the options
3109   -v, --trace and --trace-ascii, since it could really confuse the user.
3110   Clarified this fact in the man page.
3111
3112 Daniel (21 February 2007)
3113 - Ravi Pratap provided work on libcurl making pipelining more robust and
3114   fixing some bugs:
3115   o Don't mix GET and POST requests in a pipeline
3116   o Fix the order in which requests are dispatched from the pipeline
3117   o Fixed several curl bugs with pipelining when the server is returning
3118     chunked encoding:
3119     * Added states to chunked parsing for final CRLF
3120     * Rewind buffer after parsing chunk with data remaining
3121     * Moved chunked header initializing to a spot just before receiving
3122       headers
3123
3124 Daniel (20 February 2007)
3125 - Linus Nielsen Feltzing changed the CURLOPT_FTP_SSL_CCC option to handle
3126   active and passive CCC shutdown and added the --ftp-ssl-ccc-mode command
3127   line option.
3128
3129 Daniel (19 February 2007)
3130 - Ian Turner fixed the libcurl.m4 macro's support for --with-libcurl.
3131
3132 - Shmulik Regev found a memory leak in re-used HTTPS connections, at least
3133   when the multi interface was used.
3134
3135 - Robson Braga Araujo made passive FTP transfers work with SOCKS (both 4 and
3136   5).
3137
3138 Daniel (18 February 2007)
3139 - Jeff Pohlmeyer identified two problems: first a rather obscure problem with
3140   the multi interface and connection re-use that could make a
3141   curl_multi_remove_handle() ruin a pointer in another handle.
3142
3143   The second problem was less of an actual problem but more of minor quirk:
3144   the re-using of connections wasn't properly checking if the connection was
3145   marked for closure.
3146
3147 Daniel (16 February 2007)
3148 - Duncan Mac-Vicar Prett and Michal Marek reported problems with resetting
3149   CURLOPT_RANGE back to no range on an easy handle when using FTP.
3150
3151 Dan F (14 February 2007)
3152 - Fixed curl-config --libs so it doesn't list unnecessary libraries (and
3153   therefore introduce unnecessary dependencies) when it's not needed.
3154   Also, don't bother adding a library path of /usr/lib
3155
3156 Daniel (13 February 2007)
3157 - The default password for anonymous FTP connections is now changed to be
3158   "ftp@example.com".
3159
3160 - Robert A. Monat made libcurl build fine with VC2005 - it doesn't have
3161   gmtime_r() like the older VC versions. He also made use of some machine-
3162   specific defines to differentiate the "OS" define.
3163
3164 Daniel (12 February 2007)
3165 - Rob Crittenden added support for NSS (Network Security Service) for the
3166   SSL/TLS layer. http://www.mozilla.org/projects/security/pki/nss/
3167
3168   This is the fourth supported library for TLS/SSL that libcurl supports!
3169
3170 - Shmulik Regev fixed so that the final CRLF of HTTP response headers are sent
3171   to the debug callback.
3172
3173 - Shmulik Regev added CURLOPT_HTTP_CONTENT_DECODING and
3174   CURLOPT_HTTP_TRANSFER_DECODING that if set to zero will disable libcurl's
3175   internal decoding of content or transfer encoded content. This may be
3176   preferable in cases where you use libcurl for proxy purposes or similar. The
3177   command line tool got a --raw option to disable both at once.
3178
3179 - release tarballs made with maketgz will from now on have a LIBCURL_TIMESTAMP
3180   define set to hold the exact date and time of when the tarball was built, as
3181   a human readable string using the UTC time zone.
3182   
3183 - Jeff Pohlmeyer fixed a flaw in curl_multi_add_handle() when adding a handle
3184   that has an easy handle present in the "closure" list pending closure.
3185
3186 Daniel (6 February 2007)
3187 - Regular file downloads wiht SFTP and SCP are now done using the non-blocking
3188   API of libssh2, if the libssh2 headers seem to support them. This will make
3189   SCP and SFTP much more responsive and better libcurl citizens when used with
3190   the multi interface etc.
3191
3192 Daniel (5 February 2007)
3193 - Michael Wallner added support for CURLOPT_TIMEOUT_MS and
3194   CURLOPT_CONNECTTIMEOUT_MS that, as their names suggest, do the timeouts with
3195   millisecond resolution. The only restriction to that is the alarm()
3196   (sometimes) used to abort name resolves as that uses full seconds. I fixed
3197   the FTP response timeout part of the patch.
3198
3199   Internally we now count and keep the timeouts in milliseconds but it also
3200   means we multiply set timeouts with 1000. The effect of this is that no
3201   timeout can be set to more than 2^31 milliseconds (on 32 bit systems), which
3202   equals 24.86 days.  We probably couldn't before either since the code did
3203   *1000 on the timeout values on several places already.
3204
3205 Daniel (3 February 2007)
3206 - Yang Tse fixed the cookie expiry date in several test cases that started to
3207   fail since they used "1 feb 2007"...
3208
3209 - Manfred Schwarb reported that socks5 support was broken and help us pinpoint
3210   the problem. The code now tries harder to use httproxy and proxy where
3211   apppropriate, as not all proxies are HTTP...
3212
3213 Version 7.16.1 (29 January 2007)
3214
3215 Daniel (29 January 2007)
3216 - Michael Wallner reported that when doing a CONNECT with a custom User-Agent
3217   header, you got _two_ User-Agent headers in the CONNECT request...! Added
3218   test case 287 to verify the fix.
3219
3220 Daniel (28 January 2007)
3221 - curl_easy_reset() now resets the CA bundle path correctly.
3222
3223 - David McCreedy fixed the Curl command line tool for HTTP on non-ASCII
3224   platforms.
3225
3226 Daniel (25 January 2007)
3227 - Added the --libcurl [file] option to curl. Append this option to any
3228   ordinary curl command line, and you will get a libcurl-using source code
3229   written to the file that does the equivalent operation of what your command
3230   line operation does!
3231
3232 Dan F (24 January 2007)
3233 - Fixed a dangling pointer problem that prevented the http_proxy environment
3234   variable from being properly used in many cases (and caused test case 63
3235   to fail).
3236
3237 Daniel (23 January 2007)
3238 - David McCreedy did NTLM changes mainly for non-ASCII platforms:
3239
3240   #1
3241   There's a compilation error in http_ntlm.c if USE_NTLM2SESSION is NOT
3242   defined.  I noticed this while testing various configurations.  Line 867 of
3243   the current http_ntlm.c is a closing bracket for an if/else pair that only
3244   gets compiled in if USE_NTLM2SESSION is defined.  But this closing bracket
3245   wasn't in an #ifdef so the code fails to compile unless USE_NTLM2SESSION was
3246   defined.  Lines 198 and 140 of my patch wraps that closing bracket in an
3247   #ifdef USE_NTLM2SESSION.
3248
3249   #2
3250   I noticed several picky compiler warnings when DEBUG_ME is defined.  I've
3251   fixed them with casting.  By the way, DEBUG_ME was a huge help in
3252   understanding this code.
3253
3254   #3
3255   Hopefully the last non-ASCII conversion patch for libcurl in a while.  I
3256   changed the "NTLMSSP" literal to hex since this signature must always be in
3257   ASCII.
3258
3259   Conversion code was strategically added where necessary.  And the
3260   Curl_base64_encode calls were changed so the binary "blobs" http_ntlm.c
3261   creates are NOT translated on non-ASCII platforms.
3262
3263 Dan F (22 January 2007)
3264 - Converted (most of) the test data files into genuine XML.  A handful still
3265   are not, due mainly to the lack of support for XML character entities
3266   (e.g. & => &amp; ).  This will make it easier to validate test files using
3267   tools like xmllint, as well as to edit and view them using XML tools.
3268
3269 Daniel (16 January 2007)
3270 - Armel Asselin improved libcurl to behave a lot better when an easy handle
3271   doing an FTP transfer is removed from a multi handle before completion. The
3272   fix also fixed the "alive counter" to be correct on "premature removal" for
3273   all protocols.
3274
3275 Dan F (16 January 2007)
3276 - Fixed a small memory leak in tftp uploads discovered by curl's memory leak
3277   detector.  Also changed tftp downloads to URL-unescape the downloaded
3278   file name.
3279
3280 Daniel (14 January 2007)
3281 - David McCreedy provided libcurl changes for doing HTTP communication on
3282   non-ASCII platforms. It does add some complexity, most notably with more
3283   #ifdefs, but I want to see this supported added and I can't see how we can
3284   add it without the extra stuff added.
3285
3286 - Setting CURLOPT_COOKIELIST to "ALL" when no cookies at all was present,
3287   libcurl would crash when trying to read a NULL pointer.
3288
3289 Daniel (12 January 2007)
3290 - Toby Peterson found a nasty bug that prevented (lib)curl from properly
3291   downloading (most) things that were larger than 4GB on 32 bit systems.  Matt
3292   Witherspoon helped as narrow down the problem.
3293
3294 Daniel (5 January 2007)
3295 - Linus Nielsen Feltzing introduced the --ftp-ssl-ccc command line option to
3296   curl that uses the new CURLOPT_FTP_SSL_CCC option in libcurl. If enabled, it
3297   will make libcurl shutdown SSL/TLS after the authentication is done on a
3298   FTP-SSL operation.
3299
3300 Daniel (4 January 2007)
3301 - David McCreedy made changes to allow base64 encoding/decoding to work on
3302   non-ASCII platforms.
3303
3304 Daniel (3 January 2007)
3305 - Matt Witherspoon fixed the flaw which made libcurl 7.16.0 always store
3306   downloaded data in two buffers, just to be able to deal with a special HTTP
3307   pipelining case. That is now only activated for pipelined transfers. In
3308   Matt's case, it showed as a considerable performance difference,
3309
3310 Daniel (2 January 2007)
3311 - Victor Snezhko helped us fix bug report #1603712
3312   (http://curl.haxx.se/bug/view.cgi?id=1603712) (known bug #36) --limit-rate
3313   (CURLOPT_MAX_SEND_SPEED_LARGE and CURLOPT_MAX_RECV_SPEED_LARGE) are broken
3314   on Windows (since 7.16.0, but that's when they were introduced as previous
3315   to that the limiting logic was made in the application only and not in the
3316   library). It was actually also broken on select()-based systems (as apposed
3317   to poll()) but we haven't had any such reports. We now use select(), Sleep()
3318   or delay() properly to sleep a while without waiting for anything input or
3319   output when the rate limiting is activated with the easy interface.
3320
3321 - Modified libcurl.pc.in to use Libs.private for the libs libcurl itself needs
3322   to get built static. It has been mentioned before and was again brought to
3323   our attention by Nathanael Nerode who filed debian bug report #405226
3324   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=405226).
3325
3326 Daniel (29 December 2006)
3327 - Make curl_easy_duphandle() set the magic number in the new handle.
3328
3329 Daniel (22 December 2006)
3330 - Robert Foreman provided a prime example snippet showing how libcurl would
3331   get confused and not acknowledge the 'no_proxy' variable properly once it
3332   had used the proxy and you re-used the same easy handle. I made sure the
3333   proxy name is properly stored in the connect struct rather than the
3334   sessionhandle/easy struct.
3335
3336 - David McCreedy fixed a bad call to getsockname() that wrongly used a size_t
3337   variable to point to when it should be a socklen_t.
3338
3339 - When setting a proxy with environment variables and (for example) running
3340   'curl [URL]' with a URL without a protocol prefix, curl would not send a
3341   correct request as it failed to add the protocol prefix.
3342
3343 Daniel (21 December 2006)
3344 - Robson Braga Araujo reported bug #1618359
3345   (http://curl.haxx.se/bug/view.cgi?id=1618359) and subsequently provided a
3346   patch for it: when downloading 2 zero byte files in a row, curl 7.16.0
3347   enters an infinite loop, while curl 7.16.1-20061218 does one additional
3348   unnecessary request.
3349
3350   Fix: During the "Major overhaul introducing http pipelining support and
3351   shared connection cache within the multi handle." change, headerbytecount
3352   was moved to live in the Curl_transfer_keeper structure. But that structure
3353   is reset in the Transfer method, losing the information that we had about
3354   the header size. This patch moves it back to the connectdata struct.
3355
3356 Daniel (16 December 2006)
3357 - Brendan Jurd provided a fix that now prevents libcurl from getting a SIGPIPE
3358   during certain conditions when GnuTLS is used.
3359
3360 Daniel (11 December 2006)
3361 - Alexey Simak found out that when doing FTP with the multi interface and
3362   something went wrong like it got a bad response code back from the server,
3363   libcurl would leak memory. Added test case 538 to verify the fix.
3364
3365   I also noted that the connection would get cached in that case, which
3366   doesn't make sense since it cannot be re-use when the authentication has
3367   failed. I fixed that issue too at the same time, and also that the path
3368   would be "remembered" in vain for cases where the connection was about to
3369   get closed.
3370
3371 Daniel (6 December 2006)
3372 - Sebastien Willemijns reported bug #1603712
3373   (http://curl.haxx.se/bug/view.cgi?id=1603712) which is about connections
3374   getting cut off prematurely when --limit-rate is used. While I found no such
3375   problems in my tests nor in my reading of the code, I found that the
3376   --limit-rate code was severly flawed (since it was moved into the lib, since
3377   7.15.5) when used with the easy interface and it didn't work as documented
3378   so I reworked it somewhat and now it works for my tests.
3379
3380 Daniel (5 December 2006)
3381 - Stefan Krause pointed out a compiler warning with a picky MSCV compiler when
3382   passing a curl_off_t argument to the Curl_read_rewind() function which takes
3383   an size_t argument. Curl_read_rewind() also had debug code left in it and it
3384   was put in a different source file with no good reason when only used from
3385   one single spot.
3386
3387 - Sh Diao reported that CURLOPT_CLOSEPOLICY doesn't work, and indeed, there is
3388   no code present in the library that receives the option. Since it was not
3389   possible to use, we know that no current users exist and thus we simply
3390   removed it from the docs and made the code always use the default path of
3391   the code.
3392
3393 - Jared Lundell filed bug report #1604956
3394   (http://curl.haxx.se/bug/view.cgi?id=1604956) which identified setting
3395   CURLOPT_MAXCONNECTS to zero caused libcurl to SIGSEGV. Starting now, libcurl
3396   will always internally use no less than 1 entry in the connection cache.
3397
3398 - Sh Diao reported that CURLOPT_FORBID_REUSE no works, and indeed it broke in
3399   the 7.16.0 release.
3400
3401 - Martin Skinner brought back bug report #1230118 to haunt us once again.
3402   (http://curl.haxx.se/bug/view.cgi?id=1230118) curl_getdate() did not work
3403   properly for all input dates on Windows. It was mostly seen on some TZ time
3404   zones using DST. Luckily, Martin also provided a fix.
3405
3406 - Alexey Simak filed bug report #1600447
3407   (http://curl.haxx.se/bug/view.cgi?id=1600447) in which he noted that active
3408   FTP connections don't work with the multi interface. The problem is here
3409   that the multi interface state machine has a state during which it can wait
3410   for the data connection to connect, but the active connection is not done in
3411   the same step in the sequence as the passive one is so it doesn't quite work
3412   for active. The active FTP code still use a blocking function to allow the
3413   remote server to connect.
3414
3415   The fix (work-around is a better word) for this problem is to set the
3416   boolean prematurely that the data connection is completed, so that the "wait
3417   for connect" phase ends at once.
3418
3419   The proper fix, left for the future, is of course to make the active FTP
3420   case to act in a non-blocking way too.
3421
3422 - Matt Witherspoon fixed a problem case when the CPU load went to 100% when a
3423   HTTP upload was disconnected:
3424
3425   "What appears to be happening is that my system (Linux 2.6.17 and 2.6.13) is
3426   setting *only* POLLHUP on poll() when the conditions in my previous mail
3427   occur. As you can see, select.c:Curl_select() does not check for POLLHUP. So
3428   basically what was happening, is poll() was returning immediately (with
3429   POLLHUP set), but when Curl_select() looked at the bits, neither POLLERR or
3430   POLLOUT was set. This still caused Curl_readwrite() to be called, which
3431   quickly returned. Then the transfer() loop kept continuing at full speed
3432   forever."
3433
3434 Daniel (1 December 2006)
3435 - Toon Verwaest reported that there are servers that send the Content-Range:
3436   header in a third, not suppported by libcurl, format and we agreed that we
3437   could make the parser more forgiving to accept all the three found
3438   variations.
3439
3440 Daniel (25 November 2006)
3441 - Venkat Akella found out that libcurl did not like HTTP responses that simply
3442   responded with a single status line and no headers nor body. Starting now, a
3443   HTTP response on a persistent connection (i.e not set to be closed after the
3444   response has been taken care of) must have Content-Length or chunked
3445   encoding set, or libcurl will simply assume that there is no body.
3446
3447   To my horror I learned that we had no less than 57(!) test cases that did bad
3448   HTTP responses like this, and even the test http server (sws) responded badly
3449   when queried by the test system if it is the test system. So although the
3450   actual fix for the problem was tiny, going through all the newly failing test
3451   cases got really painful and boring.
3452
3453 Daniel (24 November 2006)
3454 - James Housley did lots of work and introduced SFTP downloads.
3455
3456 Daniel (13 November 2006)
3457 - Ron in bug #1595348 (http://curl.haxx.se/bug/view.cgi?id=1595348) pointed
3458   out a stack overwrite (and the corresponding fix) on 64bit Windows when
3459   dealing with HTTP chunked encoding.
3460
3461 Daniel (9 November 2006)
3462 - Nir Soffer updated libcurl.framework.make:
3463   o fix symlinks, should link to Versions, not to ./Versions
3464   o indentation improvments
3465
3466 - Dmitriy Sergeyev found a SIGSEGV with his test04.c example posted on 7 Nov
3467   2006. It turned out we wrongly assumed that the connection cache was present
3468   when tearing down a connection.
3469
3470 - Ciprian Badescu found a SIGSEGV when doing multiple TFTP transfers using the
3471   multi interface, but I could also repeat it doing multiple sequential ones
3472   with the easy interface. Using Ciprian's test case, I could fix it.
3473
3474 Daniel (8 November 2006)
3475 - Bradford Bruce reported that when setting CURLOPT_DEBUGFUNCTION without
3476   CURLOPT_VERBOSE set to non-zero, you still got a few debug messages from the
3477   SSL handshake. This is now stopped.
3478
3479 Daniel (7 November 2006)
3480 - Olaf fixed a leftover problem with the CONNECT fix of his that would leave a
3481   wrong error message in the error message buffer.
3482
3483 Daniel (3 November 2006)
3484 - Olaf Stueben provided a patch that I edited slightly. It fixes the notorious
3485   KNOWN_BUGS #25, which happens when a proxy closes the connection when
3486   libcurl has sent CONNECT, as part of an authentication negotiation. Starting
3487   now, libcurl will re-connect accordingly and continue the authentication as
3488   it should.
3489
3490 Daniel (2 November 2006)
3491 - James Housley brought support for SCP transfers, based on the libssh2 library
3492   for the actual network protocol stuff.
3493
3494   Added these new curl_easy_setopt() options:
3495
3496     CURLOPT_SSH_AUTH_TYPES
3497     CURLOPT_SSH_PUBLIC_KEYFILE
3498     CURLOPT_SSH_PRIVATE_KEYFILE
3499
3500 Version 7.16.0 (30 October 2006)
3501
3502 Daniel (25 October 2006)
3503 - Fixed CURLOPT_FAILONERROR to return CURLE_HTTP_RETURNED_ERROR even for the
3504   case when 401 or 407 are returned, *IF* no auth credentials have been given.
3505   The CURLOPT_FAILONERROR option is not possible to make fool-proof for 401
3506   and 407 cases when auth credentials is given, but we've now covered this
3507   somewhat more.
3508
3509   You might get some amounts of headers transferred before this situation is
3510   detected, like for when a "100-continue" is received as a response to a
3511   POST/PUT and a 401 or 407 is received immediately afterwards.
3512
3513   Added test 281 to verify this change.
3514
3515 Daniel (23 October 2006)
3516 - Ravi Pratap provided a major update with pipelining fixes. We also no longer
3517   re-use connections (for pipelining) before the name resolving is done.
3518
3519 Daniel (21 October 2006)
3520 - Nir Soffer made the tests/libtest/Makefile.am use a proper variable for all
3521   the single test applications' link and dependences, so that you easier can
3522   override those from the command line when using make.
3523
3524 - Armel Asselin separated CA cert verification problems from problems with
3525   reading the (local) CA cert file to let users easier pinpoint the actual
3526   problem. CURLE_SSL_CACERT_BADFILE (77) is the new libcurl error code.
3527
3528 Daniel (18 October 2006)
3529 - Removed the "protocol-guessing" for URLs with host names starting with FTPS
3530   or TELNET since they are practically non-existant. This leaves us with only
3531   three different prefixes that would assume the protocol is anything but
3532   HTTP, and they are host names starting with "ftp.", "dict." or "ldap.".
3533
3534 Daniel (17 October 2006)
3535 - Bug report #1579171 pointed out code flaws detected with "prefast", and they
3536   were 1 - a too small memory clear with memset() in the threaded resolver and
3537   2 - a range of potentially bad uses of the ctype family of is*() functions
3538   such as isdigit(), isalnum(), isprint() and more. The latter made me switch
3539   to using our own set of these functions/macros using uppercase letters, and
3540   with some extra set of crazy typecasts to avoid mistakingly passing in
3541   negative numbers to the underlying is*() functions.
3542
3543 - With Jeff Pohlmeyer's help, I fixed the expire timer when using
3544   curl_multi_socket() during name resolves with c-ares and the LOW_SPEED
3545   options now work fine with curl_multi_socket() as well.
3546
3547 Daniel (16 October 2006)
3548 - Added a check in configure that simply tries to run a program (not when
3549   cross-compiling) in order to detect problems with run-time libraries that
3550   otherwise would occur when the sizeof tests for curl_off_t would run and
3551   thus be much more confusing to users. The check of course should run after
3552   all lib-checks are done and before any other test is used that would run an
3553   executable built for testing-purposes.
3554
3555 Dan F (13 October 2006)
3556 - The tagging of application/x-www-form-urlencoded POST body data sent
3557   to the CURLOPT_DEBUGFUNCTION callback has been fixed (it was erroneously
3558   included as part of the header).  A message was also added to the
3559   command line tool to show when data is being sent, enabled when
3560   --verbose is used.
3561
3562 Daniel (12 October 2006)
3563 - Starting now, adding an easy handle to a multi stack that was already added
3564   to a multi stack will cause CURLM_BAD_EASY_HANDLE to get returned.
3565
3566 - Jeff Pohlmeyer has been working with the hiperfifo.c example source code,
3567   and while doing so it became apparent that the current timeout system for
3568   the socket API really was a bit awkward since it become quite some work to
3569   be sure we have the correct timeout set.
3570
3571   Jeff then provided the new CURLMOPT_TIMERFUNCTION that is yet another
3572   callback the app can set to get to know when the general timeout time
3573   changes and thus for an application like hiperfifo.c it makes everything a
3574   lot easier and nicer. There's a CURLMOPT_TIMERDATA option too of course in
3575   good old libcurl tradition.
3576
3577   Jeff has also updated the hiperfifo.c example code to use this news.
3578
3579 Daniel (9 October 2006)
3580 - Bogdan Nicula's second test case (posted Sun, 08 Oct 2006) converted to test
3581   case 535 and it now runs fine. Again a problem with the pipelining code not
3582   taking all possible (error) conditions into account.
3583
3584 Daniel (6 October 2006)
3585 - Bogdan Nicula's hanging test case (posted Wed, 04 Oct 2006) was converted to
3586   test case 533 and the test now runs fine.
3587
3588 Daniel (4 October 2006)
3589 - Dmitriy Sergeyev provided an example source code that crashed CVS libcurl
3590   but that worked nicely in 7.15.5. I converted it into test case 532 and
3591   fixed the problem.
3592
3593 Daniel (29 September 2006)
3594 - Removed a few other no-longer present options from the header file.
3595
3596 - Support for FTP third party transfers was removed. Here's why:
3597
3598   o The recent multi interface changes broke it and the design of the 3rd party
3599     transfers made it very hard to fix the problems
3600   o It was still blocking and thus nasty for the multi interface
3601   o It was a lot of extra code for a very rarely used feature
3602   o It didn't use the same code as for "plain" FTP transfers, so it didn't work
3603     fine for IPv6 and it didn't properly re-use connections and more
3604   o There's nobody around who's willing to work on and improve the existing
3605     code
3606
3607   This does not mean that third party transfers are banned forever, only that
3608   they need to be done better if they are to be re-added in the future.
3609
3610   The CURLOPT_SOURCE_* options are removed from the lib and so are the --3p*
3611   options from the command line tool. For this reason, I also bumped the
3612   version info for the lib.
3613
3614 Daniel (28 September 2006)
3615 - Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl
3616   would crash if a bad function sequence was used when shutting down after
3617   using the multi interface (i.e using easy_cleanup after multi_cleanup) so
3618   precautions have been added to make sure it doesn't any more - test case 529
3619   was added to verify.
3620
3621 Daniel (27 September 2006)
3622 - The URL in the cookie jar file is now changed since it was giving a 404.
3623   Reported by Timothy Stone. The new URL will take the visitor to a curl web
3624   site mirror with the document.
3625
3626 Daniel (24 September 2006)
3627 - Bernard Leak fixed configure --with-gssapi-libs.
3628
3629 - Cory Nelson made libcurl use the WSAPoll() function if built for Windows
3630   Vista (_WIN32_WINNT >= 0x0600)
3631
3632 Daniel (23 September 2006)
3633 - Mike Protts added --ftp-ssl-control to make curl use FTP-SSL, but only
3634   encrypt the control connection and use the data connection "plain".
3635
3636 - Dmitriy Sergeyev provided a patch that made the SOCKS[45] code work better
3637   as it now will read the full data sent from servers. The SOCKS-related code
3638   was also moved to the new lib/socks.c source file.
3639
3640 Daniel (21 September 2006)
3641 - Added test case 531 in an attempt to repeat bug report #1561470
3642   (http://curl.haxx.se/bug/view.cgi?id=1561470) that is said to crash when an
3643   FTP upload fails with the multi interface. It did not, but I made a failed
3644   upload still assume the control connection to be fine.
3645
3646 Daniel (20 September 2006)
3647 - Armel Asselin fixed problems when you gave a proxy URL with user name and
3648   empty password or no password at all. Test case 278 and 279 were added to
3649   verify.
3650
3651 Daniel (12 September 2006)
3652 - Added docs/examples/10-at-a-time.c by Michael Wallner
3653
3654 - Added docs/examples/hiperfifo.c by Jeff Pohlmeyer
3655
3656 Daniel (11 September 2006)
3657 - Fixed my breakage from earlier today so that doing curl_easy_cleanup() on a
3658   handle that is part of a multi handle first removes the handle from the
3659   stack.
3660
3661 - Added CURLOPT_SSL_SESSIONID_CACHE and --no-sessionid to disable SSL
3662   session-ID re-use on demand since there obviously are broken servers out
3663   there that misbehave with session-IDs used.
3664
3665 - Jeff Pohlmeyer presented a *multi_socket()-using program that exposed a
3666   problem with it (SIGSEGV-style). It clearly showed that the existing
3667   socket-state and state-difference function wasn't good enough so I rewrote
3668   it and could then re-run Jeff's program without any crash. The previous
3669   version clearly could miss to tell the application when a handle changed
3670   from using one socket to using another.
3671
3672   While I was at it (as I could use this as a means to track this problem
3673   down), I've now added a 'magic' number to the easy handle struct that is
3674   inited at curl_easy_init() time and cleared at curl_easy_cleanup() time that
3675   we can use internally to detect that an easy handle seems to be fine, or at
3676   least not closed or freed (freeing in debug builds fill the area with 0x13
3677   bytes but in normal builds we can of course not assume any particular data
3678   in the freed areas).
3679
3680 Daniel (9 September 2006)
3681 - Michele Bini fixed how the hostname is put in NTLM packages. As servers
3682   don't expect fully qualified names we need to cut them off at the first dot.
3683
3684 - Peter Sylvester cleaned up and fixed the getsockname() uses in ftp.c. Some
3685   of them can be completetly removed though...
3686
3687 Daniel (6 September 2006)
3688 - Ravi Pratap and I have implemented HTTP Pipelining support. Enable it for a
3689   multi handle using CURLMOPT_PIPELINING and all HTTP connections done on that
3690   handle will be attempted to get pipelined instead of done in parallell as
3691   they are performed otherwise.
3692
3693   As a side-effect from this work, connections are now shared between all easy
3694   handles within a multi handle, so if you use N easy handles for transfers,
3695   each of them can pick up and re-use a connection that was previously used by
3696   any of the handles, be it the same or one of the others.
3697
3698   This separation of the tight relationship between connections and easy
3699   handles is most noticable when you close easy handles that have been used in
3700   a multi handle and check amount of used memory or watch the debug output, as
3701   there are times when libcurl will keep the easy handle around for a while
3702   longer to be able to close it properly. Like for sending QUIT to close down
3703   an FTP connection.
3704
3705   This is a major change.
3706   
3707 Daniel (4 September 2006)
3708 - Dmitry Rechkin (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a
3709   patch that while not fixing things very nicely, it does make the SOCKS5
3710   proxy connection slightly better as it now acknowledges the timeout for
3711   connection and it no longer segfaults in the case when SOCKS requires
3712   authentication and you did not specify username:password.
3713
3714 Daniel (31 August 2006)
3715 - Dmitriy Sergeyev found and fixed a multi interface flaw when using asynch
3716   name resolves. It could get stuck in the wrong state.
3717
3718 Gisle (29 August 2006)
3719 - Added support for other MS-DOS compilers (desides djgpp). All MS-DOS
3720   compiler now uses the same config.dos file (renamed to config.h by
3721   make). libcurl now builds fine using Watcom and Metaware's High-C
3722   using the Watt-32 tcp/ip-stack.
3723
3724 Daniel (29 August 2006)
3725 - David McCreedy added CURLOPT_SOCKOPTFUNCTION and CURLOPT_SOCKOPTDATA to
3726   allow applications to set their own socket options.
3727
3728 Daniel (25 August 2006)
3729 - Armel Asselin reported that the 'running_handles' counter wasn't updated
3730   properly if you removed a "live" handle from a multi handle with
3731   curl_multi_remove_handle().
3732
3733 Daniel (22 August 2006)
3734 - David McCreedy fixed a remaining mistake from the August 19 TYPE change.
3735
3736 - Peter Sylvester pointed out a flaw in the AllowServerConnect() in the FTP
3737   code when doing pure ipv6 EPRT connections.
3738
3739 Daniel (19 August 2006)
3740 - Based on a patch by Armel Asselin, the FTP code no longer re-issues the TYPE
3741   command on subsequent requests on a re-used connection unless it has to.
3742
3743 - Armel Asselin fixed a crash in the FTP code when using SINGLECWD mode and
3744   files in the root directory.
3745
3746 - Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't
3747   send the whole request at once, even though the Expect: header was disabled
3748   by the application. An effect of this change is also that small (< 1024
3749   bytes) POSTs are now always sent without Expect: header since we deem it
3750   more costly to bother about that than the risk that we send the data in
3751   vain.
3752
3753 Daniel (9 August 2006)
3754 - Armel Asselin made the CURLOPT_PREQUOTE option work fine even when
3755   CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place
3756   in the command sequence as it would have run if there would've been a
3757   transfer.
3758
3759 Daniel (8 August 2006)
3760 - Fixed a flaw in the "Expect: 100-continue" treatment. If you did two POSTs
3761   on a persistent connection and allowed the first to use that header, you
3762   could not disable it for the second request.
3763
3764 Daniel (7 August 2006)
3765 - Domenico Andreolfound a quick build error which happened because
3766   src/config.h.in was not a proper duplcate of lib/config.h.in which it
3767   should've been and this was due to the maketgz script not doing the cp
3768   properly.
3769
3770 Version 7.15.5 (7 August 2006)
3771
3772 Daniel (2 August 2006)
3773 - Mark Lentczner fixed how libcurl was not properly doing chunked encoding
3774   if the header "Transfer-Encoding: chunked" was set by the application.
3775   http://curl.haxx.se/bug/view.cgi?id=1531838
3776
3777 Daniel (1 August 2006)
3778 - Maciej Karpiuk fixed a crash that would occur if we passed Curl_strerror()
3779   an unknown error number on glibc systems.
3780   http://curl.haxx.se/bug/view.cgi?id=1532289
3781
3782 Daniel (31 July 2006)
3783 - *ALERT* curl_multi_socket() and curl_multi_socket_all() got modified
3784   prototypes: they both now provide the number of running handles back to the
3785   calling function. It makes the functions resemble the good old
3786   curl_multi_perform() more and provides a nice way to know when the multi
3787   handle goes empty.
3788
3789   ALERT2: don't use the curl_multi_socket*() functionality in anything
3790   production-like until I say it's somewhat settled, as I suspect there might
3791   be some further API changes before I'm done...
3792
3793 Daniel (28 July 2006)
3794 - Yves Lejeune fixed so that replacing Content-Type: when doing multipart
3795   formposts work exactly the way you want it (and the way you'd assume it
3796   works).
3797
3798 Daniel (27 July 2006)
3799 - David McCreedy added --ftp-ssl-reqd which makes curl *require* SSL for both
3800   control and data connection, as the existing --ftp-ssl option only requests
3801   it.
3802
3803 - [Hiper-related work] Added a function called curl_multi_assign() that will
3804   set a private pointer added to the internal libcurl hash table for the
3805   particular socket passed in to this function:
3806
3807   CURLMcode curl_multi_assign(CURLM *multi_handle,
3808                               curl_socket_t sockfd,
3809                               void *sockp);
3810
3811   'sockp' being a custom pointer set by the application to be associated with
3812   this socket. The socket has to be already existing and in-use by libcurl,
3813   like having already called the callback telling about its existance.
3814
3815   The set hashp pointer will then be passed on to the callback in upcoming
3816   calls when this same socket is used (in the brand new 'socketp' argument).
3817
3818 Daniel (26 July 2006)
3819 - Dan Nelson added the CURLOPT_FTP_ALTERNATIVE_TO_USER libcurl option and curl
3820   tool option named --ftp-alternative-to-user. It provides a mean to send a
3821   particular command if the normal USER/PASS approach fails.
3822
3823 - Michael Jerris added magic that builds lib/curllib.vcproj automatically for
3824   newer MSVC.
3825
3826 Daniel (25 July 2006)
3827 - Georg Horn made the transfer timeout error message include more details.
3828
3829 Daniel (20 July 2006)
3830 - David McCreedy fixed a build error when building libcurl with HTTP disabled,
3831   problem added with the curl_formget() patch.
3832
3833 Daniel (17 July 2006)
3834 - Jari Sundell did some excellent research and bug tracking, figured out that
3835   we did wrong and patched it: When nodes were removed from the splay tree,
3836   and we didn't properly remove it from the splay tree when an easy handle was
3837   removed from a multi stack and thus we could wrongly leave a node in the
3838   splay tree pointing to (bad) memory.
3839
3840 Daniel (14 July 2006)
3841 - David McCreedy fixed a flaw where the CRLF counter wasn't properly cleared
3842   for FTP ASCII transfers.
3843
3844 Daniel (8 July 2006)
3845 - Ates Goral pointed out that libcurl's cookie parser did case insensitive
3846   string comparisons on the path which is incorrect and provided a patch that
3847   fixes this. I edited test case 8 to include details that test for this.
3848
3849 - Ingmar Runge provided a source snippet that caused a crash. The reason for
3850   the crash was that libcurl internally was a bit confused about who owned the
3851   DNS cache at all times so if you created an easy handle that uses a shared
3852   DNS cache and added that to a multi handle it would crash. Now we keep more
3853   careful internal track of exactly what kind of DNS cache each easy handle
3854   uses: None, Private (allocated for and used only by this single handle),
3855   Shared (points to a cache held by a shared object), Global (points to the
3856   global cache) or Multi (points to the cache within the multi handle that is
3857   automatically shared between all easy handles that are added with private
3858   caches).
3859
3860 Daniel (4 July 2006)
3861 - Toshiyuki Maezawa fixed a problem where you couldn't override the
3862   Proxy-Connection: header when using a proxy and not doing CONNECT.
3863
3864 Daniel (24 June 2006)
3865 - Michael Wallner added curl_formget(), which allows an application to extract
3866   (serialise) a previously built formpost (as with curl_formadd()).
3867
3868 Daniel (23 June 2006)
3869 - Arve Knudsen found a flaw in curl_multi_fdset() for systems where
3870   curl_socket_t is unsigned (like Windows) that could cause it to wrongly
3871   return a max fd of -1.
3872
3873 Daniel (20 June 2006)
3874 - Peter Silva introduced CURLOPT_MAX_SEND_SPEED_LARGE and
3875   CURLOPT_MAX_RECV_SPEED_LARGE that limit tha maximum rate libcurl is allowed
3876   to send or receive data. This kind of adds the the command line tool's
3877   option --limit-rate to the library.
3878
3879   The rate limiting logic in the curl app is now removed and is instead
3880   provided by libcurl itself. Transfer rate limiting will now also work for -d
3881   and -F, which it didn't before.
3882
3883 Daniel (19 June 2006)
3884 - Made -K on a file that couldn't be read cause a warning to be displayed.
3885
3886 Daniel (13 June 2006)
3887 - Dan Fandrich implemented --enable-hidden-symbols configure option to enable
3888   -fvisibility=hidden on gcc >= 4.0.  This reduces the size of the libcurl
3889   binary and speeds up dynamic linking by hiding all the internal symbols from
3890   the symbol table.
3891
3892 Version 7.15.4 (12 June 2006)
3893
3894 Daniel (8 June 2006)
3895 - Brian Dessent fixed the code for cygwin in three distinct ways:
3896
3897   The first modifies {lib,src}/setup.h to not include the winsock headers
3898   under Cygwin.  This fixes the reported build problem.  Cygwin attempts as
3899   much as possible to emulate a posix environment under Windows.  This means
3900   that WIN32 is *not* #defined and (to the extent possible) everything is done
3901   as it would be on a *ix type system.  Thus <sys/socket.h> is the proper
3902   include, and even though winsock2.h is present, including it just introduces
3903   a whole bunch of incompatible socket API stuff.
3904
3905   The second is a patch I've included in the Cygwin binary packages for a
3906   while.  It skips two unnecessary library checks (-lwinmm and -lgdi32).  The
3907   checks are innocuous and they do succeed, but they pollute LIBS with
3908   unnecessary stuff which gets recorded as such in the libcurl.la file, which
3909   brings them into the build of any libcurl-downstream.  As far as I know
3910   these libs are really only necessary for mingw, so alternatively they could
3911   be designed to only run if $host matches *-*-mingw* but I took the safer
3912   route of skipping them for *-*-cygwin*.
3913
3914   The third patch replaces all uses of the ancient and obsolete __CYGWIN32__
3915   with __CYGWIN__. Ref: <http://cygwin.com/ml/cygwin/2003-09/msg01520.html>.
3916
3917 Daniel (7 June 2006)
3918 - Mikael Sennerholm provided a patch that added NTLM2 session response support
3919   to libcurl. The 21 NTLM test cases were again modified to comply...
3920
3921 Daniel (27 May 2006)
3922 - Ã“scar Morales Vivó updated the libcurl.framework.make file.
3923
3924 Daniel (26 May 2006)
3925 - Olaf Stüben fixed a bug that caused Digest authentication with md5-sess to
3926   fail. When using the md5-sess, the result was not Md5 encoded and Base64
3927   transformed.
3928
3929 Daniel (25 May 2006)
3930 - Michael Wallner provided a patch that allows "SESS" to be set with
3931   CURLOPT_COOKIELIST, which then makes all session cookies get cleared.
3932
3933 Daniel (24 May 2006)
3934 - Tor Arntsen made test 271 run fine again since the TFTP path fix.
3935
3936 Daniel (23 May 2006)
3937 - Martin Michlmayr filed debian bug report #367954, but the same error also
3938   showed up in the autobuilds. It seems a rather long-since introduced shell
3939   script flaw in the configure script suddenly was detected by the bash
3940   version in Debian Unstable. It had previously passed undetected by all
3941   shells used so far...
3942
3943 - David McCreedy updated lib/config-tpf.h
3944
3945 Daniel (11 May 2006)
3946 - Fixed the configure's check for old-style SSLeay headers since I fell over a
3947   case with a duplicate file name (a krb4 implementation with an err.h
3948   file). I converted the check to manually make sure three of the headers are
3949   present before considering them fine.
3950
3951 - David McCreedy provided a fix for CURLINFO_LASTSOCKET that does extended
3952   checks on the to-be-returned socket to make sure it truly seems to be alive
3953   and well. For SSL connection it (only) uses OpenSSL functions.
3954
3955 Daniel (10 May 2006)
3956 - Fixed DICT in two aspects:
3957
3958   1 - allow properly URL-escaped words, like using %20 for spaces
3959
3960   2 - properly escape certain letters within a word to comply to the RFC2229
3961
3962 Daniel (9 May 2006)
3963 - Andreas Ntaflos reported a bug in libcurl.m4: When configuring my GNU
3964   autotools project, which optionally (default=yes) uses libcurl on a system
3965   without a (usable) libcurl installation, but not specifying
3966   `--without-libcurl', configure determines correctly that no libcurl is
3967   available, however, the LIBCURL variable gets expanded to `LIBCURL = -lcurl'
3968   in the resulting Makefiles.
3969
3970   David Shaw fixed the flaw.
3971
3972 - Robson Braga Araujo fixed two problems in the recently added non-blocking SSL
3973   connects. The state machine was not reset properly so that subsequent
3974   connects using the same handle would fail, and there were two memory leaks.
3975
3976 - Robson Braga Araujo fixed a memory leak when you added an easy handle to a
3977   multi stack and that easy handle had already been used to do one or more
3978   easy interface transfers, as then the code threw away the previously used
3979   DNS cache without properly freeing it.
3980
3981 Daniel (8 May 2006)
3982 - Dan Fandrich went over the TFTP code and he pointed out and fixed numerous
3983   problems:
3984
3985   * The received file is corrupted when a packet is lost and retransmitted
3986     (this is a serious problem!)
3987
3988   * Transmitting a file aborts if a block is lost and retransmitted
3989
3990   * Data is stored in the wrong location in the buffer for uploads, so uploads
3991     always fail (I don't see how it could have ever worked, but it did on x86
3992     at least)
3993
3994   * A number of calls are made to strerror instead of Curl_strerror, making
3995     the code not thread safe
3996
3997   * There are references to errno instead of Curl_sockerrno(), causing
3998     incorrect error messages on Windows
3999
4000   * The file name includes a leading / which violates RFC3617. Doing something
4001     similar to ftp, where two slashes after the host name means an absolute
4002     reference seems a reasonable extension to fix this.
4003
4004   * Failures in EBCDIC conversion are not propagated up to the caller but are
4005     silently ignored
4006
4007 - Fixed known bug #28. The TFTP code no longer assumes a packed struct and
4008   thus works reliably on more platforms.
4009
4010 Daniel (5 May 2006)
4011 - Roland Blom filed bug report #1481217
4012   (http://curl.haxx.se/bug/view.cgi?id=1481217), with follow-ups by Michele
4013   Bini and David Byron. libcurl previously wrongly used GetLastError() on
4014   windows to get error details after socket-related function calls, when it
4015   really should use WSAGetLastError() instead.
4016
4017   When changing to this, the former function Curl_ourerrno() is now instead
4018   called Curl_sockerrno() as it is necessary to only use it to get errno from
4019   socket-related functions as otherwise it won't work as intended on Windows.
4020
4021 Daniel (4 May 2006)
4022 - Mark Eichin submitted bug report #1480821
4023   (http://curl.haxx.se/bug/view.cgi?id=1480821) He found and identified a
4024   problem with how libcurl dealt with GnuTLS and a case where gnutls returned
4025   GNUTLS_E_AGAIN indicating it would block. It would then return an unexpected
4026   return code, making Curl_ssl_send() confuse the upper layer - causing random
4027   28 bytes trash data to get inserted in the transfered stream.
4028
4029   The proper fix was to make the Curl_gtls_send() function return the proper
4030   return codes that the callers would expect. The Curl_ossl_send() function
4031   already did this.
4032
4033 Daniel (2 May 2006)
4034 - Added a --checkfor option to curl-config to allow users to easier
4035   write for example shell scripts that test for the presence of a
4036   new-enough libcurl version. If --checkfor is given a version string
4037   newer than what is currently installed, curl-config will return a
4038   non-zero exit code and output a string about the unfulfilled
4039   requirement.
4040
4041 Daniel (26 April 2006)
4042 - David McCreedy brought initial line end conversions when doing FTP ASCII
4043   transfers. They are done on non-windows systems and translate CRLF to LF.
4044
4045   I modified the 15 LIST-using test cases accordingly. The downside is that now
4046   we'll have even more trouble to get the tests to run on Windows since they
4047   should get CRLF newlines left intact which the *nix versions don't. I figure
4048   the only sane thing to do is to add some kind of [newline] macro for the test
4049   case files and have them expanded to the proper native line ending when the
4050   test cases are run. This is however left to implement.
4051
4052 Daniel (25 April 2006)
4053 - Paul Querna fixed libcurl to better deal with deflate content encoding
4054   when the stream (wrongly) lacks a proper zlib header. This seems to be the
4055   case on too many actual server implementations.
4056
4057 Daniel (21 April 2006)
4058 - Ale Vesely fixed CURLOPT_INTERFACE when using a hostname.
4059
4060 Daniel (19 April 2006)
4061 - Based on previous info from Tor Arntsen, I made configure detect the Intel
4062   ICC compiler to add a compiler option for it, in order for configure to
4063   properly be able to detect function prototypes.
4064
4065 - Robson Braga Araujo provided a patch that makes libcurl less eager to close
4066   the control connection when using FTP, for example when you remove an easy
4067   handle from a multi stack.
4068
4069 - Applied a patch by Ates Goral and Katie Wang that corrected my bad fix
4070   attempt from April 10.
4071
4072 Daniel (11 April 2006)
4073 - #1468330 (http://curl.haxx.se/bug/view.cgi?id=1468330) pointed out a bad
4074   typecast in the curl tool leading to a crash with (64bit?) VS2005 (at least)
4075   since the struct timeval field tv_sec is an int while time_t is 64bit.
4076
4077 Daniel (10 April 2006)
4078 - Ates Goral found out that if you specified both CURLOPT_CONNECTTIMEOUT and
4079   CURLOPT_TIMEOUT, the _longer_ time would wrongly be used for the SSL
4080   connection time-out!
4081
4082 - I merged my hiper patch (http://curl.haxx.se/libcurl/hiper/) into the main
4083   sources. See the lib/README.multi_socket for implementation story with
4084   details. Don't expect it to work fully yet. I don't intend to blow any
4085   whistles or ring any bells about it until I'm more convinced it works at
4086   least somewhat reliably.
4087
4088 Daniel (7 April 2006)
4089 - David McCreedy's EBCDIC and TPF changes. Three new curl_easy_setopt()
4090   options (callbacks) were added:
4091
4092   CONV_FROM_NETWORK_FUNCTION
4093   CONV_TO_NETWORK_FUNCTION
4094   CONV_FROM_UTF8_FUNCTION
4095
4096 Daniel (5 April 2006)
4097 - Michele Bini modified the NTLM code to work for his "weird IIS case"
4098   (http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash
4099   function in addition to the LM one and making some other adjustments in the
4100   order the different parts of the data block are sent in the Type-2 reply.
4101   Inspiration for this work was taken from the Firefox NTLM implementation.
4102
4103   I edited the existing 21(!) NTLM test cases to run fine with these news. Due
4104   to the fact that we now properly include the host name in the Type-2 message
4105   the test cases now only compare parts of that chunk.
4106
4107 Daniel (28 March 2006)
4108 - #1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
4109   occurred when asking libcurl to follow HTTP redirects and the original URL
4110   had more than one question mark (?). Added test case 276 to verify.
4111
4112 Daniel (27 March 2006)
4113 - David Byron found a problem multiple -d options when libcurl was built with
4114   --enable-debug, as then curl used free() on memory allocated both with
4115   normal malloc() and with libcurl-provided functions, when the latter MUST be
4116   freed with curl_free() in debug builds.
4117
4118 Daniel (26 March 2006)
4119 - Tor Arntsen figured out that TFTP was broken on a lot of systems since we
4120   called bind() with a too big argument in the 3rd parameter and at least
4121   Tru64, AIX and IRIX seem to be very picky about it.
4122
4123 Daniel (21 March 2006)
4124 - David McCreedy added CURLINFO_FTP_ENTRY_PATH.
4125
4126 - Xavier Bouchoux made the SSL connection non-blocking for the multi interface
4127   (when using OpenSSL).
4128
4129 - Tor Arntsen fixed the AIX Toolbox RPM spec
4130
4131 Daniel (20 March 2006)
4132 - David McCreedy fixed libcurl to no longer ignore AUTH failures and now it
4133   reacts properly according to the CURLOPT_FTP_SSL setting.
4134
4135 - Dan Fandrich fixed two TFTP problems: Fixed a bug whereby a received file
4136   whose length was a multiple of 512 bytes could have random garbage
4137   appended. Also, stop processing TFTP packets which are too short to be
4138   legal.
4139
4140 - Ilja van Sprundel reported a possible crash in the curl tool when using
4141   "curl hostwithoutslash -d data -G"
4142
4143 Version 7.15.3 (20 March 2006)
4144
4145 Daniel (20 March 2006)
4146 - VULNERABILITY reported to us by Ulf Harnhammar.
4147
4148   libcurl uses the given file part of a TFTP URL in a manner that allows a
4149   malicious user to overflow a heap-based memory buffer due to the lack of
4150   boundary check.
4151
4152   This overflow happens if you pass in a URL with a TFTP protocol prefix
4153   ("tftp://"), using a valid host and a path part that is longer than 512
4154   bytes.
4155
4156   The affected flaw can be triggered by a redirect, if curl/libcurl is told to
4157   follow redirects and an HTTP server points the client to a tftp URL with the
4158   characteristics described above.
4159
4160   The Common Vulnerabilities and Exposures (CVE) project has assigned the name
4161   CVE-2006-1061 to this issue.
4162
4163 Daniel (16 March 2006)
4164 - Tor Arntsen provided a RPM spec file for AIX Toolbox, that now is included
4165   in the release archive.
4166
4167 Daniel (14 March 2006)
4168 - David McCreedy fixed:
4169
4170   a bad SSL error message when OpenSSL certificates are verified fine.
4171
4172   a missing return code assignment in the FTP code
4173
4174 Daniel (7 March 2006)
4175 - Markus Koetter filed debian bug report #355715 which identified a problem
4176   with the multi interface and multi-part formposts. The fix from February
4177   22nd could make the Curl_done() function get called twice on the same
4178   connection and it was not designed for that and thus tried to call free() on
4179   an already freed memory area!
4180
4181 - Peter Heuchert made sure the CURLFTPSSL_CONTROL setting for CURLOPT_FTP_SSL
4182   is used properly.
4183
4184 Daniel (6 March 2006)
4185 - Lots of users on Windows have reported getting the "SSL: couldn't set
4186   callback" error message so I've now made the setting of that callback not be
4187   as critical as before. The function is only used for additional loggging/
4188   trace anyway so a failure just means slightly less data. It should still be
4189   able to proceed and connect fine to the server.
4190
4191 Daniel (4 March 2006)
4192 - Thomas Klausner provided a patch written by Todd Vierling in bug report
4193   #1442471 that fixes a build problem on Interix.
4194
4195 Daniel (2 March 2006)
4196 - FTP upload without a file name part in the URL now causes
4197   curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the
4198   upload but named the file "(nil)" (without the quotes). Test case 524
4199   verifies.
4200
4201 - Added a check for getprotobyname in configure so that it'll be used, thanks
4202   to Gisle Vanem's change the other day.
4203
4204 Daniel (28 February 2006)
4205 - Dan Fandrich prevented curl from getting stuck in an endless loop in case we
4206   are out of file handles very early in curl's code where it makes sure that
4207   0, 1 and 2 aren't gonna be used by the lib for transfers.
4208
4209 Daniel (27 February 2006)
4210 - Marty Kuhrt pointed out that there were two VMS-specific files missing in
4211   the release archive.
4212
4213 Version 7.15.2 (27 February 2006)
4214
4215 Daniel (22 February 2006)
4216 - Lots of work and analysis by "xbx___" in bug #1431750
4217   (http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two
4218   different but related bugs:
4219
4220   1) Removing an easy handle from a multi handle before the transfer is done
4221      could leave a connection in the connection cache for that handle that is
4222      in a state that isn't suitable for re-use. A subsequent re-use could then
4223      read from a NULL pointer and segfault.
4224
4225   2) When an easy handle was removed from the multi handle, there could be an
4226      outstanding c-ares DNS name resolve request. When the response arrived,
4227      it caused havoc since the connection struct it "belonged" to could've
4228      been freed already.
4229
4230   Now Curl_done() is called when an easy handle is removed from a multi handle
4231   pre-maturely (that is, before the transfer was complteted). Curl_done() also
4232   makes sure to cancel all (if any) outstanding c-ares requests.
4233
4234 Daniel (21 February 2006)
4235 - Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy
4236   type to the already provided type CURLPROXY_SOCKS4.
4237
4238   I added a --socks4 option that works like the current --socks5 option but
4239   instead use the socks4 protocol.
4240
4241 Daniel (20 February 2006)
4242 - Shmulik Regev fixed an issue with multi-pass authentication and compressed
4243   content when libcurl didn't honor the internal ignorebody flag.
4244
4245 Daniel (18 February 2006)
4246 - Ulf Härnhammar fixed a format string (printf style) problem in the Negotiate
4247   code. It should however not be the cause of any troubles. He also fixed a
4248   few similar problems in the HTTP test server code.
4249
4250 Daniel (17 February 2006)
4251 - Shmulik Regev provided a fix for the DNS cache when using short life times,
4252   as previously it could be holding on to old cached entries longer than
4253   requested.
4254
4255 Daniel (11 February 2006)
4256 - Karl Moerder added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options
4257   that an app can use to let libcurl only connect to a remote host and then
4258   extract the socket from libcurl. libcurl will then not attempt to do any
4259   transfer at all after the connect is done.
4260
4261 - Kent Boortz improved the configure check for GnuTLS to properly set LIBS
4262   instead of LDFLAGS.
4263
4264 Daniel (8 February 2006)
4265 - Philippe Vaucher provided a brilliant piece of test code that show a problem
4266   with re-used FTP connections. If the second request on the same connection
4267   was set not to fetch a "body", libcurl could get confused and consider it an
4268   attempt to use a dead connection and would go acting mighty strange.
4269
4270 Daniel (2 February 2006)
4271 - Make --limit-rate [num] mean bytes. It used to be that but it broke in my
4272   change done in November 2005.
4273
4274 Daniel (30 January 2006)
4275 - Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the
4276   curl tool with --local-port. Plain and simply set the range of ports to bind
4277   the local end of connections to. Implemented on to popular demand.
4278
4279 - Based on an error report by Philippe Vaucher, we no longer count a retried
4280   connection setup as a follow-redirect. It turns out 1) this fails when a FTP
4281   connection is re-setup and 2) it does make the max-redirs counter behave
4282   wrong.
4283
4284 Daniel (24 January 2006)
4285 - Michal Marek provided a patch for FTP that makes libcurl continue to try
4286   PASV even after EPSV returned a positive response code, if libcurl failed to
4287   connect to the port number the EPSV response said. Obviously some people are
4288   going through protocol-sensitive firewalls (or similar) that don't
4289   understand EPSV and then they don't allow the second connection unless PASV
4290   was used. This also called for a minor fix of test case 238.
4291
4292 Daniel (20 January 2006)
4293 - Duane Cathey was one of our friends who reported that curl -P [IP]
4294   (CURLOPT_FTPPORT) didn't work for ipv6-enabed curls if the IP wasn't a
4295   "native" IP while it works fine for ipv6-disabled builds!
4296
4297   In the process of fixing this, I removed the support for LPRT since I can't
4298   think of many reasons to keep doing it and asking on the mailing list didn't
4299   reveal anyone else that could either. The code that sends EPRT and PORT is
4300   now also a lot simpler than before (IMHO).
4301
4302 Daniel (19 January 2006)
4303 - Jon Turner pointed out that doing -P [hostname] (CURLOPT_FTPPORT) with curl
4304   (built ipv4-only) didn't work.
4305
4306 Daniel (18 January 2006)
4307 - As reported in bug #1408742 (http://curl.haxx.se/bug/view.cgi?id=1408742),
4308   the configure script complained about a missing "missing" script if you ran
4309   configure within a path whose name included one or more spaces. This is due
4310   to a flaw in automake (1.9.6 and earlier). I've now worked around it by
4311   including an "overloaded" version of the AM_MISSING_HAS_RUN script that'll
4312   be used instead of the one automake ships with. This kludge needs to be
4313   removed once we get an automake version with this problem corrected.
4314   Possibly we'll then need to convert this into a kludge depending on what
4315   automake version that is used and that is gonna be painful and I don't even
4316   want to think about that now...!
4317
4318 Daniel (17 January 2006)
4319 - David Shaw: Here is the latest libcurl.m4 autoconf tests. It is updated with
4320   the latest features and protocols that libcurl supports and has a minor fix
4321   to better deal with the obscure case where someone has more than one libcurl
4322   installed at the same time.
4323
4324 Daniel (16 January 2006)
4325 - David Shaw finally removed all traces of Gopher and we are now officially
4326   not supporting it. It hasn't been functioning for years anyway, so this is
4327   just finally stating what already was true. And a cleanup at the same time.
4328
4329 - Bryan Henderson turned the 'initialized' variable for curl_global_init()
4330   into a counter, and thus you can now do multiple curl_global_init() and you
4331   are then supposed to do the same amount of calls to curl_global_cleanup().
4332   Bryan has also updated the docs accordingly.
4333
4334 Daniel (13 January 2006)
4335 - Andrew Benham fixed a race condition in the test suite that could cause the
4336   test script to kill all processes in the current process group!
4337
4338 Daniel (12 January 2006)
4339 - Michael Jahn:
4340
4341   Fixed FTP_SKIP_PASV_IP and FTP_USE_EPSV to "do right" when used on FTP thru
4342   HTTP proxy.
4343
4344   Fixed PROXYTUNNEL to work fine when you do ftp through a proxy.  It would
4345   previously overwrite internal memory and cause unpredicted behaviour!
4346
4347 Daniel (11 January 2006)
4348 - I decided to document the "secret option" here now, as I've received *NO*
4349   feedback at all on my mailing list requests from November 2005:
4350
4351   I'm looking for feedback and comments. I added some experimental code the
4352   other day, that allows a libcurl user to select what method libcurl should
4353   use to reach a file on a FTP(S) server.
4354
4355   This functionality is available in CVS code and in recent daily snapshots.
4356
4357   Let me explain...
4358
4359   The current name for the option is CURLOPT_FTP_FILEMETHOD (--ftp-method for
4360   the command line tool) and you set it to a long (there are currenly no
4361   defines for the argument values, just plain numericals). You can set three
4362   different "methods" that do this:
4363
4364   1 multicwd - like today, curl will do a single CWD operation for each path
4365            part in the given URL. For deep hierarchies this means very many
4366            commands. This is how RFC1738 says it should be done. This is the
4367            default.
4368
4369   2 nocwd - no CWD at all is done, curl will do SIZE, RETR, STOR etc and give
4370            a full path to the server.
4371
4372   3 singlecwd - make one CWD with the full target directory and then operate
4373             on the file "normally".
4374
4375   (With the command line tool you do --ftp-method [METHOD], where [METHOD] is
4376   one of "multicwd", "nocwd" or "singlecwd".)
4377
4378   What feedback I'm interested in:
4379
4380   1 - Do they work at all? Do you find servers where one of these don't work?
4381
4382   2 - What would proper names for the option and its arguments be, if we
4383       consider this feature good enough to get included and documented in
4384       upcoming releases?
4385
4386   3 - Should we make libcurl able to "walk through" these options in case of
4387       (path related) failures, or should it fail and let the user redo any
4388       possible retries?
4389
4390   (This option is not documented in any man page just yet since I'm not sure
4391   these names will be used or if the functionality will end up exactly like
4392   this.  And for the same reasons we have no test cases for these yet.)
4393
4394 Daniel (10 January 2006)
4395 - When using a bad path over FTP, as in when libcurl couldn't CWD into all
4396   given subdirs, libcurl would still "remember" the full path as if it is the
4397   current directory libcurl is in so that the next curl_easy_perform() would
4398   get really confused if it tried the same path again - as it would not issue
4399   any CWD commands at all, assuming it is already in the "proper" dir.
4400
4401   Starting now, a failed CWD command sets a flag that prevents the path to be
4402   "remembered" after returning.
4403
4404 Daniel (7 January 2006)
4405 - Michael Jahn fixed so that the second CONNECT when doing FTP over a HTTP
4406   proxy actually used a new connection and not sent the second request on the
4407   first socket!
4408
4409 Daniel (6 January 2006)
4410 - Alexander Lazic made the buildconf run the buildconf in the ares dir if that
4411   is present instead of trying to mimic that script in curl's buildconf
4412   script.
4413
4414 Daniel (3 January 2006)
4415 - Andres Garcia made the TFTP test server build with mingw.
4416 Daniel (16 December 2005)
4417 - Jean Jacques Drouin pointed out that you could only have a user name or
4418   password of 127 bytes or less embedded in a URL, where actually the code
4419   uses a 255 byte buffer for it! Modified now to use the full buffer size.
4420
4421 Daniel (12 December 2005)
4422 - Dov Murik corrected the HTTP_ONLY define to disable the TFTP support properly
4423
4424 Version 7.15.1 (7 December 2005)
4425
4426 Daniel (6 December 2005)
4427 - Full text here: http://curl.haxx.se/docs/adv_20051207.html Pointed out by
4428   Stefan Esser.
4429
4430   VULNERABILITY
4431
4432   libcurl's URL parser function can overflow a malloced buffer in two ways, if
4433   given a too long URL.
4434
4435   These overflows happen if you
4436  
4437   1 - pass in a URL with no protocol (like "http://") prefix, using no slash
4438       and the string is 256 bytes or longer. This leads to a single zero byte
4439       overflow of the malloced buffer.
4440
4441   2 - pass in a URL with only a question mark as separator (no slash) between
4442       the host and the query part of the URL. This leads to a single zero byte
4443       overflow of the malloced buffer.
4444
4445   Both overflows can be made with the same input string, leading to two single
4446   zero byte overwrites.
4447
4448   The affected flaw cannot be triggered by a redirect, but the long URL must
4449   be passed in "directly" to libcurl. It makes this a "local" problem. Of
4450   course, lots of programs may still pass in user-provided URLs to libcurl
4451   without doing much syntax checking of their own, allowing a user to exploit
4452   this vulnerability.
4453
4454   There is no known exploit at the time of this writing.
4455
4456
4457 Daniel (2 December 2005)
4458 - Jamie Newton pointed out that libcurl's file:// code would close() a zero
4459   file descriptor if given a non-existing file.
4460
4461 Daniel (24 November 2005)
4462 - Doug Kaufman provided a set of patches to make curl build fine on DJGPP
4463   again using configure.
4464
4465 - Yang Tse provided a whole series of patches to clear up compiler warnings on
4466   MSVC 6.
4467
4468 Daniel (17 November 2005)
4469 - I extended a patch from David Shaw to make libcurl _always_ provide an error
4470   string in the given error buffer to address the flaw mention on 21 sep 2005.
4471
4472 Daniel (16 November 2005)
4473 - Applied Albert Chin's patch that makes the libcurl.pc pkgconfig file get
4474   installed on 'make install' time.
4475
4476 Daniel (14 November 2005)
4477 - Quagmire reported that he needed to raise a NTLM buffer for SSPI to work
4478   properly for a case, and so we did. We raised it even for non-SSPI builds
4479   but it should not do any harm. http://curl.haxx.se/bug/view.cgi?id=1356715
4480
4481 - Jan Kunder's debian bug report
4482   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338680 identified a weird
4483   error message for when you try to upload a file and the requested directory
4484   doesn't exist on the target server.
4485
4486 - Yang Tse fixed compiler warnings in lib/ssluse.c with OpenSSL 0.9.8 and in
4487   lib/memdebug.h that showed up in his msvc builds.
4488
4489 Daniel (13 November 2005)
4490 - Debian bug report 338681 by Jan Kunder: make curl better detect and report
4491   bad limit-rate units:
4492   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338681 Now curl will return
4493   error if a bad unit is used.
4494
4495 - Thanks to this nice summary of poll() implementations:
4496   http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene
4497   Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote
4498   connectin closure so we check for that case (too) and re-enable poll for
4499   cygwin builds.
4500
4501 Daniel (12 November 2005)
4502 - Eugene Kotlyarov found out that cygwin's poll() function isn't doing things
4503   right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable
4504   poll() and use select() on cygwin too (we already do the same choice on Mac
4505   OS X)
4506
4507 - Dima Barsky patched problem #1348930: the GnuTLS code completely ignored
4508   client certificates! (http://curl.haxx.se/bug/view.cgi?id=1348930).
4509
4510 Daniel (10 November 2005)
4511 - David Lang fixed IPv6 support for TFTP!
4512
4513 - Introducing range stepping to the curl globbing support. Now you can specify
4514   step counter by adding :[num] within the brackets when specifying a range:
4515
4516    [1-100:10]
4517    [a-z:2]
4518
4519   If no step counter is set, it defaults to 1 as before:
4520
4521    [1-100]
4522    [d-h]
4523
4524 Daniel (8 November 2005)
4525 - Removed the use of AI_CANONNAME in the IPv6-enabled resolver functions since
4526   we really have no use for reverse lookups of the address.
4527
4528   I truly hope these are the last reverse lookups we had lingering in the
4529   code!
4530
4531 - Dmitry Bartsevich discovered some issues in compatibilty of SSPI-enabled
4532   version of libcurl with different Windows versions. Current version of
4533   libcurl imports SSPI functions from secur32.dll. However, under Windows NT
4534   4.0 these functions are located in security.dll, under Windows 9x - in
4535   secur32.dll and Windows 2000 and XP contains both these DLLs (security.dll
4536   just forwards calls to secur32.dll).
4537
4538   Dmitry's patch loads proper library dynamically depending on Windows
4539   version. Function InitSecurityInterface() is used to obtain pointers to all
4540   of SSPI function in one structure.
4541
4542 Daniel (31 October 2005)
4543 - Vilmos Nebehaj improved libcurl's LDAP abilities:
4544
4545   The LDAP code in libcurl can't handle LDAP servers of LDAPv3 nor binary
4546   attributes in LDAP objects. So, I made a quick patch to address these
4547   problems.
4548
4549   The solution is simple: if we connect to an LDAP server, first try LDAPv3
4550   (which is the preferred protocol as of now) and then fall back to LDAPv2.
4551   In case of binary attributes, we first convert them to base64, just like the
4552   openldap client does. It uses ldap_get_values_len() instead of
4553   ldap_get_values() to be able to retrieve binary attributes correctly. I
4554   defined the necessary LDAP macros in lib/ldap.c to be able to compile
4555   libcurl without the presence of libldap
4556
4557 Daniel (27 October 2005)
4558 - Nis Jorgensen filed bug report #1338648
4559   (http://curl.haxx.se/bug/view.cgi?id=1338648) which really is more of a
4560   feature request, but anyway. It pointed out that --max-redirs did not allow
4561   it to be set to 0, which then would return an error code on the first
4562   Location: found. Based on Nis' patch, now libcurl supports CURLOPT_MAXREDIRS
4563   set to 0, or -1 for infinity. Added test case 274 to verify.
4564
4565 - tommink[at]post.pl reported in bug report #1337723
4566   (http://curl.haxx.se/bug/view.cgi?id=1337723) that curl could not upload
4567   binary data from stdin on Windows if the data contained control-Z (hex 1a)
4568   since that is treated as end-of-file when read in text mode. Gisle Vanem
4569   pointed out the fix, and I made both -T and --data-binary take advantage of
4570   it.
4571
4572 - Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described
4573   in the man page, curl would send an invalid HTTP Range: header. The correct
4574   way would be to use "-r [number]-" or even "-r -[number]". Starting now,
4575   curl will warn if this is discovered, and automatically append a dash to the
4576   range before passing it to libcurl.
4577
4578 Daniel (25 October 2005)
4579 - Amol Pattekar reported a bug with great detail and a fine example in bug
4580   #1326306 (http://curl.haxx.se/bug/view.cgi?id=1326306). When using the multi
4581   interface and connecting to a host with multiple IP addresses, and one of
4582   the addresses fails to connect (the server must exist and respond, just not
4583   accept connections) libcurl leaks a socket descriptor. Thanks to the fine
4584   report, I could find and fix this.
4585
4586 Daniel (22 October 2005)
4587 - Dima Barsky reported a problem with GnuTLS-enabled libcurl in bug report
4588   #1334338 (http://curl.haxx.se/bug/view.cgi?id=1334338). When reading an SSL
4589   stream from a server and the server requests a "rehandshake", the current
4590   code simply returns this as an error. I have no good way to test this, but
4591   I've added a crude attempt of dealing with this situation slightly better -
4592   it makes a blocking handshake if this happens. Done like this because fixing
4593   this the "proper" way (that would handshake asynchronously) will require
4594   quite some work and I really need a good way to test this to do such a
4595   change.
4596
4597 Daniel (21 October 2005)
4598 - "Ofer" reported a problem when libcurl re-used a connection and failed to do
4599   it, it could then accidentally actually crash. Presumably, this concerns FTP
4600   connections.  http://curl.haxx.se/bug/view.cgi?id=1330310
4601
4602 - Temprimus improved the MSVC makefile so that the static debug SSL libs are
4603   linked to the executable and not to the libcurld.lib
4604   http://curl.haxx.se/bug/view.cgi?id=1326676
4605
4606 - Bradford Bruce made the windows resolver code properly return
4607   CURLE_COULDNT_RESOLVE_PROXY and CURLE_COULDNT_RESOLVE_HOST on resolving
4608   errors (as documented).
4609
4610 Daniel (20 October 2005)
4611 - Dave Dribin made libcurl understand and handle cases when the server
4612   (wrongly) sends *two* WWW-Authenticate headers for Digest. While this should
4613   never happen in a sane world, libcurl previously got into an infinite loop
4614   when this occurred. Dave added test 273 to verify this.
4615
4616 - Temprimus improved the MSVC makefile: "makes a build option available so if
4617   you set rtlibcfg=static for the make, then it would build with /MT. The
4618   default behaviour is /MD (the original)."
4619   http://curl.haxx.se/bug/view.cgi?id=1326665
4620
4621 Daniel (14 October 2005)
4622 - Reverted the LIBCURL_VERSION_NUM change from October 6. As Dave Dribin
4623   reported, the define is used by the configure script and is assumed to use
4624   the 0xYYXXZZ format. This made "curl-config --vernum" fail in the 7.15.0
4625   release version.
4626
4627 Version 7.15.0 (13 October 2005)
4628
4629 Daniel (12 October 2005)
4630 - Michael Sutton of iDEFENSE reported and I fixed a securitfy flaw in the NTLM
4631   code that would overflow a buffer if given a too long user name or domain
4632   name. This would happen if you enable NTLM authentication and either
4633
4634   A - pass in a user name and domain name to libcurl that together are longer
4635       than 192 bytes
4636
4637   B - allow (lib)curl to follow HTTP "redirects" (Location: and the
4638       appropriate HTTP 30x response code) and the new URL contains a URL with
4639       a user name and domain name that together are longer than 192 bytes
4640
4641   See http://curl.haxx.se/docs/security.html for further details and updates
4642
4643 Daniel (5 October 2005)
4644 - Darryl House reported a problem with using -z to download files from FTP.
4645   It turned out that if the given time stamp was exact the same as the remote
4646   time stamp, the file would still wrongly be downloaded. Added test case 272
4647   to verify.
4648
4649 Daniel (4 October 2005)
4650 - Domenico Andreoli fixed a man page malformat and removed odd (0xa0) bytes
4651   from the configure script.
4652
4653 - Michael Wallner reported that the date parser had wrong offset stored for
4654   the MEST and CEST time zones.
4655
4656 Daniel (27 September 2005)
4657 - David Yan filed bug #1299181 (http://curl.haxx.se/bug/view.cgi?id=1299181)
4658   that identified a silly problem with Content-Range: headers with the 'bytes'
4659   keyword written in a different case than all lowercase! It would cause a
4660   segfault!
4661
4662 - TJ Saunders of the proftpd project identified and pointed out problems with
4663   the modified FTPS negotiation change of August 19 2005. Thus, we revert the
4664   change back to pre-7.14.1 status.
4665
4666 Daniel (21 September 2005)
4667 - Fixed "cut off" sentence in the libcurl-tutorial man page:
4668   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329305
4669
4670 - Clarified in the curl_easy_setopt man page what the default
4671   CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA mean:
4672   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329311
4673
4674 - Clarified in the curl_easy_setopt man page that CURLOPT_ERRORBUFFER
4675   sometimes doesn't fill in the buffer even though it is supposed to:
4676   http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329313
4677
4678 - When CURLE_URL_MALFORMAT is returned due to a missing URL, it now has an
4679   error string set.
4680
4681 Daniel (19 September 2005)
4682 - Dmitry Bartsevich made the SSPI support work on Windows 9x as well.
4683
4684 Daniel (15 September 2005)
4685 - Added a TFTP server to the test suite and made the test suite capable of
4686   using it.
4687
4688 Daniel (7 September 2005)
4689 - Ben Madsen's detailed reports that funnily enough only occurred with certain
4690   glibc versions turned out to be curl using an already closed file handle
4691   during certain conditions (like when saving FTP server "headers").
4692
4693 - Scott Davis helped me track down a problem in the test HTTP server that made
4694   test case 56 wrongly fail at times. It turned out it was due to the server
4695   finding the end of a chunked-encoded POST too early.
4696
4697 Daniel (6 September 2005)
4698 - Now curl warns if an unknown variable is used in the -w/--writeout argument.
4699
4700 Daniel (4 September 2005)
4701 - I applied Nicolas François' man page patch he posted to the Debian bug
4702   tracker. It corrected two lines that started with apostrophes, which isn't
4703   legal nroff format. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=326511
4704
4705 - Added --ftp-skip-pasv-ip to the command line tool, that sets the new
4706   CURLOPT_FTP_SKIP_PASV_IP option. It makes libcurl re-use the control
4707   connection's IP address when setting up the data connection instead of
4708   extractting the IP address from the PASV response. It has turned out this
4709   feature is frequently needed by people to circumvent silly servers and silly
4710   firewalls, especially when FTPS is used and the PASV command-response is
4711   sent encrtyped.
4712
4713   Sponsored by CU*Answers
4714
4715 Daniel (1 September 2005)
4716 - John Kelly added TFTP support to libcurl. A bunch of new error codes was
4717   added. TODO: add them to docs. add TFTP server to test suite. add TFTP to
4718   list of protocols whereever those are mentioned.
4719
4720 Version 7.14.1 (1 September 2005)
4721
4722 Daniel (29 August 2005)
4723 - Kevin Lussier pointed out a problem with curllib.dsp and how to fix it.
4724
4725 - Igor Polyakov fixed a rather nasty problem with the threaded name resolver
4726   for Windows, that could lead to an Access Violation when the multi interface
4727   was used due to an issue with how the resolver thread was and was not
4728   terminated.
4729
4730 - Simon Josefsson brought a patch that allows curl to get built to use GNU GSS
4731   instead of MIT/Heimdal for GSS capabilities.
4732
4733 Daniel (24 August 2005)
4734 - Toby Peterson added CURLOPT_IGNORE_CONTENT_LENGTH to the library, accessible
4735   from the command line tool with --ignore-content-length. This will make it
4736   easier to download files from Apache 1.x (and similar) servers that are
4737   still having problems serving files larger than 2 or 4 GB. When this option
4738   is enabled, curl will simply have to wait for the server to close the
4739   connection to signal end of transfer. I wrote test case 269 that runs a
4740   simple test to verify that this works.
4741
4742 - (Trying hard to exclude emotions now.) valgrind version 3 suddenly renamed
4743   the --logfile command line option to --log-file, and thus the test script
4744   valgrind autodetection now has yet another version check to do and then it
4745   alters the valgrind command line accordingly.
4746
4747 - Fixed CA cert verification using GnuTLS with the default bundle, which
4748   previously failed due to GnuTLS not allowing x509 v1 CA certs by default.
4749   Ralph Mitchell reported.
4750
4751 Daniel (19 August 2005)
4752 - Norbert Novotny had problems with FTPS and he helped me work out a patch
4753   that made curl run fine in his end. The key was to make sure we do the
4754   SSL/TLS negotiation immediately after the TCP connect is done and not after
4755   a few other commands have been sent like we did previously. I don't consider
4756   this change necessary to obey the standards, I think this server is pickier
4757   than what the specs allow it to be, but I can't see how this modified
4758   libcurl code can add any problems to those who are interpreting the
4759   standards more liberally.
4760
4761 Daniel (17 August 2005)
4762 - Jeff Pohlmeyer found out that if you ask libcurl to load a cookiefile (with
4763   CURLOPT_COOKIEFILE), add a cookie (with CURLOPT_COOKIELIST), tell it to
4764   write the result to a given cookie jar and then never actually call
4765   curl_easy_perform() - the given file(s) to read was never read but the
4766   output file was written and thus it caused a "funny" result.
4767
4768 - While doing some tests for the bug above, I noticed that Firefox generates
4769   large numbers (for the expire time) in the cookies.txt file and libcurl
4770   didn't treat them properly. Now it does.
4771
4772 Daniel (15 August 2005)
4773 - Added more verbose "warning" messages to the curl client for cases where it
4774   fails to open/read files etc to help users diagnose why it doesn't do what
4775   you'd expect it to. Converted lots of old messages to use the new generic
4776   function I wrote for this purpose.
4777
4778 Daniel (13 August 2005)
4779 - James Bursa identified a libcurl HTTP bug and a good way to repeat it. If a
4780   site responds with bad HTTP response that doesn't contain any header at all,
4781   only a response body, and the write callback returns 0 to abort the
4782   transfer, it didn't have any real effect but the write callback would be
4783   called once more anyway.
4784
4785 Daniel (12 August 2005)
4786 - Based on Richard Clayton's reports, I found out that using curl -d @filename
4787   when 'filename' was not possible to access made curl use a GET request
4788   instead.
4789
4790 - The time condition illegal syntax warning is now inhibited if -s is used.
4791
4792 Daniel (10 August 2005)
4793 - Mario Schroeder found out that one of the debug callbacks calls that regards
4794   SSL data with the CURLINFO_TEXT type claimed that the data was one byte
4795   larger than it actually is, thus falsely telling the application that the
4796   terminating zero was part of the data.
4797
4798 Daniel (9 August 2005)
4799 - Christopher R. Palmer fixed the offsets used for date parsings when the time
4800   zone name of a daylight savings time was used. For example, PDT vs PDS. This
4801   flaw was introduced with the new date parser (11 sep 2004 - 7.12.2).
4802   Fortunately, no web server or cookie string etc should be using such time
4803   zone names thus limiting the effect of this bug.
4804
4805 Daniel (8 August 2005)
4806 - Jon Grubbs filed bug report #1249962
4807   (http://curl.haxx.se/bug/view.cgi?id=1249962) which identified a problem
4808   with NTLM on a HTTP proxy if an FTP URL was given. libcurl now properly
4809   switches to pure HTTP internally when an HTTP proxy is used, even for FTP
4810   URLs. The problem would also occur with other multi-pass auth methods.
4811
4812 Daniel (7 August 2005)
4813 - When curl is built with GnuTLS, curl-config didn't include "SSL" when
4814   --features was used.
4815
4816 Daniel (28 July 2005)
4817 - If any of the options CURLOPT_HTTPGET, CURLOPT_POST and CURLOPT_HTTPPOST is
4818   set to 1, CURLOPT_NOBODY will now automatically be set to 0.
4819
4820 Daniel (27 July 2005)
4821 - Dan Fandrich changes over the last week: fixed numerous minor configure
4822   option parsing flaws: --without-gnutls, --without-spnego --without-gssapi
4823   and --without-krb4. Spellfixed several error messages.
4824
4825 - Peteris Krumins added CURLOPT_COOKIELIST and CURLINFO_COOKIELIST, which is a
4826   simple interface to extracting and setting cookies in libcurl's internal
4827   "cookie jar". See the new cookie_interface.c example code.
4828
4829 Daniel (13 July 2005)
4830 - Diego Casorran provided patches to make curl build fine on Amiga again.
4831
4832 Daniel (12 July 2005)
4833 - Adrian Schuur added trailer support in the chunked encoding stream. The
4834   trailer is then sent to the normal header callback/stream. I wrote up test
4835   case 266 to verify the basic functionality. Do note that test case 34
4836   contains a flawed chunked encoding stream that still works the same.
4837
4838 Daniel (5 July 2005)
4839 - Gisle Vanem came up with a nice little work-around for bug #1230118
4840   (http://curl.haxx.se/bug/view.cgi?id=1230118). It seems the Windows (MSVC)
4841   libc time functions may return data one hour off if TZ is not set and
4842   automatic DST adjustment is enabled. This made curl_getdate() return wrong
4843   value, and it also concerned internal cookie expirations etc.
4844
4845 Daniel (4 July 2005)
4846 - Andrew Bushnell provided enough info for me to tell that we badly needed to
4847   fix the CONNECT authentication code with multi-pass auth methods (such as
4848   NTLM) as it didn't previously properly ignore response-bodies - in fact it
4849   stopped reading after all response headers had been received. This could
4850   lead to libcurl sending the next request and reading the body from the first
4851   request as response to the second request. (I also renamed the function,
4852   which wasn't strictly necessary but...)
4853
4854   The best fix would to once and for all make the CONNECT code use the
4855   ordinary request sending/receiving code, treating it as any ordinary request
4856   instead of the special-purpose function we have now. It should make it
4857   better for multi-interface too. And possibly lead to less code...
4858
4859   Added test case 265 for this. It doesn't work as a _really_ good test case
4860   since the test proxy is too stupid, but the test case helps when running the
4861   debugger to verify.
4862
4863 Daniel (30 June 2005)
4864 - Dan Fandrich improved the configure script's ability to figure out what kind
4865   of strerror_r() API that is used when cross-compiling. If __GLIB__ is
4866   defined, it assumes the glibc API. If not, it issues a notice as before that
4867   the user needs to manually edit lib/config.h for this.
4868
4869 Daniel (23 June 2005)
4870 - David Shaw's fix that unifies proxy string treatment so that a proxy given
4871   with CURLOPT_PROXY can use a http:// prefix and user + password. The user
4872   and password fields are now also URL decoded properly. Test case 264 added
4873   to verify.
4874
4875 Daniel (22 June 2005)
4876 - David Shaw updated libcurl.m4
4877
4878 Daniel (14 June 2005)
4879 - Gisle Vanem fixed a potential thread handle leak. Bug report #1216500
4880   (http://curl.haxx.se/bug/view.cgi?id=1216500).  Comment in
4881   http://curl.haxx.se/mail/lib-2005-06/0059.html
4882
4883 Daniel (13 June 2005)
4884 - Made buildconf run libtoolize in the ares dir too (inspired by Tupone's
4885   reverted patch).
4886
4887 Daniel (9 June 2005)
4888 - Incorporated Tupone's findtool fix in buildconf (slightly edited)
4889
4890 - Incorporated Tupone's head -n fix in buildconf.
4891
4892 Daniel (8 June 2005)
4893 - Reverted Tupone's patch again, it broke numerous autobuilds. Let's apply it
4894   in pieces, one by one and see what we need to adjust to work all over.
4895
4896 Daniel (6 June 2005)
4897 - Tupone Alfredo fixed three problems in buildconf:
4898
4899   1) findtool does look per tool in PATH and think ./perl is the perl
4900   executable, while is just a local directory (I have . in the PATH)
4901
4902   2) I got several warning for head -1 deprecated in favour of head -n 1
4903  
4904   3) ares directory is missing some file (missing is missing :-) ) because
4905   automake and friends is not run.
4906
4907 Daniel (3 June 2005)
4908 - Added docs/libcurl/getinfo-times, based on feedback from 'Edi':
4909   http://curl.haxx.se/feedback/display.cgi?id=11178325798299&support=yes
4910
4911 - Andres Garcia provided yet another text mode patch for several test cases so
4912   that they do text comparisions better on Windows (newline-wise).
4913
4914 Daniel (1 June 2005)
4915 - The configure check for c-ares now adds the cares lib before the other libs,
4916   to make it build fine with mingw. Inspired by Tupone Alfredo's bug report
4917   and patch: http://curl.haxx.se/bug/view.cgi?id=1212940
4918
4919 Daniel (31 May 2005)
4920 - Todd Kulesza reported a flaw in the proxy option, since a numerical IPv6
4921   address was not possible to use. It is now, but requires it written
4922   RFC2732-style, within brackets - which incidently is how you enter numerical
4923   IPv6 addresses in URLs. Test case 263 added to verify.
4924
4925 Daniel (30 May 2005)
4926 - Eric Cooper reported about a problem with HTTP servers that responds with
4927   binary zeroes within the headers. They confused libcurl to do wrong so the
4928   downloaded headers become incomplete. The fix is now verified with test case
4929   262. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=310948
4930
4931 Daniel (25 May 2005)
4932 - Fixed problems with the test suite, and in particular the FTP test cases
4933   since it previously was failing every now and then in a nonsense manner.
4934
4935 - --trace-time now outputs the full microsecond, all 6 digits.
4936
4937 Daniel (24 May 2005)
4938 - Andres Garcia provided a text mode patch for several test cases so that they
4939   do text comparisions better on Windows (newline-wise).
4940
4941 - Any 2xx response (and not just 200) is now considered a fine response to
4942   TYPE, as some servers obviously sends a 226 there. Added test case 261 to
4943   verify. Based on a question/report by Georg Wicherski.
4944
4945 Daniel (20 May 2005)
4946 - Improved runtests.pl to allow stdout tests to be mode=text as well, just
4947   as file comparisons already supports. Added this info to the FILEFORMAT
4948   docs.
4949
4950 Daniel (18 May 2005)
4951 - John McGowan identified a problem in bug report #1204435
4952   (http://curl.haxx.se/bug/view.cgi?id=1204435) with malformed URLs like
4953   "http://somehost?data" as it added a slash too much in the request ("GET
4954   /?data/"...). Added test case 260 to verify.
4955
4956 - The configure check for strerror_r() failed to detect the proper API at
4957   times, like on HP-UX 10.20. Then lib/strerror.c badly assumed the glibc
4958   version if the posix define wasn't set (since it _had_ found a strerror_r).
4959
4960 Daniel (16 May 2005)
4961 - The gmtime_r() function in HP-UX 10.20 is broken. About 13 test cases fail
4962   due to this. There's now a configure check that attempts to detect the bad
4963   function and not use it on such systems.
4964
4965 Version 7.14.0 (16 May 2005)
4966
4967 Daniel (13 May 2005)
4968 - Grigory Entin reported that curl's configure detects a fine poll() for Mac
4969   OS X 10.4 (while 10.3 or later detected a "bad" one), but the executable
4970   doesn't work as good as if built without poll(). I've adjusted the configure
4971   to always skip the fine-poll() test on Mac OS X (darwin).
4972
4973 Daniel (12 May 2005)
4974 - When doing a second request (after a disconnect) using the same easy handle,
4975   over a proxy that uses NTLM authentication, libcurl failed to use NTLM again
4976   properly (the auth method was accidentally reset to the same as had been set
4977   for host auth, which defaults to Basic). Bug report #1200661
4978   (http://curl.haxx.se/bug/view.cgi?id=1200661) identified the the problem and
4979   the fix.
4980
4981 - If -z/--time-cond is used with an invalid date syntax, this is no longer
4982   silently discarded. Instead a proper warning message is diplayed that
4983   informs about it. But it still continues without the condition.
4984
4985 Version 7.14.0-pre2 (11 May 2005)
4986
4987 Daniel (11 May 2005)
4988 - Starting now, libcurl sends a little different set of headers in its default
4989   HTTP requests:
4990   
4991   A) Normal non-proxy HTTP:
4992     - no more "Pragma: no-cache" (this only makes sense to proxies)
4993
4994   B) Non-CONNECT HTTP request over proxy:
4995     - "Pragma: no-cache" is used (like before)
4996     - "Proxy-Connection: Keep-alive" (for older style 1.0-proxies)
4997
4998   C) CONNECT HTTP request over proxy:
4999     - "Host: [name]:[port]"
5000     - "Proxy-Connection: Keep-alive"
5001
5002   The A) case is mostly to reduce the default header size and remove a
5003   pointless header.
5004
5005   The B) is to address (rare) problems with HTTP 1.0 proxies
5006
5007   The C) headers are both to address (rare) problems with some proxies. The
5008   code in libcurl that deals with CONNECT requests need a rewrite, but it
5009   feels like a too big a job for me to do now. Details are added in the code
5010   comments for now.
5011
5012   Updated a large amount of test cases to reflect the news.
5013
5014 Daniel (10 May 2005)
5015 - Half-baked attempt to bail out if select() returns _only_ errorfds when the
5016   transfer is in progress. An attempt to fix Allan's problem. See
5017   http://curl.haxx.se/mail/lib-2005-05/0073.html and the rest of that thread
5018   for details.
5019
5020   I'm still not sure this is the right fix, but...
5021
5022 Version 7.14.0-pre1 (9 May 2005)
5023
5024 Daniel (2 May 2005)
5025 - Sort of "fixed" KNOWN_BUGS #4: curl now builds IPv6 enabled on AIX 4.3. At
5026   least it should no longer cause a compiler error. However, it does not have
5027   AI_NUMERICHOST so we cannot getaddrinfo() any numerical addresses with it
5028   (we use that for FTP PORT/EPRT)! So, I modified the configure check that
5029   checks if the getaddrinfo() is working, to use AI_NUMERICHOST since then
5030   it'll fail on AIX 4.3 and it will automatically build with IPv6 support
5031   disabled.
5032
5033 - Added --trace-time that when used adds a time stamp to each trace line that
5034   --trace, --trace-ascii and --verbose output. I also made the '>' display
5035   separate each line on the linefeed so that HTTP requests etc look nicer in
5036   the -v output.
5037
5038 - Made curl recognize the environment variables Lynx (and others?) support for
5039   pointing out the CA cert path/file: SSL_CERT_DIR and SSL_CERT_FILE. If
5040   CURL_CA_BUNDLE is not set, they are checked afterwards.
5041
5042   Like before: on windows if none of these are set, it checks for the ca cert
5043   file like this:
5044
5045   1. application's directory
5046   2. current working directory
5047   3. Windows System directory (e.g. C:\windows\system32)
5048   4. Windows Directory (e.g. C:\windows)
5049   5. all directories along %PATH%
5050
5051 Daniel (1 May 2005)
5052 - The runtests.pl script now starts test servers by doing fork() and exec()
5053   instead of the previous approach. This is less complicated and should
5054   hopefully lead to less "leaked" servers (servers that aren't stopped
5055   properly when the tests are stopped).
5056
5057 - Alexander Zhuravlev found a case when you did "curl -I [URL]" and it
5058   complained on the chunked encoding, even though a HEAD should never return a
5059   body and thus it cannot be a chunked-encoding problem!
5060
5061 Daniel (30 April 2005)
5062 - Alexander Zhuravlev found out that (lib)curl SIGSEGVed when using
5063   --interface on an address that can't be bound.
5064
5065 Daniel (28 April 2005)
5066 - Working on fixing up test cases to mark sections as 'mode=text' for things
5067   that curl writes as text files, since then they can get different line
5068   endings depending on OS. Andrés García helps me work this out.
5069
5070   Did lots of other minor tweaks on the test scripts to work better and more
5071   reliably find test servers and also kill test servers.
5072
5073 - Dan Fandrich pointed out how the runtests.pl script killed the HTTP server
5074   instead of the HTTPS server when closing it down.
5075
5076 Daniel (27 April 2005)
5077 - Paul Moore made curl check for the .curlrc file (_curlrc on windows) on two
5078   more places. First, CURL_HOME is a new environment variable that is used
5079   instead of HOME if it is set, to point out where the default config file
5080   lives. If there's no config file in the dir pointed out by one of the
5081   environment variables, the Windows version will instead check the same
5082   directory the executable curl is located in.
5083
5084 Daniel (26 April 2005)
5085 - Cory Nelson's work on nuking compiler warnings when building on x64 with
5086   VS2005.
5087
5088 Daniel (25 April 2005)
5089 - Fred New reported a bug where we used Basic auth and user name and password
5090   in .netrc, and when following a Location: the subsequent requests didn't
5091   properly use the auth as found in the netrc file. Added test case 257 to
5092   verify my fix.
5093
5094 - Based on feedback from Cory Nelson, I added some preprocessor magic in
5095   */setup.h and */config-win32.h to build fine with VS2005 on x64.
5096
5097 Daniel (23 April 2005)
5098 - Alex Suykov made the curl tool now assume that uploads using HTTP:// or
5099   HTTPS:// are the only ones that show output and thus motivates a switched
5100   off progress meter if the output is sent to the terminal. This makes FTP
5101   uploads without '>', -o or -O show the progress meter.
5102
5103 Daniel (22 April 2005)
5104 - Dave Dribin's MSVC makefile fix: set CURL_STATICLIB when it builds static
5105   library variants.
5106
5107 - Andres Garcia fixed configure to set the proper define when building static
5108   libcurl on windows.
5109
5110 - --retry-delay didn't work.
5111
5112 Daniel (18 April 2005)
5113 - Olivier reported that even though he used CURLOPT_PORT, libcurl clearly
5114   still used the default port. He was right. I fixed the problem and added the
5115   test cases 521, 522 and 523 to verify the fix.
5116
5117 - Toshiyuki Maezawa reported that when doing a POST with a read callback,
5118   libcurl didn't properly send an Expect: 100-continue header. It does now.
5119
5120 - I committed by mig change in the test suite's FTP server that moves out all
5121   socket/TCP code to a separate C program named sockfilt. And added 4 new
5122   test cases for FTP over IPv6.
5123
5124 Daniel (8 April 2005)
5125 - Cory Nelson reported a problem with a HTTP server that responded with a 304
5126   response containing an "illegal" Content-Length: header, which was not
5127   properly ignored by libcurl. Now it is. Test case 249 verifies.
5128
5129 Daniel (7 April 2005)
5130 - Added ability to build and run with GnuTLS as an alternative to OpenSSL for
5131   the secure layer. configure --with-gnutls enables with. Note that the
5132   previous OpenSSL check still has preference and if it first detects OpenSSL,
5133   it will not check for GnuTLS. You may need to explictly diable OpenSSL with
5134   --without-ssl.
5135
5136   This work has been sponsored by The Written Word.
5137
5138 Daniel (5 April 2005)
5139 - Christophe Legry fixed the post-upload check for FTP to not complain if the
5140   upload was skipped due to a time-condition as set with
5141   CURLOPT_TIMECONDITION. I added test case 247 and 248 to verify.
5142
5143 Version 7.13.2 (5 April 2005)
5144
5145 Daniel (4 April 2005)
5146 - Marcelo Juchem fixed the MSVC makefile for libcurl
5147
5148 - Gisle Vanem fixed a crash in libcurl, that could happen if the easy handle
5149   was killed before the threading resolver (windows only) still hadn't
5150   completed.
5151
5152 - Hardeep Singh reported a problem doing HTTP POST with Digest. (It was
5153   actually also affecting NTLM and Negotiate.) It turned out that if the
5154   server responded with 100 Continue before the initial 401 response, libcurl
5155   didn't take care of the response properly. Test case 245 and 246 added to
5156   verify this.
5157
5158 Daniel (30 March 2005)
5159 - Andres Garcia modified the configure script to check for libgdi32 before
5160   libcrypto, to make the SSL check work fine on msys/mingw.
5161
5162 Daniel (29 March 2005)
5163 - Tom Moers identified a flaw when you sent a POST with Digest authentication,
5164   as in the first request when curl sends a POST with Content-Length: 0, it
5165   still forcibly closed the connection before doing the next step in the auth
5166   negotiation.
5167
5168 - Jesper Jensen found out that FTP-SSL didn't work since my FTP
5169   rewrite. Fixing that was easy, but it also revealed a much worse problem:
5170   the FTP server response reader function didn't properly deal with reading
5171   responses in multiple tiny chunks properly! I modified the FTP server to
5172   allow it to produce such split-up responses to make sure curl deals with
5173   them as it should.
5174
5175 - Based on Augustus Saunders' comments and findings, the HTTP output auth
5176   function was fixed to use the proper proxy authentication when multiple ones
5177   are accepted. test 239 and test 243 were added to repeat the problems and
5178   verify the fixes.
5179
5180   --proxy-anyauth was added to the curl tool
5181
5182 Daniel (16 March 2005)
5183 - Tru64 and some IRIX boxes seem to not like test 237 as it is. Their
5184   inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted
5185   address which makes a different failure... Now I've modified the ipv4
5186   resolve code to use inet_pton() instead in an attempt to make these systems
5187   better detect this as a bad IP address rather than creating a toally bogus
5188   address that is then passed on and used.
5189
5190 Daniel (15 March 2005)
5191 - Dan Fandrich made the code properly use the uClibc's version of
5192   inet_ntoa_r() when built with it.
5193
5194 - Added test 237 and 238: test EPSV and PASV response handling when they get
5195   well- formated data back but using illegal values. In 237 PASV gets an IP
5196   address that is way bad. In 238 EPSV gets a port that is way out of range.
5197
5198 Daniel (14 March 2005)
5199 - Added a few missing features to the curl-config --features list
5200
5201 - Modified testcurl.pl to now offer
5202   1 - command line options for all info it previously only read from
5203       file: --name, --email, --desc and --configure
5204   2 - --nocvsup makes it not attempt to do cvs update
5205   3 - --crosscompile informs it and makes it not attempt things it can't do
5206
5207 - Fixed numerous win32 compiler warnings.
5208
5209 - Removed the lib/security.h file since it shadowed the mingw/win32 header
5210   with the same name which is needed for SSPI builds. The contents of the
5211   former security.h is now i krb4.h
5212
5213 - configure --enable-sspi now enables SSPI in the build. It only works for
5214   windows builds (including cross-compiles for windows).
5215
5216 Daniel (12 March 2005)
5217 - David Houlder added --form-string that adds that string to a multipart
5218   formpost part, without special characters having special meanings etc like
5219   --form features.
5220
5221 Daniel (11 March 2005)
5222 - curl_version_info() returns the feature bit CURL_VERSION_SSPI if it was
5223   built with SSPI support.
5224
5225 - Christopher R. Palmer made it possible to build libcurl with the
5226   USE_WINDOWS_SSPI on Windows, and then libcurl will be built to use the
5227   native way to do NTLM. SSPI also allows libcurl to pass on the current user
5228   and its password in the request.
5229
5230 Daniel (9 March 2005)
5231 - Dan F improved the SSL lib setup in configure.
5232
5233 - Nodak Sodak reported a crash when using a SOCKS4 proxy.
5234
5235 - Jean-Marc Ranger pointed out an embarassing debug printf() leftover in the
5236   multi interface code.
5237
5238 - Adjusted the man page for the curl_getdate() return value for dates after
5239   year 2038. For 32 bit time_t it returns 0x7fffffff but for 64bit time_t it
5240   returns either the correct value or even -1 on some systems that still seem
5241   to not deal with this properly. Tor Arntsen found a 64bit AIX system for us
5242   that did the latter. Gwenole Beauchesne's Mandrake patch put the lights on
5243   this problem in the first place.
5244
5245 Daniel (8 March 2005)
5246 - Dominick Meglio reported that using CURLOPT_FILETIME when transferring a FTP
5247   file got a Last-Modified: header written to the data stream, corrupting the
5248   actual data. This was because some conditions from the previous FTP code was
5249   not properly brought into the new FTP code. I fixed and I added test case
5250   520 to verify. (This bug was introduced in 7.13.1)
5251
5252 - Dan Fandrich fixed the configure --with-zlib option to always consider the
5253   given path before any standard paths.
5254
5255 Daniel (6 March 2005)
5256 - Randy McMurchy was the first to report that valgrind.pm was missing from the
5257   release archive and thus 'make test' fails.
5258
5259 Daniel (5 March 2005)
5260 - Dan Fandrich added HAVE_FTRUNCATE to several config-*.h files.
5261
5262 - Added test case 235 that makes a resumed upload of a file that isn't present
5263   on the remote side. This then converts the operation to an ordinary STOR
5264   upload. This was requested/pointed out by Ignacio Vazquez-Abrams.
5265
5266   It also proved (and I fixed) a bug in the newly rewritten ftp code (and
5267   present in the 7.13.1 release) when trying to resume an upload and the
5268   servers returns an error to the SIZE command. libcurl then loops and sends
5269   SIZE commands infinitely.
5270
5271 - Dan Fandrich fixed a SSL problem introduced on February 9th that made
5272   libcurl attempt to load the whole random file to seed the PRNG. This is
5273   really bad since this turns out to be using /dev/urandom at times...
5274
5275 Version 7.13.1 (4 March 2005)
5276
5277 Daniel (4 March 2005)
5278 - Dave Dribin made it possible to set CURLOPT_COOKIEFILE to "" to activate
5279   the cookie "engine" without having to provide an empty or non-existing file.
5280
5281 - Rene Rebe fixed a -# crash when more data than expected was retrieved.
5282
5283 Daniel (22 February 2005)
5284 - NTLM and ftp-krb4 buffer overflow fixed, as reported here:
5285   http://www.securityfocus.com/archive/1/391042 and the CAN report here:
5286   http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-0490
5287
5288   If these security guys were serious, we'd been notified in advance and we
5289   could've saved a few of you a little surprise, but now we weren't.
5290
5291 Daniel (19 February 2005)
5292 - Ralph Mitchell reported a flaw when you used a proxy with auth, and you
5293   requested data from a host and then followed a redirect to another
5294   host. libcurl then didn't use the proxy-auth properly in the second request,
5295   due to the host-only check for original host name wrongly being extended to
5296   the proxy auth as well. Added test case 233 to verify the flaw and that the
5297   fix removed the problem.
5298
5299 Daniel (18 February 2005)
5300 - Mike Dobbs reported a mingw build failure due to the lack of
5301   BUILDING_LIBCURL being defined when libcurl is built. Now this is defined by
5302   configure when mingw is used.
5303
5304 Daniel (17 February 2005)
5305 - David in bug report #1124588 found and fixed a socket leak when libcurl
5306   didn't close the socket properly when returning error due to failing
5307   localbind
5308
5309 Daniel (16 February 2005)
5310 - Christopher R. Palmer reported a problem with HTTP-POSTing using "anyauth"
5311   that picks NTLM. Thanks to David Byron letting me test NTLM against his
5312   servers, I could quickly repeat and fix the problem. It turned out to be:
5313
5314   When libcurl POSTs without knowing/using an authentication and it gets back
5315   a list of types from which it picks NTLM, it needs to either continue
5316   sending its data if it keeps the connection alive, or not send the data but
5317   close the connection. Then do the first step in the NTLM auth. libcurl
5318   didn't send the data nor close the connection but simply read the
5319   response-body and then sent the first negotiation step. Which then failed
5320   miserably of course. The fixed version forces a connection if there is more
5321   than 2000 bytes left to send.
5322
5323 Daniel (14 February 2005)
5324 - The configure script didn't check for ENGINE_load_builtin_engines() so it
5325   was never used.
5326
5327 Daniel (11 February 2005)
5328 - Removed all uses of strftime() since it uses the localised version of the
5329   week day names and month names and servers don't like that.
5330
5331 Daniel (10 February 2005)
5332 - Now the test script disables valgrind-testing when the test suite runs if
5333   libcurl is built shared. Otherwise valgrind only tests the shell that runs
5334   the wrapper-script named 'curl' that is a front-end to curl in this case.
5335   This should also fix the huge amount of reports of false positives when
5336   valgrind has identified leaks in (ba)sh and not in curl and people report
5337   that as curl bugs. Bug report #1116672 is one example.
5338
5339   Also, the valgrind report parser has been adapted to check that at least one
5340   of the sources in a stack strace is one of (lib)curl's source files or
5341   otherwise it will not consider the problem to concern (lib)curl.
5342
5343 - Marty Kuhrt streamlined the VMS build.
5344
5345 Daniel (9 February 2005)
5346 - David Byron fixed his SSL problems, initially mentioned here:
5347   http://curl.haxx.se/mail/lib-2005-01/0240.html. It turned out we didn't use
5348   SSL_pending() as we should.
5349
5350 - Converted lots of FTP code to a statemachine, so that the multi interface
5351   doesn't block while communicating commands-responses with an FTP server.
5352
5353   I've added a comment like BLOCKING in the code on all spots I could find
5354   where we still have blocking operations. When we change curl_easy_perform()
5355   to use the multi interface, we'll also be able to simplify the code since
5356   there will only be one "internal interface".
5357
5358   While doing this, I've now made CURLE_FTP_ACCESS_DENIED separate from the
5359   new CURLE_LOGIN_DENIED. The first one is now access denied to a function,
5360   like changing directory or retrieving a file, while the second means that we
5361   were denied login.
5362
5363   The CVS tag 'before_ftp_statemachine' was set just before this went in, in
5364   case of future need.
5365
5366 - Gisle made the DICT code send CRLF and not just LF as the spec says so.
5367
5368 Daniel (8 February 2005)
5369 - Gisle fixed problems when libcurl runs out of memory, and worked on making
5370   sure the proper error code is returned for those occations.
5371
5372 Daniel (7 February 2005)
5373 - Maruko pointed out a problem with inflate decompressing exactly 64K
5374   contents.
5375
5376 Daniel (5 February 2005)
5377 - Eric Vergnaud found a use of an uninitialised variable in the ftp when doing
5378   PORT on ipv6-enabled hosts.
5379
5380 - David Byron pointed out we could use BUFSIZE to read data (in
5381   lib/transfer.c) instead of using BUFSIZE -1.
5382
5383 Version 7.13.0 (1 February 2005)
5384
5385 Daniel (31 January 2005)
5386 - Added Lars Nilsson's htmltitle.cc example
5387
5388 Daniel (30 January 2005)
5389 - Fixed a memory leak when using the multi interface and the DO operation
5390   failed (as in test case 205).
5391
5392 - Fixed a valgrind warning for file:// operations.
5393
5394 - Fixed a valgrind report in the url globbing code for the curl command line
5395   tool.
5396
5397 - Bugfixed the parser that scans the valgrind report outputs (in runtests.pl).
5398   I noticed that it previously didn't detect and report the "Conditional jump
5399   or move depends on uninitialised value(s)" error. When I fixed this, I
5400   caught a few curl bugs with it. And then I had to spend time to make the
5401   test suite IGNORE these errors when OpenSSL is used since it produce massive
5402   amounts of valgrind warnings (but only of the "Conditional..." kind it
5403   seems). So, if a test that requires SSL is run, it ignores the
5404   "Conditional..." errors, and you'll get a "valgrind PARTIAL" output instead
5405   of "valgrind OK".
5406
5407 Daniel (29 January 2005)
5408 - Using the multi interface, and doing a requsted a re-used connection that
5409   gets closed just after the request has been sent failed and did not re-issue
5410   a request on a fresh reconnect like the easy interface did. Now it does!
5411
5412 - Define CURL_MULTIEASY when building libcurl (lib/easy.c to be exact), to use
5413   my new curl_easy_perform() that uses the multi interface to run the
5414   request. It is a great testbed for the multi interface and I believe we
5415   shall do it this way for real in the future when we have a successor to
5416   curl_multi_fdset(). I've used this approach to detect and fix several of the
5417   recent multi-interfaces issues.
5418
5419 - Adjusted the KNOWN_BUGS #17 fix a bit more since the FTP code also did some
5420   bad assumptions.
5421
5422 - multi interface: when a request is denied due to "Maximum redirects
5423   followed" libcurl leaked the last Location: URL.
5424
5425 - Connect failures with the multi interface was often returned as "connect()
5426   timed out" even though the reason was different.
5427
5428 Daniel (28 January 2005)
5429 - KNOWN_BUGS #17 fixed. A DNS cache entry may not remain locked between two
5430   curl_easy_perform() invokes. It was previously unlocked at disconnect, which
5431   could mean that it remained locked between multiple transfers. The DNS cache
5432   may not live as long as the connection cache does, as they are separate.
5433
5434   To deal with the lack of DNS (host address) data availability in re-used
5435   connections, libcurl now keeps a copy of the IP adress as a string, to be
5436   able to show it even on subsequent requests on the same connection.
5437
5438   The problem could be made to appear with this stunt:
5439
5440   1. create a multi handle
5441   2. add an easy handle
5442   3. fetch a URL that is persistent (leaves the connection alive)
5443   4. remove the easy handle from the multi
5444   5. kill the multi handle
5445   6. create a multi handle
5446   7. add the same easy handle to the new multi handle
5447   8. fetch a URL from the same server as before (re-using the connection)
5448
5449 - Stephen More pointed out that CURLOPT_FTPPORT and the -P option didn't work
5450   when built ipv6-enabled. I've now made a fix for it. Writing test cases for
5451   custom port hosts turned too tricky so unfortunately there's none.
5452
5453 Daniel (25 January 2005)
5454 - Ian Ford asked about support for the FTP command ACCT, and I discovered it
5455   is present in RFC959... so now (lib)curl supports it as well. --ftp-account
5456   and CURLOPT_FTP_ACCOUNT set the account string. (The server may ask for an
5457   account string after PASS have been sent away. The client responds
5458   with "ACCT [account string]".) Added test case 228 and 229 to verify the
5459   functionality. Updated the test FTP server to support ACCT somewhat.
5460
5461 - David Shaw contributed a fairly complete and detailed autoconf test you can
5462   use to detect libcurl and setup variables for the protocols the installed
5463   libcurl supports: docs/libcurl/libcurl.m4
5464
5465 Daniel (21 January 2005)
5466 - Major FTP third party transfer overhaul.
5467
5468   These four options are now obsolete: CURLOPT_SOURCE_HOST,
5469   CURLOPT_SOURCE_PATH, CURLOPT_SOURCE_PORT (this option didn't work before)
5470   and CURLOPT_PASV_HOST.
5471
5472   These two options are added: CURLOPT_SOURCE_URL and CURLOPT_SOURCE_QUOTE.
5473
5474   The target-side didn't use the proper path with RETR, and thus this only
5475   worked correctly in the login path (i.e without doing any CWD). The source-
5476   side still uses a wrong path, but the fix for this will need to wait. Verify
5477   the flaw by using a source URL with included %XX-codes.
5478
5479   Made CURLOPT_FTPPORT control weather the target operation should use PORT
5480   (or not). The other side thus uses passive (PASV) mode.
5481
5482   Updated the ftp3rdparty.c example source to use the updated options.
5483
5484   Added support for a second FTP server in the test suite. Named... ftp2.
5485   Added test cases 230, 231 and 232 as a few first basic tests of very simple
5486   3rd party transfers.
5487
5488   Changed the debug output to include 'target' and 'source' when a 3rd party
5489   is being made, to make it clearer what commands/responses came on what
5490   connection.
5491
5492   Added three new command line options: --3p-url, --3p-user and --3p-quote.
5493
5494   Documented the command line options and the curl_easy_setopt options related
5495   to third party transfers.
5496
5497   (Temporarily) disabled the ability to re-use an existing connection for the
5498   source connection. This is because it needs to force a new in case the
5499   source and target is the same host, and the host name check is trickier now
5500   when the source is identified with a full URL instead of a plain host name
5501   like before.
5502
5503   TODO (short-term) for 3rd party transfers: quote support. The options are
5504   there, we need to add test cases to verify their functionality.
5505
5506   TODO (long-term) for 3rd party transfers: IPv6 support (EPRT and EPSV etc)
5507   and SSL/TSL support.
5508
5509 Daniel (20 January 2005)
5510 - Philippe Hameau found out that -Q "+[command]" didn't work, although some
5511   code was written for it. I fixed and added test case 227 to verify it.
5512   The curl.1 man page didn't mention the '+' so I added it.
5513
5514 Daniel (19 January 2005)
5515 - Stephan Bergmann made libcurl return CURLE_URL_MALFORMAT if an FTP URL
5516   contains %0a or %0d in the user, password or CWD parts. (A future fix would
5517   include doing it for %00 as well - see KNOWN_BUGS for details.) Test case
5518   225 and 226 were added to verify this
5519
5520 - Stephan Bergmann pointed out two flaws in libcurl built with HTTP disabled:
5521
5522   1) the proxy environment variables are still read and used to set HTTP proxy
5523
5524   2) you couldn't disable http proxy with CURLOPT_PROXY (since the option was
5525      disabled). This is important since apps may want to disable HTTP proxy
5526      without actually knowing if libcurl was built to disable HTTP or not.
5527
5528   Based on Stephan's patch, both these issues should now be fixed.
5529
5530 Daniel (18 January 2005)
5531 - Cody Jones' enhanced version of Samuel Díaz García's MSVC makefile patch was
5532   applied.
5533
5534 Daniel (16 January 2005)
5535 - Alex aka WindEagle pointed out that when doing "curl -v dictionary.com", curl
5536   assumed this used the DICT protocol. While guessing protocols will remain
5537   fuzzy, I've now made sure that the host names must start with "[protocol]."
5538   for them to be a valid guessable name. I also removed "https" as a prefix
5539   that indicates HTTPS, since we hardly ever see any host names using that.
5540
5541 Daniel (13 January 2005)
5542 - Inspired by Martijn Koster's patch and example source at
5543   http://www.greenhills.co.uk/mak/gentoo/curl-eintr-bug.c, I now made the
5544   select() and poll() calls properly loop if they return -1 and errno is
5545   EINTR. glibc docs for this is found here:
5546   http://www.gnu.org/software/libc/manual/html_node/Interrupted-Primitives.html
5547
5548   This last link says BSD doesn't have this "effect". Will there be a problem
5549   if we do this unconditionally?
5550
5551 Daniel (11 January 2005)
5552 - Dan Torop cleaned up a few no longer used variables from David Phillips'
5553   select() overhaul fix.
5554
5555 - Cyrill Osterwalder posted a detailed analysis about a bug that occurs when
5556   using a custom Host: header and curl fails to send a request on a re-used
5557   persistent connection and thus creates a new connection and resends it. It
5558   then sent two Host: headers. Cyrill's analysis was posted here:
5559   http://curl.haxx.se/mail/archive-2005-01/0022.html
5560
5561 - Bruce Mitchener identified (bug report #1099640) the never-ending SOCKS5
5562   problem with the version byte and the check for bad versions. Bruce has lots
5563   of clues on this, and based on his suggestion I've now removed the check of
5564   that byte since it seems to be able to contain 1 or 5.
5565
5566 Daniel (10 January 2005)
5567 - Pavel Orehov reported memory problems with the multi interface in bug report
5568   #1098843. In short, a shared DNS cache was setup for a multi handle and when
5569   the shared cache was deleted before the individual easy handles, the latter
5570   cleanups caused read/writes to already freed memory.
5571
5572 - Hzhijun reported a memory leak in the SSL certificate code, that leaked the
5573   remote certificate name when it didn't match the used host name.
5574
5575 Gisle (8 January 2005)
5576 - Added Makefile.Watcom files (src/lib). Updated Makefile.dist.
5577
5578 Daniel (7 January 2005)
5579 - Improved the test script's valgrind log parser to actually work! Also added
5580   the ability to disable the log scanner for specific test cases. Test case
5581   509 results in numerous problems and leaks in OpenSSL and has to get it
5582   disabled.
5583
5584 Daniel (6 January 2005)
5585 - Fixed a single-byte read out of bounds in test case 39 in the curl tool code
5586   (i.e not in the library).
5587
5588 - Bug report #1097019 identified a problem when doing -d "data" with -G and
5589   sending it to two URLs with {}. Added test 199 to verify the fix.
5590
5591 Daniel (4 January 2005)
5592 - Marty Kuhrt adjusted a VMS build script slightly
5593
5594 - Kai Sommerfeld and Gisle Vanem fixed libcurl to build with IPv6 support on
5595   Win2000.
5596
5597 Daniel (2 January 2005)
5598 - Alex Neblett updated the MSVC makefiles slightly.
5599 Daniel (25 December 2004)
5600 - Removed src/config.h.in from CVS, it is now copied from the (generated)
5601   lib/config.h.in instead, as they can very well be the same. This removes a
5602   "manual hassle". You may want to re-run buildconf now.
5603
5604 - Werner Koch filed Debian bug report #286794, mentioning that curl contained
5605   non-free (by Debian's view) source code. This was Angus Mackay's
5606   src/getpass.c source code. I tried to contact him about it to quickly solve
5607   this issue, but his email addresses bounce and I got some time "over" and
5608   reimplemented the functionality once brought by Angus. We no longer use any
5609   of Angus' original code and the new function is much simpler (IMO). Issue
5610   solved.
5611
5612 Daniel (24 December 2004)
5613 - David Shaw added --protocols to curl-config, so that it now lists all
5614   protocols libcurl was built to support. --feature no longer lists disabled
5615   protocols.
5616
5617 Daniel (23 December 2004)
5618 - David Shaw fixed the configure --disable-[protocol] variables so that
5619   curl-config --feature now works correctly!
5620
5621 Daniel (22 December 2004)
5622 - Rune Kleveland fixed a minor memory leak for received cookies with the
5623   (rare) version attribute set.
5624
5625 - Marcin Konicki provided two configure fixes and a source fix to make curl
5626   build out-of-the-box on BeOS.
5627
5628 Daniel (21 December 2004)
5629 - Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the
5630   -w option support 'http_connect' to make it easier to verify!
5631
5632 - Fixed lib/select.c include order to build fine on FreeBSD
5633
5634 - Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD.
5635   Pointed out by Peter Pentchev.
5636
5637 Version 7.12.3 (20 December 2004)
5638
5639 Daniel (19 December 2004)
5640 - I investigated our PKCS12 build problem on Solaris 2.7 with OpenSSL 0.9.7e,
5641   and it turned out to be the fault of the zlib 1.1.4 headers doing a typedef
5642   named 'free_func' and the OpenSSL headers have a prototype that uses
5643   'free_func' in one of its arguments. This is why the compile errors out.
5644
5645   In other words, we need to include the openssl/pkcs12.h header before the
5646   zlib.h header and it builds fine. The configure script now checks for this
5647   file and it then gets included early in lib/urldata.h.
5648
5649 Daniel (18 December 2004)
5650 - Samuel Listopad added support for PKCS12 formatted certificates.
5651
5652 - Samuel Listopad fixed -E to support "C:/path" (with forward slash) as well.
5653
5654 Daniel (16 December 2004)
5655 - Gisle found and fixed a problem in the directory re-use for FTP.
5656
5657   I added test case 215 and 216 to better verify the functionality.
5658
5659 - Dinar in bug report #1086121, found a file handle leak when a multipart
5660   formpost (including a file upload part) was aborted before the whole file
5661   was sent.
5662
5663 Daniel (15 December 2004)
5664 - Tom Lee found out that globbing of strings with backslashes didn't work as
5665   you'd expect. Backslashes are such a central part of windows file names that
5666   forcing backslashes to have to be escaped with backslashes is a bit too
5667   awkward to users. Starting now, you only need to escape globbing characters
5668   such as the five letters: "[]{},". Added test case 214 to verify this.
5669
5670 Daniel (14 December 2004)
5671 - Harshal Pradhan patched a HTTP persistent connection flaw: if the user name
5672   and/or password were modified between two requests on a persistent
5673   connection, the second request were still made with the first setup!
5674
5675   I added test case 519 to verify the fix.
5676
5677 Daniel (13 December 2004)
5678 - Gisle added CURLINFO_SSL_ENGINES to curl_easy_getinfo() to allow an app
5679   to list all available crypto ENGINES.
5680
5681 - Gisle fixed bug report #1083542, which pointed out a problem with resuming
5682   large file (>4GB) file:// transfers on windows.
5683
5684 Daniel (11 December 2004)
5685 - Made the test suite HTTP server (sws) capable of using IPv6, and then
5686   extended the test environment to support that and also added three test
5687   cases (240, 241, 242) that run tests using IPv6. Test 242 uses a URL that
5688   didn't work before the 10 dec fix by Kai Sommerfeld.
5689
5690 - Made a failed file:// resume output an error message
5691
5692 - Corrected the CURLE_BAD_DOWNLOAD_RESUME error message in lib/strerror.c
5693
5694 - Dan Fandrich:
5695
5696   simplified and consolidated the SSL checks in configure and the usage of the
5697   defines in lib/setup.h
5698
5699   provided a first libcurl.pc.in file for pkg-config (but the result is not
5700   installed anywhere at this point)
5701
5702   extended the cross compile section in the docs/INSTALL file
5703
5704 Daniel (10 December 2004)
5705 - When providing user name in the URL and a IPv6-style IP-address (like in
5706   "ftp://user@[::1]/tmp"), the URL parser didn't get the host extracted
5707   properly.  Reported and fixed by Kai Sommerfeld.
5708
5709 Daniel (9 December 2004)
5710 - Ton Voon provided a configure fix that should fix the notorious (mostly
5711   reported on Solaris) problem where the size_t check fails due to the SSL
5712   libs being found in a dir not searched through by the run-time linker.
5713   patch-tracker entry #1081707.
5714
5715 - Bryan Henderson pointed out in bug report #1081788 that the curl-config
5716   --vernum output wasn't zero prefixed properly (as claimed in documentation).
5717   This is fixed in maketgz now.
5718
5719 Daniel (8 December 2004)
5720 - Matt Veenstra updated the mach-O framework files for Mac OS X.
5721
5722 - Rene Bernhardt found and fixed a buffer overrun in the NTLM code, where
5723   libcurl always and unconditionally overwrote a stack-based array with 3 zero
5724   bytes. This is not an exploitable buffer overflow. No need to get alarmed.
5725
5726 Daniel (7 December 2004)
5727 - Fixed so that the final error message is sent to the verbose info "stream"
5728   even if no errorbuffer is set.
5729
5730 Daniel (6 December 2004)
5731 - Dan Fandrich added the --disable-cookies option to configure to build
5732   libcurl without cookie support. This is mainly useful if you want to build a
5733   minimalistic libcurl with no cookies support at all. Like for embedded
5734   systems or similar.
5735
5736 - Richard Atterer fixed libcurl's way of dealing with the EPSV
5737   response. Previously, libcurl would re-resolve the host name with the new
5738   port number and attempt to connect to that, while it should use the IP from
5739   the control channel. This bug made it hard to EPSV from an FTP server with
5740   multiple IP addresses!
5741
5742 Daniel (3 December 2004)
5743 - Bug report #1078066: when a chunked transfer was pre-maturely closed exactly
5744   at a chunk boundary it was not considered an error and thus went unnoticed.
5745   Fixed by Maurice Barnum.
5746
5747   Added test case 207 to verify.
5748
5749 Daniel (2 December 2004)
5750 - Fixed the CONNECT loop to default timeout to 3600 seconds.
5751
5752   Added test case 206 that makes CONNECT with Digest.
5753
5754   Fixed a flaw that prepended "(nil)" to the initial CONNECT rqeuest's user-
5755   agent field.
5756
5757 Daniel (30 November 2004)
5758 - Dan Fandrich's fix for libz 1.1 and "extra field" usage in a gzip stream
5759
5760 - Dan also helped me with input data to create three more test cases for the
5761   --compressed option.
5762
5763 Daniel (29 November 2004)
5764 - I improved the test suite to enable binary contents in the tests (by proving
5765   it base64 encoded), like for testing decompress etc. Added test 220 and 221
5766   for this purpose. Tests can now also depend on libz to run.
5767
5768 - As reported by Reinout van Schouwen in Mandrake's bug tracker bug 12285
5769   (http://qa.mandrakesoft.com/show_bug.cgi?id=12285), when connecting to an
5770   IPv6 host with FTP, --disable-epsv (or --disable-eprt) effectively disables
5771   the ability to transfer a file. Now, when connected to an FTP server with
5772   IPv6, these FTP commands can't be disabled even if asked to with the
5773   available libcurl options.
5774
5775 Daniel (26 November 2004)
5776 - As reported in Mandrake's bug tracker bug 12289
5777   (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a
5778   newline to "finish" the progress meter after each redirect and not only
5779   after a completed transfer.
5780
5781 Daniel (25 November 2004)
5782 - FTP improvements:
5783
5784   If EPSV, EPRT or LPRT is tried and doesn't work, it will not be retried on
5785   the same server again even if a following request is made using a persistent
5786   connection.
5787
5788   If a second request is made to a server, requesting a file from the same
5789   directory as the previous request operated on, libcurl will no longer make
5790   that long series of CWD commands just to end up on the same spot. Note that
5791   this is only for *exactly* the same dir. There is still room for improvements
5792   to optimize the CWD-sending when the dirs are only slightly different.
5793
5794   Added test 210, 211 and 212 to verify these changes. Had to improve the
5795   test script too and added a new primitive to the test file format.
5796
5797 Daniel (24 November 2004)
5798 - Andrés García fixed the configure script to detect select properly when run
5799   with Msys/Mingw on Windows.
5800
5801 Daniel (22 November 2004)
5802 - Made HTTP PUT and POST requests no longer use HEAD when doing multi-pass
5803   auth negotiation (NTLM, Digest and Negotiate), but instead use the request
5804   keyword "properly". Details in lib/README.httpauth. This also introduces
5805   CURLOPT_IOCTLFUNCTION and CURLOPT_IOCTLDATA, to be used by apps that use the
5806   "any" auth alternative as then libcurl may need to send the PUT/POST data
5807   more than once and thus may need to ask the app to "rewind" the read data
5808   stream to start.
5809
5810   See also the new example using this: docs/examples/anyauthput.c
5811
5812 - David Phillips enhanced test 518. I made it depend on a "feature" so that
5813   systems without getrlimit() won't attempt to test 518. configure now checks
5814   for getrlimit() and setrlimit() for this test case.
5815
5816 Daniel (18 November 2004)
5817 - David Phillips fixed libcurl to not crash anymore when more than FD_SETSIZE
5818   file descriptors are in use. Test case 518 added to verify.
5819
5820 Daniel (15 November 2004)
5821 - To test my fix for the CURLINFO_REDIRECT_TIME bug, I added time_redirect and
5822   num_redirects support to the -w writeout option for the command line tool.
5823
5824 - Wojciech Zwiefka found out that CURLINFO_REDIRECT_TIME didn't work as
5825   documented.
5826
5827 Daniel (12 November 2004)
5828 - Gisle Vanem modigied the MSVC and Netware makefiles to build without
5829   libcurl.def
5830
5831 - Dan Fandrich added the --disable-crypto-auth option to configure to allow
5832   libcurl to build without Digest support. (I figure it should also explicitly
5833   disable Negotiate and NTLM.)
5834
5835 -                 *** Modified Behaviour Alert ***
5836
5837   Setting CURLOPT_POSTFIELDS to NULL will no longer do a GET.
5838
5839   Setting CURLOPT_POSTFIELDS to "" will send a zero byte POST and setting
5840   CURLOPT_POSTFIELDS to NULL and CURLOPT_POSTFIELDSIZE to zero will also make
5841   a zero byte POST. Added test case 515 to verify this.
5842
5843   Setting CURLOPT_HTTPPOST to NULL makes a zero byte post. Added test case 516
5844   to verify this.
5845
5846   CURLOPT_POSTFIELDSIZE must now be set to -1 to signal "we don't know".
5847   Setting it to zero simply says this is a zero byte POST.
5848
5849   When providing POST data with a read callback, setting the size up front
5850   is now made with CURLOPT_POSTFIELDSIZE and not with CURLOPT_INFILESIZE.
5851
5852 Daniel (11 November 2004)
5853 - Dan Fandrich added --disable-verbose to the configure script to allow builds
5854   without verbose strings in the code, to save some 12KB space. Makes sense
5855   only for systems with very little memory resources.
5856
5857 - Jeff Phillips found out that a date string with a year beyond 2038 could
5858   crash the new date parser on systems with 32bit time_t. We now check for
5859   this case and deal with it.
5860
5861 Daniel (10 November 2004)
5862 - I installed Heimdal on my Debian box (using the debian package) and noticed
5863   that configure --with-gssapi failed to create a nice build. Fixed now.
5864
5865 Daniel (9 November 2004)
5866 - Gisle Vanem marked all external function calls with CURL_EXTERN so that now
5867   the Windows, Netware and other builds no longer need libcurl.def or similar
5868   files.
5869
5870 Daniel (8 November 2004)
5871 - Made the configure script check for tld.h if libidn was detected, since
5872   libidn 0.3.X didn't have such a header and we don't work with anything
5873   before libidn 0.4.1 anyway! Suse 9.1 apparently ships with a 0.3.X version
5874   of libidn which makes the curl 7.12.2 build fail. Jean-Philippe
5875   Barrette-LaPierre helped pointing this out.
5876
5877 - Ian Gulliver reported in debian bug report #278691: if curl is invoked in an
5878   environment where stderr is closed the -v output will still be sent to file
5879   descriptor 2 which then might be the network socket handle! Now we have a
5880   weird hack instead that attempts to make sure that file descriptor 2 is
5881   opened (with a call to pipe()) before libcurl is called to do the transfer.
5882   configure now checks for pipe() and systems without pipe don't get the weird
5883   hack done.
5884
5885 Daniel (5 November 2004)
5886 - Tim Sneddon made libcurl send no more than 64K in a single first chunk when
5887   doing a huge POST on VMS, as this is a system limitation. Default on general
5888   systems is 100K.
5889
5890 Daniel (4 November 2004)
5891 - Andres Garcia made it build on mingw againa, my --retry code broke the build.
5892
5893 Daniel (2 November 2004)
5894 - Added --retry-max-time that allows a maximum time that may not have been
5895   reached for a retry to be made. If not set there is no maximum time, only
5896   the amount of retries set with --retry.
5897
5898 - Paul Nolan provided a patch to make libcurl build nicely on Windows CE.
5899
5900 Daniel (1 November 2004)
5901 - When cross-compiling, the configure script no longer attempts to use
5902   pkg-config on the build host in order to detect OpenSSL compiler options.
5903
5904 Daniel (27 October 2004)
5905 - Dan Fandrich:
5906
5907   An improvement to the gzip handling of libcurl. There were two problems with
5908   the old version: it was possible for a malicious gzip file to cause libcurl
5909   to leak memory, as a buffer was malloced to hold the header and never freed
5910   if the header ended with no file contents.  The second problem is that the
5911   64 KiB decompression buffer was allocated on the stack, which caused
5912   unexpectedly high stack usage and overflowed the stack on some systems
5913   (someone complained about that in the mailing list about a year ago).
5914
5915   Both problems are fixed by this patch. The first one is fixed when a recent
5916   (1.2) version of zlib is used, as it takes care of gzip header parsing
5917   itself.  A check for the version number is done at run-time and libcurl uses
5918   that feature if it's present. I've created a define OLD_ZLIB_SUPPORT that
5919   can be commented out to save some code space if libcurl is guaranteed to be
5920   using a 1.2 version of zlib.
5921
5922   The second problem is solved by dynamically allocating the memory buffer
5923   instead of storing it on the stack. The allocation/free is done for every
5924   incoming packet, which is suboptimal, but should be dwarfed by the actual
5925   decompression computation.
5926
5927   I've also factored out some common code between deflate and gzip to reduce
5928   the code footprint somewhat.  I've tested the gzip code on a few test files
5929   and I tried deflate using the freshmeat.net server, and it all looks OK. I
5930   didn't try running it with valgrind, however.
5931
5932 - Added a --retry option to curl that takes a numerical option for the number
5933   of times the operation should be retried. It is retried if a transient error
5934   is detected or if a timeout occurred. By default, it will first wait one
5935   second between the retries and then double the delay time between each retry
5936   until the delay time is ten minutes which then will be the delay time
5937   between all forthcoming retries. You can set a static delay time with
5938   "--retry-delay [num]" where [num] is the number of seconds to wait between
5939   each retry.
5940
5941 Daniel (25 October 2004)
5942 - Tomas Pospisek filed bug report #1053287 that proved -C - and --fail on a
5943   file that was already completely downloaded caused an error, while it
5944   doesn't if you don't use --fail! I added test case 194 to verify the fix.
5945   Grrr. CURLOPT_FAILONERROR is now added to the list stuff to remove in
5946   libcurl v8 due to all the kludges needed to support it.
5947
5948 - Mohun Biswas found out that formposting a zero-byte file didn't work very
5949   good. I fixed.
5950
5951 Daniel (19 October 2004)
5952 - Alexander Krasnostavsky made it possible to make FTP 3rd party transfers
5953   with both source and destination being the same host. It can be useful if
5954   you want to move a file on a server or similar.
5955
5956 - Guillaume Arluison added CURLINFO_NUM_CONNECTS to allow an app to figure
5957   out how many new connects a previous transfer required.
5958
5959   I added %{num_connects} to the curl tool and added test case 192 and 193
5960   to verify the new code.
5961
5962 Daniel (18 October 2004)
5963 - Peter Wullinger pointed out that curl should call setlocale() properly to
5964   initiate the specific language operations, to make the IDN stuff work
5965   better.
5966
5967 Version 7.12.2 (18 October 2004)
5968
5969 Daniel (16 October 2004)
5970 - Alexander Krasnostavsky made the CURLOPT_FTP_CREATE_MISSING_DIRS option work
5971   fine even for third party transfers.
5972
5973 - runekl at opoint.com found out (and provided a fix) that libcurl leaked
5974   memory for cookies with the "max-age" field set.
5975
5976 Gisle (16 October 2004)
5977 - Issue 50 in TODO-RELEASE; Added Traian Nicolescu's patches for threaded
5978   resolver on Windows. Plugged some potential handle and memory leaks.
5979
5980 Daniel (14 October 2004)
5981 - Eric Vergnaud pointed out that libcurl didn't treat ?-letters in the user
5982   name and password fields properly in URLs, like
5983   ftp://us?er:pass?word@site.com/. Added test 191 to verify the fix.
5984
5985 Daniel (11 October 2004)
5986 - libcurl now uses SO_NOSIGPIPE for systems that support it (Mac OS X 10.2 or
5987   later is one) to inhibit the SIGPIPE signal when writing to a socket while
5988   the peer dies. The same effect is provide by the MSG_NOSIGNAL parameter to
5989   send() on other systems. Alan Pinstein verified the fix.
5990
5991 Daniel (10 October 2004)
5992 - Systems with 64bit longs no longer use strtoll() or our strtoll- replacement
5993   to parse 64 bit numbers. strtol() works fine. Added a configure check to
5994   detect if [constant]LL works and if so, use that in the strtoll replacement
5995   code to work around compiler warnings reported by Andy Cedilnik.
5996
5997 Gisle (6 October 2004)
5998 - For USE_LIBIDN builds: Added Top-Level-Domain (TLD) check of host-name
5999   used in fix_hostname(). Checks if characters in 'host->name' (indirectly
6000   via 'ace_hostname') are legal according to the TLD tables in libidn.
6001
6002 Daniel (6 October 2004)
6003 - Chih-Chung Chang reported that if you use CURLOPT_RESUME_FROM and enabled
6004   CURLOPT_FOLLOWLOCATION, libcurl reported error if a redirect happened even
6005   if the new URL would provide the resumed file. Test case 188 added to verify
6006   the fix (together with existing test 99).
6007
6008 - Dan Fandrich fixed a configure flaw for systems that need both nsl and socket
6009   libs to use gethostbyname().
6010
6011 - Removed tabs and trailing whitespace from lots of source files.
6012
6013 Daniel (5 October 2004)
6014 - Made configure --with-libidn=PATH try the given PATH before the default
6015   paths to make it possible to override.
6016
6017 - If idna_strerror() is present in libidn, we can use that instead of our
6018   internal replacement. This function was added by Simon in libidn 0.5.6 and
6019   is detected by configure.
6020
6021 - It seems basename() on IRIX is in the libgen library and since we don't use
6022   that, configure finds libgen.h but not basename and then we get a compiler
6023   error because our basename() replacement doesn't match the proto in
6024   libgen.h. Starting now, we don't include the file if basename wasn't found
6025   as well.
6026
6027 Daniel (4 October 2004)
6028 - Chris found a race condition resulting in CURLE_COULDNT_RESOLVE_HOST and
6029   potential crash, in the windows threaded name resolver code.
6030
6031 Daniel (3 October 2004)
6032 - Replaced the use of isspace() in cookie.c with our own version instead since
6033   we have most data as 'char *' and that makes us pass in negative values if
6034   there is 8bit data in the string. Changing to unsigned causes too much
6035   warnings or too many required typecasts to the normal string functions.
6036   Harshal Pradhan identified this problem.
6037
6038 Daniel (2 October 2004)
6039 - Bertrand Demiddelaer found a case where libcurl could read already freed
6040   data when CURLOPT_VERBOSE is used and a (very) persistent connection. It
6041   happened when the dns cache entry for the connection was pruned while the
6042   connection was still alive and then again re-used. We worked together on
6043   this fix.
6044
6045 - Gisle Vanem provided code that displays an error message when the (libidn
6046   based) IDN conversion fails. This is really due to a missing suitable
6047   function in the libidn API that I hope we can remove once libidn gets a
6048   function like this.
6049
6050 Daniel (1 October 2004)
6051 - Aleksandar Milivojevic reported a problem in the Redhat bugzilla (see
6052   https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=134133) and not to
6053   anyone involved in the curl project! This happens when you try to curl a
6054   file from a proftpd site using SSL. It seems proftpd sends a somewhat
6055   unorthodox response code (232 instead of 230). I relaxed the response code
6056   check to deal with this and similar cases.
6057
6058 - Based on Fedor Karpelevitch's formpost path basename patch, file parts in
6059   formposts no longer include the path part. If you _really_ want them, you
6060   must provide your preferred full file name with CURLFORM_FILENAME.
6061
6062   Added detection for libgen.h and basename() to configure. My custom
6063   basename() replacement function for systems without it, might be a bit too
6064   naive...
6065
6066   Updated 6 test cases to make them work with the stripped paths.
6067
6068 Daniel (30 September 2004)
6069 - Larry Campbell added CURLINFO_OS_ERRNO to curl_easy_getinfo() that allows an
6070   app to retrieve the errno variable after a (connect) failure. It will make
6071   sense to provide this for more failures in a more generic way, but let's
6072   start like this.
6073
6074 - Günter Knauf and Casey O'Donnell worked out an extra #if condition for the
6075   curl/multi.h header to work better in winsock-using apps.
6076
6077 - Jean-Philippe Barrette-LaPierre made buildconf run better on Mac OS X by
6078   properly using glibtoolize instead of plain libtoolize. (This is made if
6079   glibtool was found and used instead of plain libtool.)
6080
6081 Daniel (29 September 2004)
6082 - Bertrand Demiddelaer fixed curl_easy_reset() so that it doesn't mistakingly
6083   enable the progress meter.
6084
6085 Daniel (28 September 2004)
6086 - "Mekonikum" found out that if you built curl without SSL support, although
6087   your current SSL installation supports Engine, the compile fails.
6088
6089 Daniel (27 September 2004)
6090 - When --with-ssl=PATH is used to the configure script, it no longer uses
6091   pkg-config to figure out extra details. That is now only done if no PATH is
6092   included or if SSL is checked for by default without the --with-ssl option.
6093
6094 Daniel (25 September 2004)
6095 - Peter Sylvester pointed out that CURLOPT_SSLENGINE couldn't even be set to
6096   NULL when no engine was supported. It can now.
6097
6098 Daniel (22 September 2004)
6099 - Dan Fandrich fixed three test cases to no longer use "localhost" but instead
6100   use "127.0.0.1" to avoid requiring that localhost resolves nicely.
6101
6102 - Jean-Claude Chauve fixed an LDAP crash when more than one record was
6103   retrieved.
6104
6105 Daniel (19 September 2004)
6106 - Andreas Rieke pointed out that when attempting to connect to a host without
6107   a service on the specified port, curl_easy_perform() didn't properly provide
6108   an error message in the CURLOPT_ERRORBUFFER buffer.
6109
6110 Daniel (16 September 2004)
6111 - Daniel at touchtunes uses the FTP+SSL server "BSDFTPD-SSL from
6112   http://bsdftpd-ssl.sc.ru/" which accordingly doesn't properly work with curl
6113   when "AUTH SSL" is issued (although the server responds fine and everything)
6114   but requires that curl issues "AUTH TLS" instead. See
6115   http://curl.haxx.se/feedback/display.cgi?id=10951944937603&support=yes
6116
6117   Introducing CURLOPT_FTPSSLAUTH that allows the application to select which
6118   of the AUTH strings to attempt first.
6119
6120 - Anonymous filed bug report #1029478 which identified a bug when you 1) used
6121   a URL without properly seperating the host name and the parameters with a
6122   slash. 2) the URL had parameters to the right of a ? that contains a slash
6123   3) curl was told to follow Location:s 4) the request got a response that
6124   contained a Location: to redirect to "/dir". curl then appended the new path
6125   on the wrong position of the original URL.
6126
6127   Test case 187 was added to verify that this was fixed properly.
6128
6129 Daniel (11 September 2004)
6130 - Added parsedate.c that contains a rewrite of the date parser currently
6131   provided by getdate.y. The new one is MUCH smaller and will allow us to run
6132   away from the yacc/bison jungle. It is also slightly lacking in features
6133   compared to the old one, but it supports parsing of all date formats HTTP
6134   involves (and a fair bunch of others).
6135
6136 Daniel (10 September 2004)
6137 - As found out by Jonas Forsman, curl didn't allow -F to set Content-Type on
6138   text-parts. Starting now, we can do -F "name=daniel;type=text/extra". Added
6139   test case 186 to verify.
6140
6141 - Bug report #1025986. When following a Location: with a custom Host: header
6142   replacement, curl only replaced the Host: header on the initial request
6143   and didn't replace it on the following ones. This resulted in requests with
6144   two Host: headers.
6145
6146   Now, curl checks if the location is on the same host as the initial request
6147   and then continues to replace the Host: header. And when it moves to another
6148   host, it doesn't replace the Host: header but it also doesn't make the
6149   second Host: header get used in the request.
6150
6151   This change is verified by the two new test cases 184 and 185.
6152
6153 Daniel (8 September 2004)
6154 - Modified the test suite to be able to use and run with customized port
6155   numbers. This was always intended but never before possible. Now a simple
6156   change in the runtests.pl script can make all tests use different ports.
6157   The default ports in use from now on are 8990 to 8993.
6158
6159 Daniel (2 September 2004)
6160 - Minor modification of an SSL-related error message.
6161
6162 Daniel (31 August 2004)
6163 - David Tarendash found out that curl_multi_add_handle() returned
6164   CURLM_CALL_MULTI_PERFORM instead of CURLM_OK.
6165
6166 Daniel (30 August 2004)
6167 - Make "Proxy-Connection: close" close the current proxy connection, as Roman
6168   Koifman found out.
6169
6170 Daniel (24 August 2004)
6171 - Fixed a getdate problem by post-replacing the getdate.c file after the
6172   bison/yacc process to add the fix Harshal Pradhan suggested. The problem
6173   caused a crash on Windows when parsing some dates.
6174
6175 Daniel (23 August 2004)
6176 - Roman Koifman pointed out that libcurl send Expect: 100-continue on POSTs
6177   even when told to use HTTP 1.0, which is not correct. Test case 180 and
6178   181 verify this.
6179
6180 - Added test case 182 to verify that zero byte transfers call the callback
6181   properly.
6182
6183 Daniel (20 August 2004)
6184 - Alexander Krasnostavsky made the write callback get called even when a zero
6185   byte file is downloaded.
6186
6187 Daniel (18 August 2004)
6188 - Ling Thio pointed out that when libcurl is built ipv6-enabled, it still did
6189   reverse DNS lookups when fed with a numerical IP-address (like
6190   http://127.0.0.1/), although it doesn't when built ipv6-disabled. libcurl
6191   should never do reverse lookups.
6192
6193 Daniel (17 August 2004)
6194 - Kjetil Jacobsen noticed that when transferring a file:// URL pointing to an
6195   empty file, libcurl would return with the file still open.
6196
6197 - Alexander Krasnostavsky pointed out that the configure script needs to define
6198   _THREAD_SAFE for AIX systems to make libcurl built really thread-safe.
6199
6200   Also added a check for the xlc compiler on AIX, and if that is detect we use
6201   the -qthreaded compiler option
6202
6203 Daniel (16 August 2004)
6204 - libcurl now allows a custom "Accept-Encoding:" header override the
6205   internally set one that gets set with CURLOPT_ENCODING. Pointed out by Alex.
6206
6207 - Roland Krikava found and fixed a cookie problem when using a proxy (the
6208   path matching was wrong). I added test case 179 to verify that we now do
6209   right.
6210
6211 Daniel (15 August 2004)
6212 - Casey O'Donnell fixed some MSVC makefile targets to link properly.
6213
6214 Daniel (11 August 2004)
6215 - configure now defines _XOPEN_SOURCE to 500 on systems that need it to build
6216   warning-free (the only known one so far is non-gcc builds on 64bit SGI
6217   IRIX). (Reverted this change later as it caused compiler errors.)
6218
6219 - the FTP code now includes the server response in the error message when the
6220   server gives back a 530 after the password is provided, as it isn't
6221   necessary because of a bad user name or password.
6222
6223 Version 7.12.1 (10 August 2004)
6224
6225 Daniel (10 August 2004)
6226 - In OpenSSL 0.9.7d and earlier, ASN1_STRING_to_UTF8 fails if the input is
6227   already UTF-8 encoded. This made the certificate verification fail if the
6228   remote server used a certificate with the name UTF-8 encoded.
6229
6230   Work-around brought by Alexis S. L. Carvalho.
6231
6232 Daniel (9 August 2004)
6233 - I fixed the configure script for krb4 to use -lcom_err as well, as I started
6234   to get link problems with it unless I did that on my Solaris 2.7 box. I
6235   don't understand why I started to get problems with this now!
6236
6237 Daniel (5 August 2004)
6238 - Enrico Scholz fixed the HTTP-Negotiate service name to be uppercase as
6239   reported in bug report #1004105
6240
6241 Daniel (4 August 2004)
6242 - Gisle Vanem provided a fix for the multi interface and connecting to a host
6243   using multiple IP (bad) addresses.
6244
6245 - Dylan Salisbury made libcurl no longer accept cookies set to a TLD only (it
6246   previously allowed that on the seven three-letter domains).
6247
6248 Daniel (31 July 2004)
6249 - Joel Chen reported that the digest code assumed quotes around the contents a
6250   bit too much.
6251
6252 Daniel (28 July 2004)
6253 - Bertrand Demiddelaer fixed the host name to get setup properly even when a
6254   connection is re-used, when a proxy is in use. Previously the wrong Host:
6255   header could get sent when re-using a proxy connection to a different target
6256   host.
6257
6258 - Fixed Brian Akins' reported problems with duplicate Host: headers on re-used
6259   connections. If you attempted to replace the Host: header in the second
6260   request, you got two such headers!
6261
6262 - src/Makefile.am now includes the Makefile.inc file to get info about files
6263
6264 Daniel (26 July 2004)
6265 - Made "curl [URL] -o name#2" work as expected. If there's no globbing for the
6266   #-number, it will simply be used as #2 in the file name.
6267
6268 - Bertrand Demiddelaer fixed testing with valgrind 2.1.x and added two missing
6269   newlines in the cookie informationals.
6270
6271 Daniel (24 July 2004)
6272 - I fixed the autobuilds with ares, since they now need to have buildconf run
6273   in the ares dir before the configure script is run.
6274
6275 - Added Casey O'Donnell's curl_easy_reset() function. It has a proto in
6276   curl/curl.h but we have no man page yet.
6277
6278 Daniel (20 July 2004)
6279 - Added buildconf and buildconf.bat to the release archives, since they are
6280   handy for rebuilding curl when using a daily snapshot (and not a pure CVS
6281   checkout).
6282
6283 Daniel (16 July 2004)
6284 - As suggested by Toby Peterson, libcurl now ignores Content-Length data if the
6285   given size is a negative number. Test case 178 verifies this.
6286
6287 Daniel (14 July 2004)
6288 - Günter Knauf has made the Netware builds do without the config-netware.h
6289   files, so they are now removed from the dist packages.
6290
6291 - Günter Knauf made curl and libcurl build with Borland again.
6292
6293 - Andres Garcia fixed the common test 505 failures on windows.
6294
6295 Daniel (6 July 2004)
6296 - Andrés García found out why the windows tests failed on file:// "uploads".
6297
6298 Daniel (2 July 2004)
6299 - Andrés García reported a curl_share_cleanup() crash that occurs when no
6300   lock/unlock callbacks have been set and the share is cleaned up.
6301
6302 Daniel (1 July 2004)
6303 - When using curl --trace or --trace-ascii, no trace messages that were sent
6304   by curl_easy_cleanup() were included in the trace file. This made the
6305   message "Closing connection #0" never appear in trace dumps.
6306
6307 Daniel (30 June 2004)
6308 - Niels van Tongeren found that setting CURLOPT_NOBODY to TRUE doesn't disable
6309   a previously set POST request, making a very odd request get sent (unless
6310   you disabled the POST) a HEAD request with a POST request-body. I've now
6311   made CURLOPT_NOBODY enforce a proper HEAD. Added test case 514 for this.
6312
6313 Daniel (29 June 2004)
6314 - Günter Knauf made the testcurl.pl script capable of using a custom setup
6315   file to easier run multiple autobuilds on the same source tree.
6316
6317 - Gisle fixed the djgpp build and fixed a memory problem in some of the
6318   reorged name resolved code.
6319
6320 - Fixed code to allow connects done using the multi interface to attempt the
6321   next IP when connecting to a host that resolves to multiple IPs and a
6322   connect attempt fails.
6323
6324 Daniel (27 June 2004)
6325 - Based on Rob Stanzel's bug report #979480, I wrote a configure check that
6326   checks if poll() can be used to wait on NULL as otherwise select() should be
6327   used to do it. The select() usage was also fixed according to his report.
6328
6329   Mac OS X 10.3 says "poll() functionality for Mac OS X is implemented via an
6330   emulation layer on top of select(), not in the kernel directly. It is
6331   recommended that programs running under OS X 10.3 prefer select() over
6332   poll(). Configure scripts should look for the _POLL_EMUL_H_ define (instead
6333   of _POLL_H_ or _SYS_POLL_H_) and avoid implementations where poll is not
6334   implemented in the kernel."
6335
6336   Yes, we can probably use select() on most platforms but today I prefered to
6337   leave the code unaltered.
6338
6339 Daniel (24 June 2004)
6340 - The standard curl_version() string now only includes version info about
6341   involved libraries and not about particular features. Thus it will no longer
6342   include info about ipv6 nor GSS. That info is of course still available in
6343   the feature bitmask curl_version_info() offers.
6344
6345 - Replaced all occurances of sprintf() with snprintf(). This is mostly because
6346   it is "A Good Thing" rather than actually fixing any known problem. This
6347   will help preventing future possible mistakes to cause buffer overflows.
6348
6349 - Major reorganization in the host resolve code (again). This time, I've
6350   modified the code to now always use a linked list of Curl_addrinfo structs
6351   to return resolved info in, no matter what resolver method or support that
6352   is available on the platform. It makes it a lot easier to write code that
6353   uses or depends on resolved data.
6354
6355   Internally, this means amongst other things that we can stop doing the weird
6356   "increase buffer size until it works" trick when resolving hosts on
6357   ipv4-only with gethostbyname_r(), we support socks even on libcurls built
6358   with ipv6 enabled (but only to socks servers that resolve to an ipv4
6359   address) and we no longer deep-copy or relocate hostent structs (we create
6360   Curl_addrinfo chains instead).
6361
6362   The new "hostent to Curl_addrinfo" converter function is named Curl_he2ai()
6363   and is slightly naive and simple, yet I believe it is functional enough to
6364   work for libcurl.
6365
6366 Daniel (22 June 2004)
6367 - David Cohen pointed out that RFC2109 says clients should allow cookies to
6368   contain least 4096 bytes while libcurl only allowed 2047. I raised the limit
6369   to 4999 now and made the used buffer get malloc()ed instead of simply
6370   allocated on stack as before. Extended test case 46 to include a cookie with
6371   very huge content to verify the fix.
6372
6373 - Günter Knauf fixed getdate.y to remove a few warnings. I removed the
6374   ifdef'ed test we never ever use anyway.
6375
6376 - Gisle Vanem fixed the certificate wildcard checks to support a '*'-letter
6377   anywhere in the wildcard string, support multiple '*'-letters in the
6378   wildcard and to allow the '*'-letter to match a string that includes a dot.
6379
6380 Daniel (21 June 2004)
6381 - testcurl.sh is now removed completely, tests/testcurl.pl is the script to
6382   use when autobuilding curl!
6383
6384 - Kjetil Jacobsen brought my attention to the fact that you cannot properly
6385   abort an upload with the readfunction callback, since returning 0 or -1 only
6386   stops the upload and libcurl will continue waiting for downloaded data and
6387   the server often waits for the rest of the upload data to arrive.
6388
6389   Thus, I've now added the ability for read callbacks to return
6390   CURL_READFUNC_ABORT to abort an upload from a read callback. This will stop
6391   the transfer immediately with a CURLE_ABORTED_BY_CALLBACK return code.
6392
6393   Test case 513 was added to verify that it works. I had to improve the test
6394   HTTP server too to dump the request to a file even when the client
6395   disconnects prematurely.
6396
6397 Daniel (19 June 2004)
6398 - Luca Alteas provided a test case with a failing curl operation: when we POST
6399   to a site with --digest (or similar) set, and the server responded with a 302
6400   Location: to the "authprobe" request, it was not treated correctly. We still
6401   will behave badly if FOLLOWLOCATION is enabled for this case, but I'm not
6402   in the mood to dive into this right now and will leave it as-is for now.
6403   Verified my fix with test case 177.
6404
6405 Daniel (18 June 2004)
6406 - Gisle Vanem's patch that provides more details from the SSL layers (if you
6407   use an OpenSSL version that supports it). It also introduces two new types
6408   of data that can be sent to the debug callback: CURLINFO_SSL_DATA_IN and
6409   CURLINFO_SSL_DATA_OUT.
6410
6411 - With David Byron's test server I could repeat his problem and make sure that
6412   POSTing over HTTPS:// with NTLM works fine now. There was a general problem
6413   with multi-pass authentication with non-GET operations with CONNECT.
6414
6415 Daniel (16 June 2004)
6416 - Modified to keep the upload byte counter in an curl_off_t, not an int as
6417   before. 32bits is not enough. This is most likely the bug Jean-Louis Lemaire
6418   reported that makes 2GB FTP uploads to report error ("unaligned file sizes")
6419   when completed.
6420
6421 Daniel (15 June 2004)
6422 - Luca Alteas reported a problem that I fixed: if you did a POST with
6423   CURLAUTH_DIGEST set but the server didn't require any authentication,
6424   libcurl would repeatedly send HEAD lots of times until it gives up. This was
6425   actually the case for all multi-pass authentications. Added test case 174,
6426   175 and 176 to verify this.
6427
6428 Daniel (14 June 2004)
6429 - Multipart formposts uploading files no longer inserts the files themselves
6430   into the huge prebuilt chunk. This enables libcurl to formpost files that is
6431   larger than the amount of system memory. When the file given is passed on
6432   stdin, libcurl still uses the old method of reading the full fill before the
6433   upload takes place. This approach was selected in order to not alter the
6434   behavior for existing applications, as when using stdin libcurl can't know
6435   the size of the upload and chunked transfer-encoding can only be used on
6436   HTTP 1.1 servers.
6437
6438 Daniel (13 June 2004)
6439 - Gisle found out that we did wildcard cert name checks wrong, so that parts
6440   of the check wrongly was case sensitive.
6441
6442 Daniel (11 June 2004)
6443 - Tim Sneddon brought a minor VMS fix to make curl build properly on his VMS
6444   machine. He also had some interesting libcurl patches... they might be able
6445   to do in a slightly nicer way. Discussions are in progress.
6446
6447 Daniel (10 June 2004)
6448 - Gisle Vanem brought code cleanupsm better verbose output and better connect
6449   timeout handling when attempting to connect to a host that resolves to
6450   multiple IP addresses.
6451
6452 - Steven Bazyl and Seshubabu Pasam pointed out a bug on win32 when freeing the
6453   path after a file:// transfer.
6454
6455 Daniel (9 June 2004)
6456 - Alexander Krasnostavsky made 'configure --disable-http' work to build libcurl
6457   without HTTP support. I added a new return code for curl_formadd() in case
6458   libcurl is built with HTTP disable: CURL_FORMADD_DISABLED.
6459
6460 - Alexander Krasnostavsky pointed out a missing file in the generated
6461   curllib.dsp file, and now people building with this should get a libcurl.lib
6462   file generated as it used to do before we generated this file.
6463
6464 Daniel (8 June 2004)
6465 - Marty Kuhrt fixed a minor build problem for VMS.
6466
6467 Daniel (7 June 2004)
6468 - Reverted the configure check from the 4th since it obviously didn't work.
6469   Remade it in a different manner that hopefully works better.
6470
6471 Daniel (4 June 2004)
6472 - Günter Knauf brought patches to make curl build fine on NetWare again.
6473
6474 - Made the configure checks for strerror_r() not exit the configure script
6475   when built for cross-compiling.
6476
6477 Daniel (3 June 2004)
6478 - Chris Gaukroger pointed out that 'make test' attempts to run the tests even
6479   if curl is built cross-compiled. I've now made it output a short message
6480   instead, saying it isn't possible to do.
6481
6482 - Alexander Krasnostavsky brought FTP 3rd party transfer support to libcurl.
6483   You can now use libcurl to transfer files between two remote hosts using
6484   FTP. There are a bunch of new options to control this with:
6485    CURLOPT_SOURCE_HOST
6486    CURLOPT_SOURCE_USERPWD
6487    CURLOPT_SOURCE_PATH
6488    CURLOPT_SOURCE_PORT
6489    CURLOPT_PASV_HOST
6490    CURLOPT_SOURCE_PREQUOTE
6491    CURLOPT_SOURCE_POSTQUOTE
6492
6493   (They still remain to be documented properly in the curl_easy_setopt man
6494   page.)
6495
6496   When using this, the ordinary CURLOPT_URL specifies the target URL, and you
6497   specify the source data with these additional options. ftp3rdparty.c is a
6498   new example source code showing how to use this.
6499
6500 - Vincent Bronner fixed the HTTP Digest code to use the proxy user name and
6501   password when doing proxy authentication, it previously always used the host
6502   user name and password!
6503
6504 Daniel (2 June 2004)
6505 - CURLOPT_UPLOAD and CURLOPT_PUT now do the exact same thing internally, which
6506   fixes some old confusions on when which of these should be used and what the
6507   differences are.
6508
6509 - Applied Gisle's fixes to make curl build fine with lcc-win32
6510
6511 Version 7.12.0 (2 June 2004)
6512
6513 Daniel (1 June 2004)
6514 - I clarified the --create-dirs option somewhat in the curl man page.
6515
6516 - Renaud Duhaut corrected the curl_unescape man page.
6517
6518 - David Byron modified one of Massimiliano Ziccardi's recent MSVC makefile
6519   changes to now again use the mm lib by default.
6520
6521 Daniel (26 May 2004)
6522 - Mohun Biswas added release-zlib and debug-zlib targets to the MSVC libcurl
6523   Makefile
6524
6525 - David Byron reported a problem with proxy authentication when doing CONNECT,
6526   like when accessing HTTPS sites wiht a proxy. This probably broke when I
6527   rewrote the auth stuff recently.
6528
6529 - I added fileupload.c in the examples directory, showing how an upload to a
6530   file:// URL is made.
6531
6532 Daniel (25 May 2004)
6533 - Massimiliano Ziccardi updated the MSVC makefiles.
6534
6535 Daniel (24 May 2004)
6536 - libcurl now supports "uploading" to file:// URLs. Test 204 and 205 were
6537   added to verify.
6538
6539 - Simon Josefsson added a idn_free() function in libidn 0.4.5 as a reaction to
6540   Gisle's previous mail. We now use this function, and thus we require libidn
6541   0.4.5 or later. No earlier version will do.
6542
6543 - Robert D. Young reported that CURLOPT_COOKIEFILE and CURLOPT_COOKIE could
6544   not be used both in one request. Fixed it and added test case 172 to verify.
6545
6546 Daniel (21 May 2004)
6547 - While talking to host a.b.c, libcurl did wrongly not accept cookies that
6548   were set to the domain .a.b.c (that is with a dot prefix). This is now fixed
6549   and test case 171 verifies it.
6550
6551 Daniel (20 May 2004)
6552 - Jesse Noller reported that the upload speed info reported by libcurl was
6553   wrong. The same was true for the download speed. Fixed now.
6554
6555 Daniel (19 May 2004)
6556 - David Byron added test case 170 - this used to crash the previous version of
6557   curl.
6558
6559 Daniel (17 May 2004)
6560 - Peter Sylvester's patch that addresses two flaws in the peer certificate
6561   name verification:
6562   o when multiple common names are used (as in the curl tests), the last name
6563     needs to be selected.
6564   o allow comparing with encoded values, at least with BMP and ISO latin1
6565     encoded T61strings.
6566
6567 - All 191 test cases run through the torture test OK! 'make test-torture' is
6568   now available in the root makefile (on configure-based environments).
6569
6570 Daniel (14 May 2004)
6571 - With a slightly modified ftpserver.pl I've now run almost all tests through
6572   with runtests.pl -t. This is goodness!
6573
6574 - Since I have been unable to contact the CVS admins for several months, I've
6575   decided that the current CVS hosting was not good enough. I've now moved the
6576   CVS repo once again, see README for updated cvs checkout instructions.
6577
6578 Daniel (13 May 2004)
6579 - runtests.pl -t now runs fine all the way to test 100. I believe test case
6580   100 fails because of an FTP server problem.
6581
6582 Daniel (12 May 2004)
6583 - General cleanups all over to make libcurl survive and do well when a memory
6584   function returns NULL. runtests.pl -t now works fine for the first 26 test
6585   cases.
6586
6587 Daniel (11 May 2004)
6588 - Seshubabu Pasam provided a patch that introduces curl_global_init_mem() -
6589   like normal curl_global_init() but allows the app to replace all memory
6590   functions with its own set. I modified it slightly.
6591
6592 - Based on Luca Alteas' comments, I modified the curllib.dsp generation code.
6593
6594 Daniel (10 May 2004)
6595 - Gisle mailed Simon Josefsson (of libidn fame) about the benefits of a
6596   separate free()-function by that lib to make sure the memory is freed by the
6597   same memory subsystem that allocated it. He responded positively and this
6598   will likely cause us to require a newer version of libidn as soon as Simon
6599   releases one with such a libidn_free() function.
6600
6601 - James Bursa made runtests.pl's -t option work for any given test case, and I
6602   edited to allow -g too. Not even test case 1 worked...
6603
6604 - Luca Altea made the nc= field not use quotes in outgoing HTTP Digest headers.
6605
6606 - Andrés García fixed a problem in the test script that made it fail to
6607   recognize our own running HTTP server.
6608
6609 Daniel (7 May 2004)
6610 - James Bursa fixed the memanalyze.pl script to conder malloc(0) areas OK to
6611   free() and he made two failed-resolve error messages use the new display-
6612   name instead of the internally-used name.
6613
6614 - Gisle Vanem tried curl with
6615   www.etdomenenavnkanmaksimaltinneholdesekstitrebokstaversliksomdette.com
6616   which caused problems, and I fixed the single zero byte buffer overwrite
6617   that occurred (due to a stupid protocol buffer size and parser).
6618
6619 - Made the lib/curllib.dsp file get generated automaticly when a distribution
6620   package is made, with the msvcproj.* files as templates and all
6621   win32-sources added. I think this can be made to work better than the always
6622   lagging-behind previous approach. I'm not sure this builds a working project
6623   file right now though!
6624
6625 Daniel (6 May 2004)
6626 - Michael Benedict brought a fix that fills in the errorbuffer properly when
6627   ares fails to resolve a name for a case not previously dealt with like this.
6628
6629 Daniel (5 May 2004)
6630 - Joe Halpin fixed the annoying typecast warning in lib/ldap.c
6631
6632 - Gisle Vanem fixes:
6633   o memdebug to not access NULL on several places
6634   o libcurl.def; curl_formparse is gone.
6635   o progress.c; fixed the percent values being trunced to 0.
6636   o if2ip.*; constified the 'interface' argument.
6637
6638 - Tor Arntsen reported that many of his autobuilds froze and I found and fixed
6639   a problem introduced with the HTTP auth overhaul that could lead to a
6640   never-ending internal request-loop due to un-initialized variables!
6641
6642 - Removed several compiler warnings on various compilers/platforms.
6643
6644 Daniel (4 May 2004)
6645 - curl_formparse() has been removed from the library. It has been marked and
6646   mentioned as deprecated for several years.
6647
6648 Daniel (3 May 2004)
6649 - Rewritten HTTP authentication code. The previous code could not properly
6650   deal with the added test cases 167, 168 and 169. I've now rewritten the code
6651   to better separate host and proxy authentication and not re-use the same
6652   variables as much as before as it proved non working in the more involved
6653   cases. All the current tests run OK now, and so do the new ones. The curl
6654   tool got a new option named --proxy-digest to enable HTTP Digest
6655   authentication with the proxy. I also made the library support it.
6656
6657 - Gisle Vanem made the LDAP code work with wldap32.dll as supplied with
6658   Win-98/ME/2000/XP, so no extra .dlls are required when curl/libcurl is used
6659   on these Windows versions.
6660
6661 Daniel (30 April 2004)
6662 - runtests.pl now scans the valgrind log for valgrind-detected memory leaks
6663   after each test case if valgrind was found and used.
6664
6665 - I modified the app-code in curl to include the new lib/curlx.h and only
6666   access those functions using the curlx_-prefix in preparation for the future
6667   removal of several curl_-functions from the public libcurl API.
6668
6669 - Introduced lib/curlx.h as a single header to provide the curlx_-functions
6670   to apps.
6671
6672 - Added notices in the man pages for curl_getenv, curl_mprintf, curl_strequal
6673   and curl_strnequal that they are subject for removal in a future release.
6674   STOP USING THESE FUNCTIONS.
6675
6676 - Mihai Ionescu noticed he couldn't do formposts with whitespace in the file
6677   names and yes, I broke that on April 23. Sigh. I fixed it now and added
6678   test case 166 to verify it.
6679
6680 - Luca Altea pointed out a mistake left from the Digest patch of yesterday.
6681
6682 Daniel (29 April 2004)
6683 - Made IDN domains work when sending requsts over HTTP proxy as well. Added
6684   test case 165 to verify the functionality.
6685
6686 - Fixed a bug in the new internal host name setup when re-using connections.
6687
6688 - James Bursa found out that curl_easy_duphandle() with ares-built libcurl
6689   created a bad handle that would crash in the first name resolve attempt. This
6690   is now fixed and test case 512 was added to verify it.
6691
6692 - Luca Altea provided a major HTTP Digest code fix and cleanup. We now follow
6693   the Digest RFC a lot better.
6694
6695 - Gisle Vanem made the SSL code use ERR_error_string_n() where applicable.
6696
6697 Daniel (27 April 2004)
6698 - I remodeled Gisle's IDN code slightly and now we convert both the host name
6699   and proxy name to the ACE encoded version to use internally for resolves and
6700   cookies etc. They are now using one 'struct hostname' each that keep both
6701   the original name and the possibly encoded name. IDN resolves work for me
6702   now using ipv6, ipv4 and ares resolving. Even cookies on IDN sites seem to
6703   do right. I got some failures at first when CHARSET wasn't set at all which
6704   confused libidn completely and it decided by encoding of choice was
6705   'ANSI_X3.4-1968'...
6706
6707 - made 'configure --without-libidn' work
6708
6709 Daniel (25 April 2004)
6710 - Fixed the src/hugehelp.c file to include "setup.h" instead of "config.h" to
6711   make the problems with USE_MANUAL on windows go away.
6712
6713 - configure --without-ssl could still wrongly include some OpenSSL info in the
6714   Makefiles if pkg-config had info about OpenSSL. Bug #941762 reported by
6715   Martin.
6716
6717 - Since we can now build and use quite a large set of 3rd party libraries, I
6718   decided I would make configure produce a summary at the end showing what
6719   libraries it uses and if not, what option to use to make it use that. I also
6720   added some other random info that is nice in a "configure summary" output.
6721
6722 - Applied TommyTam's patch that now make curl work with telnet and stdin
6723   properly on Windows.
6724
6725 - The changes for today below were made by me and Gisle Vanem.
6726
6727   The file previously known as hostip.c has now undergone a huge cleanup and
6728   split:
6729
6730   hostip.c explained
6731   ==================
6732
6733   The main COMPILE-TIME DEFINES to keep in mind when reading the host*.c
6734   source file are these:
6735
6736   CURLRES_IPV6 - this host has getaddrinfo() and family, and thus we use
6737   that. The host may not be able to resolve IPv6, but we don't really have to
6738   take that into account. Hosts that aren't IPv6-enabled have CURLRES_IPV4
6739   defined.
6740
6741   CURLRES_ARES - is defined if libcurl is built to use c-ares for asynchronous
6742   name resolves. It cannot have ENABLE_IPV6 defined at the same time, as
6743   c-ares has no ipv6 support. This can be Windows or *nix.
6744
6745   CURLRES_THREADED - is defined if libcurl is built to run under (native)
6746   Windows, and then the name resolve will be done in a new thread, and the
6747   supported asynch API will be the same as for ares-builds.
6748
6749   If any of the two previous are defined, CURLRES_ASYNCH is defined too. If
6750   libcurl is not built to use an asynchronous resolver, CURLRES_SYNCH is
6751   defined.
6752
6753   The host*.c sources files are split up like this:
6754
6755   hostip.c   - method-independent resolver functions and utility functions
6756   hostasyn.c - functions for asynchronous name resolves
6757   hostsyn.c  - functions for synchronous name resolves
6758   hostares.c - functions for ares-using name resolves
6759   hostthre.c - functions for threaded name resolves
6760   hostip4.c  - ipv4-specific functions
6761   hostip6.c  - ipv6-specific functions
6762
6763   The hostip.h is the single united header file for all this. It defines the
6764   CURLRES_* defines based on the config*.h and setup.h defines.
6765
6766 - Added function header comments to many functions in an attempt to better
6767   explain the purpose of them all.
6768
6769 - configure --with-libidn is now supported. It makes the configure script
6770   check for libidn libs and include files in the prefix path given. If you
6771   say --with-libidn=/usr/local, it will check for the lib in /usr/local/lib
6772   and the includes in /usr/local/include etc.
6773
6774 - curl_version_info() now returns a struct aged CURLVERSION_THIRD including
6775   libidn version info. The string curl_version() returns also includes libidn
6776   version info, if available.
6777
6778 Version 7.11.2 (26 April 2004)
6779
6780 Daniel (25 April 2004)
6781 - Erwin Authried pointed out that configure --disable-manual didn't do right
6782   if you already had a src/hugehelp.c source file present (which most people
6783   do I guess). It now uses the USE_MANUAL define properly.
6784
6785 Daniel (23 April 2004)
6786 - Gisle Vanem found and fixed a memory leak when doing (failing) Windows
6787   threaded name resolves.
6788
6789 - I also added test case 163 just to make sure -F "var=<file" works fine and
6790   can pass on characters such as newlines, carriage-return and tabs.
6791
6792 - When we added test case 162 without adding the necessary requirement field
6793   in the test meta data we could see that curl didn't complain if you used
6794   --proxy-ntlm even if the underlying libcurl it uses has no NTLM support! I
6795   now made it check this first, and it now exists with a "the installed
6796   libcurl version doesn't support this" message if it happens again.
6797
6798 Daniel (22 April 2004)
6799 - David Byron found and fixed a small bug with the --fail and authentication
6800   stuff added a few weeks ago.  Turns out that if you specify --proxy-ntlm and
6801   communicate with a proxy that requires basic authentication, the proxy
6802   properly returns a 407, but the failure detection code doesn't realize it
6803   should give up, so curl returns with exit code 0. Test case 162 added to
6804   verify the functionality.
6805
6806 - allow newlines in the contents when doing -F "var=[contents]"
6807   Robert Marlow reported.
6808
6809 - If a transfer is found out to be only partial, libcurl will now treat that
6810   as a problem serious enough to skip the final QUIT command before closing
6811   the control connection. To avoid the risk that it will "hang" waiting for
6812   the QUIT response. Added test case 161 to verify this.
6813
6814 Daniel (21 April 2004)
6815 - Modified the heuristics for dealing with the test 160 scenario. When a
6816   connection is re-used and nothing at all is received from it (because the
6817   server closes the connection), we will now retry the request on a fresh new
6818   connection. The previous ECONNRESET stuff from January 30 was removed again
6819   as it didn't detect the situation good enough.
6820
6821 Daniel (20 April 2004)
6822 - Added test case 160 to verify that curl works correctly when it gets a
6823   connection reset when trying to re-use a connection. It should then simply
6824   create a new connection and resend the request.
6825
6826 Daniel (19 April 2004)
6827 - No more 512 byte limit for host name (inclusing name + password) in libcurl.
6828   An added bonus is that we use less memory for the typical (shorter URL)
6829   case.
6830
6831 - Cleaned up the sources to better use the terms 'hostname' and 'path'
6832   internally when referring to that data. The buffers used for keep that info
6833   is called 'namebuffer' and 'pathbuffer'. Much easier to read and understand
6834   than the previous mess.
6835
6836 Daniel (15 April 2004)
6837 - Modified runtests.pl again to remove all log files in the log/ dir between
6838   each test, and then made -p display all non-zero byte files in the log dir.
6839   It should make that data more usable and contain less rubbish.
6840
6841 - ftpserver.pl now produces log files more similar to how the sws ones look
6842   and they now also contains a bit more details to help debugging ftp
6843   problems.
6844
6845 - Removed the fixed maximum amount of dir levels the FTP code supported.
6846   Previously we had a fixed array for 100 levels, now we save space in each
6847   handle by allocating only for a few level by default and then enlarging that
6848   in case of need (with no maximum depth). Adjusted test case 142 to verify
6849   that 150 dir levels work fine.  An added bonus is that we use less memory
6850   for the typical (not very deep) case.
6851
6852 Daniel (14 April 2004)
6853 - Asking for CURL_IPRESOLVE_V6 when ipv6 addresses can't be resolved will
6854   now cause the resolve function to return NULL immediately. This flaw was
6855   pointed out by Gisle Vanem.
6856
6857 - Gisle Vanem made curl -4/-6 actually set the desired option to libcurl.
6858
6859 - runtests.pl now has a new option (-p) that will display "interesting" log
6860   files to stdout in case of a test failure. This is primarily intended to be
6861   used in the 'full-test' make target that is used by the autobuild tests, as
6862   we then get a much better chance to understand (remote) test failures based
6863   on autobuild logs alone.
6864
6865 Daniel (13 April 2004)
6866 - Gisle Vanem made the multi interface work again on Windows even when built
6867   without ares. Before this, select() would return -1 during the name resolve
6868   phase since curl_multi_fdset() didn't return any fd_set at all which wasn't
6869   appreciated!
6870
6871 - curl_easy_duphandle() now duplicates the tcp_nodelay info as well.
6872
6873 Daniel (11 April 2004)
6874 - Applied David Byron's patch for the MSVC libcurl makefile for builds with
6875   zlib.
6876
6877 Daniel (9 April 2004)
6878 - Dirk Manske improved the timer resolution for CURLINFO_*_TIME, it can now
6879   be down to usec if the system sypports it.
6880
6881 Daniel (7 April 2004)
6882 - A request that sends "Expect: 100-continue" and gets nothing but a single
6883   100 response back will now return a CURLE_GOT_NOTHING. Test 158 verifies.
6884
6885 - The strtoofft() macro is now named curlx_strtoofft() to use the curlx_*
6886   approach fully.
6887
6888 Daniel (6 April 2004)
6889 - Gisle Vanem's fixed bug #927979 reported by Nathan O'Sullivan. The problem
6890   made libcurl on Windows leak a small amount of memory in each name resolve
6891   when not used as a DLL.
6892
6893 - New authentication code added, particularly noticable when doing POST or PUT
6894   with Digest or NTLM. libcurl will now use HEAD to negotiate the
6895   authentication and when done perform the requested POST. Previously libcurl
6896   sent POST immediately and expected the server to reply a final status code
6897   with an error and then libcurl would not send the request-body but instead
6898   send then next request in the sequence.
6899
6900   The reason for this change is due to IIS6 barfing on libcurl when we attempt
6901   to POST with NTLM authentication. The reason for the problems is found in
6902   RFC2616 section 8.2.3 regarding how servers should deal with the 100
6903   continue request-header:
6904
6905         If it responds with a final status code, it MAY close the transport
6906         connection or it MAY continue to read and discard the rest of the
6907         request.
6908
6909   Previous versions of IIS clearly did close the connection in this case,
6910   while this newer version decided it should "read and discard". That would've
6911   forced us to send the whole POST (or PUT) data only to have it discarded and
6912   then be forced to send it again. To avoid that huge penality, we switch to
6913   using HEAD until we are authenticated and then send the POST.
6914
6915   The only actual drawback I can think of (except for the odd sites that might
6916   treat HEAD differently than they would treat POST/PUT when given the same
6917   URL) is that if you do POST with CURLAUTH_ANY set and the site requires NO
6918   authentication, libcurl will still use a HEAD in a first round and then do a
6919   POST.
6920
6921   If you do a HEAD or a GET on a site using CURLAUTH_ANY, libcurl will send
6922   an un-authenticated request at once, which then is the only request if the
6923   site requires no auth.
6924
6925   Alan Pinstein helped me work out the protocol details by figuring out why
6926   libcurl failed and what IIS6 expects.
6927
6928 - The --limit-rate logic was corrected and now it works a lot better for
6929   higher speeds, such as '10m' or similar. Reported in bug report #930249.
6930
6931 - Introducing curlx_tvnow() and curlx_tvdiff() using the new curlx_* fashion.
6932   #include "timeval.h" from the lib dir to get the protos etc.  Note that
6933   these are NOT part of the libcurl API. The curl app simply uses the same
6934   source files as the library does and therefore the file needs to be compiled
6935   and linked with curl too, not just when creating libcurl.
6936
6937 - lib/strerror.c no longer uses sys_nerr on non-windows platforms since it
6938   isn't portable enough
6939
6940 Daniel (2 April 2004)
6941 - In the curl_strnqual.3 man page, we now prepend the man3 dir to the file
6942   name to work better. As pointed out by Robin Kay.
6943
6944 - Andrés García updated the mingw makefiles.
6945
6946 - Dirk Manske fixed a problem I recently added in the progress meter code that
6947   broke subsecond resolution for CURLINFO_TOTAL_TIME. He also pointed out a
6948   mistake in the code that produces the final update of the progress meter
6949   that would often prevent it from actually being updated that final time.
6950
6951 Daniel (1 April 2004)
6952 - Dirk Manske fixed a memory leak that happened when we use ares for name
6953   resolves and decides to time-out before ares does it. This fix uses the
6954   brand new ares_cancel() function which is not present in c-ares 1.1.0.
6955
6956   When told to enable ares, the configure script now checks for presence of
6957   the ares_cancel function to alert users if they attempt to use a too old
6958   c-ares library.
6959
6960 Daniel (31 March 2004)
6961 - Roy Shan fixed a flaw that prevented ares name resolve timeouts to occur!
6962
6963 - Dirk Manske found out that libcurl timed out waiting for resolves far too
6964   easy when libcurl was built to use (c-)ares for name resolving.
6965
6966 - Further Digest fixing and a successful test case 153 now makes me believe
6967   Mitz Wark's problems are fixed.
6968
6969 - Andres Garcia figured out that test case 63, while working, only proved a
6970   flaw in libcurl's 'http_proxy' parser when a user name and password is
6971   provided. The user name was not extracted properly (and 'http' was always
6972   used as user name).
6973
6974 - Andrés García fixed compiler warnings in our ioctlsocket() usage.
6975
6976 Daniel (30 March 2004)
6977 - Joe Halpin faced problems with the getnameinfo() argument ai_flags and the
6978   particular bit named 'NI_WITHSCOPEID' on Solaris 9 for Intel.  I've now
6979   written a configure test that checks for a working NI_WITHSCOPEID
6980   implemenation. No code uses the result from this test yet, it is still
6981   experimental. James Carlson wrote in comp.unix.solaris: "It's a bug
6982   (5006623) -- it's not supported and shouldn't be in the header file."
6983
6984 - I provided Mitz Wark with a first patch in order to fix libcurl's problems
6985   to re-negotiate Digest authentication (when 'stale=true' is included in the
6986   response header).
6987
6988 - Roy Shan discovered that the multi interface didn't properly timeout name
6989   lookups which could make handles get stuck in that state and thus never get
6990   completed. I've produced a first test patch that attempts to correct this.
6991
6992 - David Byron's patch was appplied to make CURLOPT_FAILONERROR work nicely
6993   even with authentcations such as NTLM or Digest enabled. Test cases 150, 151
6994   and 152 were added to verify the functionality.
6995
6996 Daniel (29 March 2004)
6997 - Gisle Vanem updated files for the djgpp/MS-DOS build.
6998
6999 - Andrés García helped me work out a fix for the runtests.pl script to make
7000   the file:// tests run fine when tested with the mingw-built version of curl.
7001
7002 - Fixed an include issue with netinet/tcp.h on AIX, based on input by Tor.
7003   This also required a minor fix of the configure script.
7004
7005 - The postit2.c source example used the wrong struct name for the post data.
7006
7007 Daniel (26 March 2004)
7008 - Gisle Vanem improved ipv6 support on windows by making the curl build to use
7009   the correct getaddrinfo() function.
7010
7011 Daniel (25 March 2004)
7012 - It turned out that AIX, despite having a "thread-safe libc", doesn't offer
7013   all traditional functions thread-safe. This URL is informative on this
7014   subject:
7015
7016     http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \
7017     genprogc/thread_quick_ref.htm
7018
7019   As a result of this, we now check for three *_r() functions on recent AIX
7020   versions as well that the URL mentions aren't thread-safe in AIX 5.1.
7021
7022 - renamed curl_strerror.[ch] to strerror.[ch]
7023
7024 - Joe Halpin added CURLOPT_TCP_NODELAY and --tcp-nodelay to make it possible
7025   for users to disable the Nagle algorthim-usage.
7026
7027 - Tor Arntsen provided some interesting strerror_r() knowledge. glibc has its
7028   own API which differs from the POSIX one. Daniel adjusted the configure
7029   script to detect the version in use, and the code now uses the new defines
7030   accordingly.
7031
7032 - Fixed some build flaws with the new lib/curl_strerror.c source file.
7033
7034 Daniel (24 March 2004)
7035 - Gisle Vanem's fix to replace the bad use of strerror(). This introduces
7036   Curl_strerror() that attempts to be thread-safe _and_ works on Windows too!
7037
7038 - Tor Arntsen spell-fixed lots of libcurl man pages.
7039
7040 - Tor Arntsen made testcurl.pl work with older perl 5 versions, and Daniel
7041   made it not use chdir .. to go back, as that isn't very good when you've
7042   setup a testdir containing symlinks.
7043
7044 - Added a check for strerror_r() in the configure script.
7045
7046 Daniel (23 March 2004)
7047 - Added Greg Hewgill's testcurl.pl script to CVS. We have not moved over to
7048   use this script for the real distributed testing just yet, but it is only
7049   a matter of time.
7050
7051 - Gisle Vanem provided code that makes curl report a better error message
7052   if --interface fails on windows.
7053
7054 - The regular progress meter is now fixed to never wrap due to long lines. All
7055   fields are now static sized. If the time in the time fields get a time value
7056   that would represent a time that is 100 hours or more (if not, it remains
7057   using a HH:MM:SS display), it switches first to a "NNNd NNh" display (for
7058   days and hours) and if that isn't enough it switches to a "NNNd" display if
7059   it is more than 999 days.
7060
7061   Several of the calculations were also moved to fixed-point math instead of
7062   using doubles.
7063
7064 Daniel (22 March 2004)
7065 - Glen Nakamura noticed CURLINFO_CONTENT_LENGTH_DOWNLOAD didn't work as it
7066   used to do if CURLOPT_NOBODY is set TRUE.
7067
7068 - Kevin Roth patched the cygwin package makefile and README to adjust to
7069   new cygwin packaging guidelines.
7070
7071 - Enabled "NT responses" in the NTLM authentication. Doing this simply means
7072   that we provide an extra chunk of data in each "type-3 message". The only
7073   reason for doing this is that it seems that using only the "Lanmanager hash"
7074   (as we've been doing until now) doesn't support passwords longer than 14
7075   characters and it turns out there are users out there who want to use
7076   libcurl and NTLM with such passwords! ;-) Seven NTLM-related test cases were
7077   updated accordingly. Mentioned as issue 29 in TODO-RELEASE, bug report
7078   #915609
7079
7080 - Moved the generated libcurl version info to a new header file, named
7081   curl/curlver.h. Now interested parties can include ONLY version info, should
7082   anyone want that (and it seems at least some windows resource files would).
7083   Mentioned as issue 27 in TODO-RELEASE.
7084
7085 Daniel (21 March 2004)
7086 - Fixed the root Makefile to use tabs for the netware target. Günter Knauf
7087   pointed this out.
7088
7089 - Marty Kuhrt's VMS cleanup
7090
7091 - Thomas Schwinge made buildconf recognize ACLOCAL_FLAGS to invoke aclocal
7092   with particular pre-determined options.
7093
7094 Version 7.11.1 (19 March 2004)
7095
7096 Daniel (18 March 2004)
7097 - Tor Arntsen brought some info about SGI IRIX:
7098
7099   IRIX supports 3 different executable/object formats, -32, -n32 and -64.
7100   -n32 is default 32-bit format, -32 is the "old" 32-bit format, and -64 is
7101   the 64-bit format.  Libraries for the different formats are in lib, lib32
7102   and lib64 respectively.
7103
7104   We've now adjusted the configure script to adapt to this when scanning for
7105   3rd party libs, such as OpenSSL.
7106
7107 Daniel (17 March 2004)
7108 - Watz pointed out a few missing files in the MSVC project description file.
7109
7110 - Günter Knauf brought patches, code and makefiles to build curl on Novell
7111   NetWare.
7112
7113 Daniel (15 March 2004)
7114 - Lots of libcurl man pages were updated to contain references to other man
7115   pages the recognized way so that they appear as nice hyperlinks in the HTML
7116   versions.
7117
7118 - buildconf now checks the m4 version too, since autoconf requires a GNU m4
7119   version to build proper configure scripts.
7120
7121 Daniel (12 March 2004)
7122 - Added CURLOPT_POSTFIELDSIZE_LARGE, the large file version of
7123   CURLOPT_POSTFIELDSIZE to allow POSTs larger than 2GB.
7124
7125 - David Byron fixed an uninitialized variable case/crash.
7126
7127 Daniel (10 March 2004)
7128 - Jeff Lawson fixed the SSL connection to deal with received signals during the
7129   connect.
7130
7131 - Changed the OS string for win32 to become "i386-pc-win32".
7132
7133 Daniel (9 March 2004)
7134 - Changed the internals to use curl_socket_t for socket variable type. This
7135   should enable us to build with less warnings on Windows, where SOCKET is
7136   used which is an unsigned int, while most other platforms use a mere int.
7137
7138 - Modified lib/config-win32.h to build fine on MSVC again.
7139
7140 Version 7.11.1-pre1 (8 March 2004)
7141
7142 Daniel (8 March 2004)
7143 - Minor fix to make curl CURL_VERSION_LARGEFILE is only set if curl_off_t is
7144   larger than 4 bytes.
7145
7146 Daniel (4 March 2004)
7147 - Improved PUT/POST with NTLM/Digest authentication, the so called issue 12.
7148
7149 - Modified the test HTTP server a lot to work with the upcoming changes for
7150   PUT/POST with NTLM/Digest authentication (like test case 88). Added Andrés
7151   García's win32-changes. Improved the logging.
7152
7153 - Fixed the file:-related progress/getinfo stuff a bit more.
7154
7155 Daniel (4 March 2004)
7156 - I corrected a problem with the multi interface when following a Location:
7157   header or when doing multiple-request authentications. A subsequent request
7158   could erroneously re-use a previous connection that was sent with
7159   Connection: close. Christopher R. Palmer reported.
7160
7161 - Andrés García patched curl to prevent warnings while compiling with mingw,
7162   mainly because it is now possible to have both WIN32 and HAVE_CONFIG_H
7163   defined.
7164
7165 - When transferring files from a file: URL, the progress meter and other
7166   transfer metrics were not updated properly.
7167
7168 - David Byron provided a "version resource" file to the curl executable for
7169   the windows builds.
7170
7171 Daniel (3 March 2004)
7172 - David Byron's work on making libcurl only require winsock 1.1 on Windows
7173   machines.
7174
7175 - More variable cleanups based on compiler warnings generated by Tor Arntsen's
7176   autobuilds with MIPSPro.
7177
7178 - Joe Halpin helped us fix some pedantic compiler warnings on FreeBSD.
7179
7180 - Applied Tom Bates' patch to build on nsr-tandem-nsk.
7181
7182 - Dan Fandrich corrected some flaws in the configure GSS detection.
7183
7184 Daniel (2 March 2004)
7185 - Fixed the libcurl code to use FORMAT_OFF_T for printf() formatting
7186   curl_off_t types internally.
7187
7188 Daniel (1 March 2004)
7189 - Added CURL_VERSION_LARGEFILE as a feature-bit in the curl_version_info()
7190   response, that signals if this libcurl supports >2GB files. curl -V now
7191   outputs 'Largefile' in the Features: field if this is the case. Most systems
7192   are likely to support this.
7193
7194 - We offer a CURL_FORMAT_OFF_T define in the public header, which can be used
7195   to printf() curl_off_t variables. We also modified the libcurl sources to
7196   use this define instead of the previous %Od approach (although I've left the
7197   O-flag functional in the code). This should also prevent compilers to warn
7198   on the home-grown option.
7199
7200 - Fixed the resume-check code to test for a working resume at the end of the
7201   headers and not at the first body-byte.
7202
7203 - CURLOPT_DNS_USE_GLOBAL_CACHE is now considered obsolete. Stop using it. If
7204   you need a global DNS cache for whatever reason, use the share interface and
7205   you'll get a global cache that works the way it should work. You can even
7206   have any number of global caches, all at your command. This is now also
7207   mentioned in the docs.
7208
7209 - Made the *printf code support the z-flag to enable size_t printf() in a
7210   manner similar to how glibc allows it. To make printfing of this work on
7211   platforms with 64bit size_t and 32bit ints. If there even are any! ;-)
7212
7213 - Christopher R. Palmer discovered that if you CURLOPT_FRESH_CONNECT and
7214   CURLAUTH_NTLM (or CURLAUTH_ANY and libcurl then picked NTLM), libcurl would
7215   loop without succeeding to authenticate due to the new connection that was
7216   made for all round-trips in the authentication. Now, the FRESH_CONNECT is
7217   remade to only matter for the first connection made with curl_easy_perform()
7218   and all the rest that might follow due to FOLLOWLOCATION or HTTP
7219   authentication are now ignoring that option.
7220
7221 - Adjusted the QUIT code slightly since it could core-dump.
7222
7223 - Corrected the test suite's FTP server to provide a correct size to the
7224   'verifiedserver' request.
7225
7226 Daniel (27 February 2004)
7227 - Joe Halpin made the FTP code send QUIT on the control connection before
7228   disconnecting the TCP connection. This is what good-behaving ftp clients
7229   should do.
7230
7231 Daniel (26 February 2004)
7232 - David Byron updated several files to make curl build fine on MSVC 6. He
7233   also added the 'buildconf.bat' that works like the 'buildconf + configure'
7234   combo does on unixes.
7235
7236 - Gisle Vanem made the memdebug stuff support calloc() as well.
7237
7238 - Tor Arntsen pointed out that testcurl.sh needed to remove the generated
7239   files in order to have them re-generated in each build.
7240
7241 - Andy Serpa found out that the share interface did not enjoy life when not
7242   having the lock and unlock callbacks set, even though documented to be
7243   OK. It still is OK, and now the code won't segfault anymore!
7244
7245 Daniel (25 February 2004)
7246 - Based on a patch by Greg Hewgill I modified how long long is used in the
7247   mprintf code, as we can use a 64bit type with MSVC that is a long long
7248   equivalent. This corrects some weird large file behaviors on windows.
7249
7250 - Tor Arntsen helped me work out --enable-debug to work better with different
7251   versions of the gcc and icc compilers.
7252
7253 - Added CURLOPT_SHARE to the curl_easy_setopt.3 man page.
7254
7255 Daniel (22 February 2004)
7256 - Applied the final pieces of Gisle Vanem's patch that brings a working name
7257   resolve timeout to the windows versions of curl!
7258
7259 Daniel (21 February 2004)
7260 - David Byron's fix to allow the speed-limit logic work even if you set
7261   limit-rate. It does work on the expense of the rate limiter.
7262
7263 Daniel (20 February 2004)
7264 - configure --enable-debug with gcc now also tries to detect the icc compiler
7265   (which somehow gets treated as if it is a gcc) to stop using all the gcc
7266   options with it, and we also provide -isystem options for each extra -I
7267   option the configure script has figured out (for OpenSSL, kerberos, zlib,
7268   Heimdal etc). This of course to prevent warnings on headers we don't have
7269   control of.
7270
7271 Daniel (19 February 2004)
7272 - Doug Porter made libcurl use the HOME environment variable before the
7273   getpwuid results when looking for .netrc files.
7274
7275 - If 'configure --enable-debug' is used with gcc, it now checks which gcc
7276   version it is and uses as picky compiler options as possible for the
7277   particular version.
7278
7279 - Code that can be used in both the lib and in the curl app is now made to use
7280   the curlx_ prefix. The first function to be available like this is the
7281   curlx_strtoll() function. This is made to allow the app to use existing code,
7282   but without polluting the libcurl API. Further explanations posted here:
7283
7284     http://curl.haxx.se/mail/lib-2004-02/0215.html
7285
7286 Daniel (18 February 2004)
7287 - Fixed buildconf to not use "which" as AIX and Tru64 have what have been
7288   referred to as "horribly broken 'which' programs".
7289
7290 - Made sure dns cache timeout set to -1 really means caching forever.
7291
7292 Daniel (17 February 2004)
7293 - Made it possibly to build c-ares with the libcurl memdebug system to better
7294   track memory.
7295
7296 Daniel (16 February 2004)
7297 - When using ares, we now initialize the ares 'channel' in curl_easy_init()
7298   and re-use that same handle during the entire curl handle's life-time. It
7299   improves performance.
7300
7301 - Fixed a problem when displaying verbose for ipv6-enabled libcurls and
7302   re-used connections. Problem reported and fix verified by Grigory Entin.
7303
7304 - Jeff Lawson fixed the version-check in the SOCKS5 code.
7305
7306 Daniel (15 February 2004)
7307 - Fixed a case where a host cache entry was not flagged in-use properly when a
7308   cached entry was used.
7309
7310 - Andrés García's patch that checks for winmm in the configure script was
7311   applied.
7312
7313 Daniel (13 February 2004)
7314 - Ben Greear's SO_BINDTODEVICE patch for the binding of the local end to a
7315   specific network interface.
7316
7317 - Greg Hewgill found out that the variable holding 'contentlength' wasn't big
7318   enough to hold a large file!
7319
7320 - Tor Arntsen fixed a 64bit-related problem in date-related code in the ftp
7321   department, and there was another potential problem in the name resolve code
7322   too.
7323
7324 Daniel (11 February 2004)
7325 - Removed a few variables that were only set but never used, as some compilers
7326   warn about that and we do not like compiler warnings!
7327
7328 - Removed the need for symlinks in the tests/data directory if curl is built
7329   outside of the source directory and the 'make test' is used. This was done
7330   by providing a "source dir path" to the scripts/servers.
7331
7332 - Now, if the configure script can't find an nroff tool or an option to nroff
7333   to use to convert man pages with, it will completely switch off the built-in
7334   manual.
7335
7336 - 'configure --disable-manual' completely disables the built-in manual from
7337   the curl command tool.
7338
7339 - Andrés García fixed the configure script and a minor source edit, and now
7340   he has managed to get msys/mingw to run configure and then build!
7341
7342 Daniel (9 February 2004)
7343 - The default HTTP Accept: header was modified to the much simpler
7344   "Accept: */*".
7345
7346 - P R Schaffner updated the curl-ssl spec file for RPMs.
7347
7348 - Dominick Meglio brought lots of documentation for the share interface's man
7349   pages that were previously missing.
7350
7351 - Tor Arntsen provided a patch that makes libcurl work-around a bug in the
7352   AIX5 implementation of getaddrinfo(). This makes the FTP PORT stuff work on
7353   ipv6-enabled AIX builds.
7354
7355 - Ken Rastatter provided portability fixes for the curlgtk.c example, and now
7356   it runs on windows with GTK as well!
7357
7358 Daniel (6 February 2004)
7359 - Andrés García made the configure script find gethostbyname() fine when run
7360   with mingw on windows.
7361
7362 - Modified the ldap code to use proper function pointers all over (instead of
7363   mixed data and function pointers) to work-around the picky MIPSPro compiler
7364   warnings.
7365
7366 - A custom Host: header is only considered if the request is not made by
7367   following a location. After discussions with Tim Baker.
7368
7369 Daniel (5 February 2004)
7370 - The libz part of the configure script now only set the two libz-related
7371   define HAVE_ZLIB_H and HAVE_LIBZ if both the lib and the header is found.
7372   If one is missing, none of the defines is set.
7373
7374 - Andrés García fixed the Mingw makefiles.
7375
7376 - Len Krause reported that curl 7.9.X could do uploading from stdin without
7377   doing chunked encoding, which current curl cannot do even if you disable
7378   the transfer-encoding chunked header. Now it can again, and test case 98
7379   verifies this functionality.
7380
7381 - Tor Arntsen fixed a weird getaddrinfo() usage in the FTP code, preventing
7382   the ipv6-code for PORT work on AIX 5.2. We now also provide (better) error
7383   messages when bailing out in the that function.
7384
7385 - Tor Arntsen now provides AIX and IRIX (using gcc, xlc and the MIPSPro
7386   compilers) automated build logs (http://curl.haxx.se/auto/) and we've fixed
7387   numerous minor quirks to make less warnings appear.
7388
7389 Daniel (4 February 2004)
7390 - Based on a patch by Gilad, we now use the custom timeouts when waiting for a
7391   server to connect when using FTP PORT. Previously we always waited 10
7392   seconds, no more no less. We now also changed the default (if no timeout is
7393   set) to wait 60 seconds for the connect before we fail.
7394
7395 Daniel (3 February 2004)
7396 - Modified to link with c-ares instead of ares.
7397
7398 Daniel (2 February 2004)
7399 - Added a configure test to check for which option the (g)nroff tool wants
7400   to extract plain text from the man pages. Tor Arntsen told us the AIX
7401   version of GNU gnroff doesn't support -man!
7402
7403 - Added an undef of accept in memdebug.h to make curl build with --enable-debug
7404   on AIX 5.2 which seems to have accept defined. Reported by Tor Arntsen.
7405
7406 - curl_version() now includes c-ares version info, and curl_version_info() now
7407   returns a struct with version SECOND that also includes that info.
7408
7409 - We are now officially using c-ares for asynch name resolves. c-ares is the
7410   new library, based on the existing ares but with an extended and slightly
7411   modified API.
7412
7413 - Dirk improved the ares timeout code, and now we also include the ares error
7414   string when we fail to resolve a name.
7415
7416 - Another tweak to make test case 91 run fine. Now we have another bit on a
7417   connection that is set true if the connection is marked for 'retry'. That
7418   makes the connection get closed and re-opened and the HTTP-done code must
7419   not complain on the fact that no data was received.
7420
7421 - Based on Dirk Manske's patch, I modified the name resolving with ares to
7422   feature a timeout for really slow lookups. It now defaults to 300 seconds,
7423   but is now adjusted to the CONNECTTIMEOUT/TIMOUE timeouts if one of them
7424   is set.
7425
7426 - Fixed the inclusion of ca-bundle.h to really use the one in the build dir
7427   before the one in the source dir. Domenico Andreoli found out and reported.
7428
7429 - Added test case 97, a simple POST with a custom Content-Type header
7430   replacing the original application/x-www-form-urlencoded one.
7431
7432 Daniel (30 January 2004)
7433 - Added code that attempts to fix the test 91 failure. As has been figured out
7434   by Patrick Smith, the error happens because we re-use a connection that the
7435   server is just about to close and we even manage to send away the request
7436   without seeing an error. On the first read attempt we get a ECONNRESET.
7437   Starting now, we attempt to detect this and if so, we retry the request on a
7438   fresh connection.
7439
7440 - I added test case 510 which is a custom program that does a POST using a
7441   read callback, with chunked transfer-encoding.
7442
7443 - Adjusted one of the MPE/iX changes as it made test case 504 fail all over.
7444
7445 - Added --socks as a recognized option. It works just like --proxy but sets a
7446   SOCKS5 proxy to use. SOCKS5 support has been available in libcurl for a
7447   while, just not provided by the curl tool. This does not currently work for
7448   IPv6-enabled libcurls.
7449
7450 Daniel (29 January 2004)
7451 - Stadler Stephan pointed out that src/hugehelp.c included config.h without
7452   checking the define if its present...
7453
7454 - Ken Hirsch provided patches to make curl build fine on the MPE/iX operating
7455   system.
7456
7457 - Dan Fandrich compiled curl with lots of aggressively pedantic compiler
7458   options and thus found a few minor errors and did some general cleanups to
7459   avoid them.
7460
7461 - Dirk Manske fixed a flaw in ares that prevented it to use non-blocking
7462   sockets properly.
7463
7464 Daniel (28 January 2004)
7465 - Richard Bramante fixed chunked transfer-encoded "uploads" to send a final
7466   CRLF combo properly.
7467
7468 Daniel (27 January 2004)
7469 - Made the response-headers during a CONNECT request to a proxy get passed on
7470   as regular headers, so they appear with -i/-I options and similar.
7471
7472 - Based on a patch by Gisle Vanem, I've made the progress meter display
7473   properly switch to a GB-display when more than 9999MB have been transfered.
7474
7475 Daniel (23 January 2004)
7476 - Gisle Vanem pointed out a curlrc parser problem/crash when an option with a
7477   required didn't have one and was on the last line of a file.
7478
7479 - More Windows fixes for large files. We now build and link with
7480   ../lib/strtoofft.c in the app code since Curl_strtoll() is not a provided
7481   libcurl function... Perhaps we should consider a 'common' dir or similar
7482   where we put source code used in both the lib and the client. Or perhaps
7483   we'll just make this function available in the library...
7484
7485 - Vincent Bronner found out the socks5 code crashed when no username was
7486   set.
7487
7488 - Vincent Bronner spotted a problem with proxy username/password when re-using
7489   a persistent connection.
7490
7491 - Fixed the progress meter display for files larger than 2^31 bytes. Gisle
7492   Vanem reported.
7493
7494 Daniel (22 January 2004)
7495 - Gisle Vanem made strtoll() get used when curl is built with the mingw
7496   compiler.
7497
7498 - Gisle Vanem fixed the compressed help text code to display properly.
7499
7500 - Removed the '#define HttpPost' from the public header file, as curl_httppost
7501   is the proper name and it has been for quite some time now. Fixes another
7502   name space pollution.
7503
7504 - Added 'curl_off_t' typedef in the public header file, to be used to provide
7505   large file sizes to the *_LARGE options. Adjusted the code all over to use
7506   this variable type instead of 'off_t'. This is an attempt to make the large
7507   file support work on more platforms. The configure script now checks the
7508   size of the curl_off_t instead of the plain off_t.
7509
7510 Version 7.11.0 (22 January 2004)
7511
7512 Daniel (21 January 2004)
7513 - Removed the defines in the public header file with TIMECOND_ prefixes. They
7514   have been obsolete since April 22nd 2002, and if this causes anyone any
7515   problems now it is very easy to just add CURL_ to the names. This corrects
7516   this name space pollution.
7517
7518 Daniel (19 January 2004)
7519 - David Byron cleaned up how --trace with no option was treated, and also
7520   arguments in a config file without a required parameter!
7521
7522 Daniel (16 January 2004)
7523 - Gisle Vanem fixed a few issues where compilers warned about variables
7524   possibly being used unassigned.
7525
7526 - Minor Interix build problem fixed.
7527
7528 Daniel (15 January 2004)
7529 - Peter Sylvester pointed out some necessary escaping needed in the
7530   acinclude.m4 file when automake 1.8 or later is used.
7531
7532 Daniel (14 January 2004)
7533 - Vincent Bronner fixed the Curl_resolv() return code. This extends the fix
7534   Steve Green provided on december 3...
7535
7536 Daniel (13 January 2004)
7537 - Luke Call made the win32 version of the password prompting function support
7538   backspace.
7539
7540 - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
7541   an uncompressed version in the distribution, so that more people easier can
7542   build curl with the compressed version.
7543
7544 - Diego Casorran brought another AmigaOS build patch for native Amiga builds.
7545
7546 - Matt Veenstra updated the Mac OS X framework files.
7547
7548 - Brian R Duffy brought a section to the INSTALL file on how to build a
7549   SSL-enabled curl using the free Borland C++ compiler. He also updated the
7550   Borland lib/Makefile.b32.
7551
7552 - I fixed the test case 509 which I broke yesterday. Now the libtest are
7553   compiled with an include path that points to the library's source dir, so
7554   that the libtests can include files from the source tree. This was made to
7555   make it possible to use the USE_SSLEAY define in the library test files.
7556
7557 Daniel (12 January 2004)
7558 - Peter Sylvester brought code that now allows a callback to modified the URL
7559   even when the multi interface is used, and then libcurl will simulate a
7560   "follow location" to that new URL. Test 509 was added to test this feature.
7561
7562 - Extended the time we retry servers in the test script, and I also made it
7563   retry the https and ftps servers before they are considered bad. I believe
7564   the previous approach could turn problematic on really slow hosts.
7565
7566 Version 7.11.0-pre1 (12 January 2004)
7567
7568 Daniel (11 January 2004)
7569 - Dominick Meglio pointed out FTPS should use default port 990 according to
7570   IANA.
7571
7572 Daniel (8 January 2004)
7573 - Fixed the SPNEGO configure check to not use -R or other non-portable options
7574   in the LDFLAGS. Reported by Pierre in bug report #872930.
7575
7576 Daniel (5 January 2004)
7577 - Dan Fandrich provided a fix on our zlib usage.
7578
7579 - David J Meyer's patch that introduce large file support to libcurl was
7580   applied. New curl_easy_setopt options that accept 'off_t' arguments are:
7581
7582   INFILESIZE_LARGE
7583   RESUME_FROM_LARGE
7584   MAXFILESIZE_LARGE
7585
7586 Daniel (4 January 2004)
7587 - Based on Dominick Meglio's comments, I made our private version of
7588   gettimeofday() declared static. This would otherwise collide with the same
7589   function in other libs (like ares for example).
7590
7591 - Added Dominick Meglio's description on how to build libcurl with ares
7592   on win32.
7593 Daniel (19 December)
7594 - CURLOPT_IPRESOLVE was not possible to set.
7595
7596 - Gisle Vanem updated the djgpp build files.
7597
7598 Daniel (18 December)
7599 - John McGowan reported a redirect-problem that happened if a site used a URL
7600   like "url.com?var=content" (without a proper slash) and from that address
7601   redirected the user-agent to an absolute directory.
7602
7603 - David Byron made libcurl build fine with both the .NET and VC6 versions of
7604   MSVC
7605
7606 Daniel (16 December)
7607 - Updated test 506 since it started to fail after the cache prune change
7608   yesterday. I also changed it slightly to feature a counter in each debug
7609   output for easier tracing.
7610
7611 Daniel (15 December)
7612 - Old DNS cache entries are now only pruned after curl is done with a request,
7613   and not in the actual name resolve call.
7614
7615 - corrected the --enable-ares patch
7616
7617 - Giuseppe Attardi found and fixed a problem within libcurl that re-used
7618   already freed memory.
7619
7620 Daniel (10 December)
7621 - Gisle Vanem reported that the dict support was broken. I broke it during my
7622   ftps-changes overhaul. I've now added a 'curlassert' function that can be
7623   used to verify expressions, to prevent future errors of the same
7624   kind. They're only present in debug-builds.
7625
7626 - Diego Casorran made curl and libcurl possible to build natively (no more
7627   need for the ixemul library) on AmigaOS.
7628
7629 - Dominick Meglio made configure --enable-ares support a given path to the
7630   installed ares lib, instead of always using it in the curl source tree.
7631   This also fixed the curl-config --libs output.
7632
7633 - Eric S. Raymond patched a very minor man page format error in
7634   libcurl-errors.3
7635
7636 Daniel (8 December)
7637 - Fixed the flaw that made -lz appear twice on the link command line.
7638
7639 - After correspondence with Gisle Vanem, I changed the 'connection aborted'
7640   error text when the FTP response reader failed to more specificly identify
7641   what the problem is.
7642
7643 - Based on a patch from Dominick Meglio, curl-config --feature now outputs
7644   'AsynchDNS' as a feature if libcurl was built with ares. The feature name
7645   is the same that 'curl -V' outputs, for simplicity.
7646
7647 Daniel (3 December)
7648 - Marty Kuhrt made the build up-to-date on VMS, and moved most of the VMS-
7649   specific stuff in the client code to a separate header file.
7650
7651 - Steve Green fixed a return code bug in Curl_resolv(), that made the socks5
7652   code fail.
7653
7654 - swalkaus at yahoo.com patched libcurl to ignore Content-Length: headers
7655   when Transfer-Encoding: chunked is used, as mandated by RFC2616.
7656
7657 Daniel (2 December)
7658 - --ftp-pasv was added, which serves the only purpose of overriding a
7659   previously set --ftpport option. Starting now, --ftp-port is a recognized
7660   alias for --ftpport for consistency.
7661
7662 - Giuseppe Attardi pointed out that we should use MSG_NOSIGNAL when we use
7663   send() and recv(). I added checks for the define in the configure script and
7664   adjusted the code accordingly. If the symbol is present, we won't attempt
7665   to ignore the SIGPIPE signal.
7666
7667 Daniel (1 December)
7668 - Mathias Axelsson set up a bsdftpd-ssl server for me and I could make curl
7669   run fine against its FTPS implementation. Now these FTPS-related things
7670   work:
7671    o explicit and implicit FTPS
7672    o active (PORT) and passive (PASV)
7673    o upload and download
7674    o verified against bsdftpd-ssl and RaidenFTPD
7675
7676 Daniel (27 November)
7677 - James Clancy made the Borland Makefiles up to date.
7678
7679 - Markus Moeller improved the SPNEGO detection in the configure script.
7680
7681 Daniel (25 November)
7682 - Dave May filed bug report #848371, identifying that if you'd do POST over a
7683   proxy to a https server, libcurl didn't POST at all, it just made a GET! It
7684   turned out to be because libcurl wrongly didn't consider the authentication
7685   "negotiation phase" to be complete yet.
7686
7687   I added test case 95 to verify my fix for this.
7688
7689 Daniel (24 November)
7690 - Thanks to Mathias Axelsson, I've been able to work on FTPS for libcurl and it
7691   seems to work somewhat fine now.
7692
7693   The FTPS stuff is based on RFC2228 and the murray-auth-ftp-ssl draft
7694   (version 12). There seems to exist quite a few servers that have implemented
7695   the server side of this.
7696
7697   We can now use ftps:// URLs to explicitly switch on SSL/TSL for the control
7698   connection and the data connection (dealing with two SSL connections forced
7699   me to change a lot of stuff in libcurl).
7700
7701   Alternatively, and what seems to be the recommended way, we can set the new
7702   option CURLOPT_FTP_SSL to one of these values:
7703
7704      CURLFTPSSL_NOPE,   - do not attempt to use SSL
7705      CURLFTPSSL_TRY     - try using SSL, proceed anyway otherwise
7706      CURLFTPSSL_CONTROL - SSL for the control connection or fail
7707      CURLFTPSSL_ALL     - SSL for all communication or fail
7708
7709   Any failure to set the desired level will make libcurl fail with the error
7710   code CURLE_FTP_SSL_FAILED. This new option makes a "normal" ftp:// transfer
7711   attempt to be made securely.
7712
7713   I've been able to login and get files (passively) from Mathias' server using
7714   both ftps:// and CURLOPT_FTP_SSL. (I've made 'curl' understand the --ftp-ssl
7715   option that sets CURLFTPSSL_TRY.)
7716
7717 - Gaz Iqbal fixed a range string memory leak.
7718
7719 - Gisle Vanem fixed the Windows builds.
7720
7721 - Added the new FTPSSL defines in curl/curl.h
7722
7723 Daniel (20 November)
7724 - Josh Kapell filed bug report #845247 as he found an endless loop when
7725   getting a 407 back from a proxy when no user+password was given. Added test
7726   case 94 to verify the fix.
7727
7728 Daniel (19 November)
7729 - Kevin Roth fixed a progress-bar problem on Windows.
7730
7731 - While working with Nicolas Croiset's bug report #843739, I noticed two minor
7732   problems related to ftp partial downloads: if a partial transfer is
7733   detected, we must close the connection as we cannot know in what state it is
7734   anymore. This looks like a ProFTPD bug:
7735   http://curl.haxx.se/mail/lib-2003-11/0079.html
7736
7737 Daniel (17 November)
7738 - Maciej W. Rozycki made the configure script use a cache variable for the
7739   writable argv test. This way, the default can be overridden better (for
7740   cross-compiles etc)
7741
7742 Daniel (15 November)
7743 - Mathias Axelsson found out libcurl sometimes freed the server certificate
7744   twice, leading to crashes!
7745
7746 Daniel (14 November)
7747 - Siddhartha Prakash Jain found a case with a bad resolve that we didn't
7748   properly bail out from, when using ares.
7749
7750 Daniel (13 November)
7751 - Default Content-Type for parts in multipart formposts has changed to
7752   "application/octet-stream".  This seems more appropriate, and I believe
7753   mozilla and the likes do this. In the same area: .html files now get
7754   text/html as Content-Type. (Pointed out in bug report #839806)
7755
7756 - Gisle Vanem corrected the --progress-bar output by doing a flush of the
7757   output, which apparently makes it look better on at least windows, but
7758   possibly other platforms too.
7759
7760 - Peter Sylvester identified a problem in the connect code, which made the
7761   multi interface on a ipv6-enabled solaris box do bad. Test case 504 to be
7762   specific. I've spent some time to clean-up the Curl_connecthost() function
7763   now to use less duplicated code for the two different sections: ipv6 and
7764   ipv4.
7765
7766 Daniel (11 November)
7767 - Added CURLOPT_NETRC_FILE. Use this to tell libcurl which file to use instead
7768   of trying to find a .netrc in the current user's home directory. The
7769   existing .netrc file finder is somewhat naive and is far from perfect on
7770   several platforms that aren't unix-style. If this option isn't set when
7771   CURLOPT_NETRC is set, the previous approach will still be used.
7772
7773   The current .netrc check code now also support longer than 256 bytes path
7774   names.
7775
7776 Daniel (10 November)
7777 - Kang-Jin Lee pointed out that the generated ca-bundle.h file shouldn't be
7778   written in the source dir if a different build dir is used.
7779
7780 - After Sébastien Willemijns' bug report, we now check the separators properly
7781   in the 229-reply servers respond on a EPSV command and bail out better if
7782   the reply string is not RFC2428-compliant.
7783
7784 Daniel (7 November)
7785 - Based on Gisle Vanem's patch, I made curl try harder to get the home
7786   directory of the current user, in order to find the default .curlrc file.
7787   We're also considering moving out the HOME-dir code from libcurl, and
7788   instead have the app pass in the path to the .netrc file (which is the only
7789   logic left in libcurl that uses the HOME dir). Then curl can use the home
7790   dir for that purpose too.
7791
7792 - Ralph Mitchell's updated testcurl.sh to the script to take an existing
7793   directory name and build/run/test curl in there instead of trying to update
7794   from CVS. Using this approach, the script can now be used to test daily
7795   tarballs etc.
7796
7797 - Gisle Vanem added a "resource file" to the Windows DLL builds, to contain
7798   information such as version number, library name, copyright info etc.
7799
7800 Daniel (6 November)
7801 - curl checks if the existing libcurl supports things like --ntlm, --negotiate
7802   and --krb4 and returns error if not.
7803
7804 - I added three new global defines in the curl/curl.h header:
7805   LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH. They
7806   are the three numbers in the library's version number, separated for easier
7807   usage. 'maketgz' was updated accordingly to generate these numbers properly
7808   when building release-archives.
7809
7810 - Uninitialized variable fix, reported by both Marty Kuhrt and Benjamin
7811   Gerard.
7812
7813 - Matt Veenstra provided build files to build libcurl as a "framework" under
7814   Mac OS X. See the lib/libcurl.framework.make for details.
7815
7816 - Removed the defines of TRUE and FALSE from the curl/curl.h header file.
7817   They're not in our name space so we should not fiddle with them.
7818
7819 Daniel (5 November)
7820 - Replaced the man page to HTML converter program with a new one: roffit.
7821   Makes nicer web pages.
7822
7823 Daniel (4 November)
7824 - Troels Walsted Hansen fixed the MSVC makefiles to let them build curl fine
7825   on Windows.
7826
7827 - Kevin Roth corrected the cygwin package generator and spell-fixed the
7828   comment in the ca-bundle.h file.
7829
7830 Version 7.10.8 (1 November 2003)
7831
7832 Daniel (31 October)
7833 - Assume that MDTM on an FTP server returns the timestamp using the UTC time
7834   zone. This changes the time CURLINFO_FILETIME returns for a given file over
7835   FTP, and will change existing uses of CURLOPT_TIMECONDITION. It will make
7836   the functionality more similar to how the HTTP one is already working.
7837
7838 - Command line options that take numerical parameters (such as -y, -Y, -C etc)
7839   now report error and exit if the parameter isn't truly a number greater than
7840   or equal to zero. This helps users to notice bad usage earlier. Before, when
7841   a user forgot or missed to add a numerical parameter to an option, the
7842   command line parser would simply "eat" the following option and it would
7843   cause great confusion.
7844
7845 Daniel (30 October)
7846 - David Hull made libcurl deal with NOBODY and HEADER for file:// the same way
7847   it already does for FTP: it provides HTTP-looking headers that provide info
7848   only about the file, without doing the actual transfer. The curl tool then
7849   lets --head do this.
7850
7851 Daniel (29 October)
7852 - runtests.pl now checks for and use valgrind if present. It will redirect the
7853   valgrind results in log/valgrind[num] but it currently doesn't scan that
7854   file for any errors or anything, that is still only made manually.
7855
7856 - David Hull made the file: URL parser also accept the somewhat sloppy file
7857   syntax: file:/path. I added test case 203 to verify this.
7858
7859 Daniel (28 October)
7860 - Dan C tracked down yet another weird behavior in the glibc gethostbyname_r()
7861   function for some specific versions (reported on 2.2.5 and 2.1.1), and
7862   provided a fix. On Linux machines with these glibc versions, non-ipv6
7863   builds of libcurl would often fail to resolve perfectly resolvable host
7864   names.
7865
7866 Daniel (26 October)
7867 - James Bursa found out that curl_msnprintf() could write the trailing
7868   zero-byte outside its given buffer size. This could happen if you generated
7869   a very long error message as then libcurl would overwrite the ERRORBUFFER
7870   with one byte. Using a non-existing very long local file:// name is one case
7871   that could make this occur.
7872
7873 Daniel (24 October)
7874 - David Hull filed bug report #829827. It identified a problem with -C - if
7875   the full file already was downloaded and thus the server responded with a
7876   416. libcurl would then wrongly use the Content-Length: header and expect
7877   that size to get transfer, causing a "hang" until the server closed the
7878   connection and then an error 18 ("still N bytes data left of the transfer").
7879
7880   Now we don't return any error at all, but I think libcurl should perhaps
7881   return some kind of info since the requested range was out of the size of
7882   the document.
7883
7884 - Based on David Hull's fix in bug report #804599, we now check for solaris and
7885   gcc in configure and set the -mimpure-text link flag for linking the lib
7886   better.
7887
7888 - I've introduced a -t option to the runtests.pl script. With that option set,
7889   the script runs special "memory torture" tests. For each test command line
7890   in that section, the script first runs the command line and counts the total
7891   amount of allocations made. It then runs the exact same command line again,
7892   forcing allocation number N to fail. It will try every N from 1 to the total
7893   number of amounts made. For every invoke, it checks that no memory was
7894   leaked as that would indicate a bad cleanup somewhere in the code.
7895
7896   This is just beginning to work, and I've already made some corrections in
7897   libcurl code. When this code works somewhat fine, I'll make sure 'make test'
7898   in the root dir will run these tests as well.
7899
7900 Daniel (23 October)
7901 - Georg Horn fixed how the CA verification is made. Verifications can now be
7902   made while at the same time the result of it can be ignored. This also
7903   affects the curl tool as -k can now be used together with --cacert or
7904   --capath.
7905
7906 Daniel (22 October)
7907 - Gisle Vanem found out --disable-eprt didn't work and patched it.
7908
7909 - Test case 91 was modified and could now repeat the problem Kevin Roth has
7910   reported, and the bug was fixed.
7911
7912 - Dylan Ellicott added vc-libcurl-ssl-dll as a target to the root makefile
7913   to build a static libcurl that links with a shared OpenSSL using MSVC.
7914
7915 Daniel (21 October)
7916 - Andrés García updated the mingw32 makefiles.
7917
7918 Version 7.10.8-pre5 (21 October 2003)
7919
7920 Daniel (19 October)
7921 - Georg Horn made libcurl output more info on SSL failures when receiving
7922   data.
7923
7924 Version 7.10.8-pre4 (18 October 2003)
7925
7926 Daniel (17 October)
7927 - Dominick Meglio implemented CURLOPT_MAXFILESIZE and --max-filesize.
7928
7929 - Made libcurl show verbose info about what auth type and user name that is
7930   being sent in its HTTP request-headers.
7931
7932 Daniel (16 October)
7933 - Removed support for CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA. libcurl
7934   no longer prompt for passwords under any circumstances. Password prompting
7935   was instead moved to curl, which now prompts for password if -u or -U lack
7936   it. This solves the problem Kevin Roth reported when curl prompted for
7937   password twice when doing NTLM authentication.
7938
7939 - I rewrote the SSL subjectAltName check to avoid having to rely on OpenLDAP-
7940   licensed derivate code.
7941
7942 Daniel (15 October)
7943 - Avoid doing getsockopt() on Windows to verify connects. It seems that this
7944   hogs Windows machines when libcurl is being used multi-threaded (with > ~50
7945   threads). Andrew Fuller helped us verify and test this.
7946
7947 Daniel (14 October)
7948 - Kimmo Kinnunen fixed a crash with duphandle() when CURLDEBUG is set.
7949
7950 - Gisle Vanem made libcurl build and work with IPv6 on Windows.
7951
7952 Daniel (13 October)
7953 - Giuseppe Attardi reported yet another segfault with ares and the multi
7954   interface. Me fixed.
7955
7956 - Domenico Andreoli removed the extra LDFLAGS assignment in lib/Makefile.am
7957   that was reported about in the debian bug report #212086.
7958
7959   Domenico also fixed two makefiles where we used 'gnroff' instead of the more
7960   portable $(NROFF).
7961
7962 Daniel (12 October)
7963 - Dirk Manske made the share locking around DNS lookups slightly different to
7964   allow the share system's DNS lookups to run somewhat more
7965   independent/faster.
7966
7967 Daniel (9 October)
7968 - Lachlan O'Dea fixed a resume problem: "If I set CURLOPT_RESUME_FROM, perform
7969   an HTTP download, then reset CURLOPT_RESUME_FROM to 0, the next download
7970   still has a Range header with a garbage value." bug report #820502
7971
7972 - Dominick Meglio made the inet_pton.c file build fine using MSVC.
7973
7974 - The 'sws' test suite web server now #include setup.h from the lib directory.
7975   This makes it more portable easier.
7976
7977 Version 7.10.8-pre3 (8 October 2003)
7978
7979 Daniel (8 October)
7980 - Frank Ticheler provided a patch that fixes how libcurl connects to multiple
7981   addresses, if one of them fails (ipv4-code).
7982
7983 Daniel (7 October)
7984 - Neil Dunbar provided a patch that now makes libcurl check SSL
7985   subjectAltNames when matching certs. This is apparently detailed in RFC2818
7986   as the right thing to do. I had to add configure checks for inet_pton() and
7987   our own (strictly speaking, code from BIND written by Paul Vixie) provided
7988   code for the function for platforms that miss it.
7989
7990 - HTTP POST using the read callback didn't work, as Florian Schoppmann
7991   reported.
7992
7993 Daniel (5 October)
7994 - Shared provided a few fixes to make libcurl build on BeOS
7995   out-of-the-box. New code for BeOS-style non-blocking sockets, provided by
7996   Shard and Jeremy Friesner. Modified the autoconf check for non-blocking
7997   sockets to check for this kind too.
7998
7999 Daniel (4 October)
8000 - Vincent Bronner pointed out that if you set CURLOPT_COOKIE for a transfer
8001   and then set it to NULL in a subsequent one, the previous cookie was still
8002   sent off!
8003
8004 - Jon Turner fixed a problem libcurl had when it failed on an FTP transfer due
8005   to a bad path, it would cause the next transfer to use a bad path as well.
8006
8007 - Siddhartha Prakash Jain provided a patch with a fix for libcurl with ares,
8008   when working on IP-only names as we then could return "wait" status when the
8009   name in fact already was resolved. I edited the patch slightly to not expose
8010   asynch details to non-ares aware source code.
8011
8012 Daniel (3 October)
8013 - Neil Spring posted the debian bug report #213180, and pointed out that using
8014   the name 'access' in a function prototype is not very wise as some compilers
8015   complain.
8016
8017 - Peter Sylvester provided his and Jean-Paul Merlin's curlx.c example source
8018   code that shows how they use ssl and callbacks.
8019
8020 Daniel (2 October)
8021 - James MacMillan's patch makes curl build on QNX 6.2.x.
8022
8023 Daniel (26 September)
8024 - My daughter was born!
8025
8026 Daniel (23 September)
8027 - Added support for -4/--ipv4 and -6/--ipv6 to force names to resolve to that
8028   particular IP version. They only work for IPv6-enabled libcurls.
8029
8030 - curl -V now outputs 'SPNEGO' as a feature in case libcurl was built to
8031   support that.
8032
8033 Version 7.10.8-pre2 (22 September 2003)
8034
8035 Daniel (22 September)
8036 - Giuseppe Attardi found a segfault in libcurl when using the multi interface
8037   with ares and doing repeated operations against a non-resolving host name.
8038
8039 Daniel (19 September)
8040 - Added the CURLOPT_IPRESOLVE option, that allows an application to select
8041   what kind of IP addresses he wants to use when resolving host names. This
8042   is only interesting when using host names that resolve addresses using more
8043   than one version of IP.
8044
8045 - Applied Markus Moeller's patch that introduces SPNEGO support if libcurl
8046   is built with the FBopenssl libraries. curl_version_info() now returns
8047   info on SPNEGO availability. The patch also made the GSSAPI stuff work fine
8048   with the MIT GSS-library (the Heimdal one still works too).
8049
8050 Daniel (16 September)
8051 - Doing PUT with --digest failed, as reported in bug report #805853.
8052
8053 - Using --anyauth that picked NTLM, and then a redirect closed the connection
8054   and took curl to a second NTLM page made curl fail. Bug report #806328
8055   identified the problem, test case 90 was added to verify the fix.
8056
8057 Daniel (14 September)
8058 - codemastr brought a patch for ares to make the Windows portions of it work
8059   properly on NT4. I uploaded a new diff and updated the docs on where to get
8060   it etc.
8061
8062 - Jeff Pohlmeyer tracked down a very hard-to-find bug where we removed a
8063   cached DNS entry even though it may be in use, which caused "random" memory
8064   to get overwritten and thus "random" crashes.
8065
8066 Daniel (12 September)
8067 - Based on a bug report by David Kimdon, I made the runtests.pl script clear
8068   all possible proxy environment variables before the tests are run.
8069
8070 - By default, easy handles within a multi handle now share DNS cache.
8071
8072 - Tim Bartley brought a patch that makes the GSSNEGOTIATE option work for
8073   Microsoft's "Negotiate" authentication as well.
8074
8075 Daniel (11 September)
8076 - A zero-length proxy string confused FTP transfers.
8077
8078 - Bjorn Reese found a case with an uninitialized pointer, only present when
8079   built for ares.
8080
8081 Version 7.10.8-pre1 (8 September 2003)
8082
8083 Daniel (7 September)
8084 - Jurij Smakov found out that the non-OpenSSL MD5 code was not working on
8085   Alpha (or ia64). Only the OpenSSL-version did. I made a fix I think corrects
8086   the problem. 
8087
8088 Daniel (5 September)
8089 - Kevin Fisk reported that configure --enable-thread didn't work. I fixed.
8090
8091 - De-macrofied the lib/hash.c source code somewhat.
8092
8093 Daniel (4 September)
8094 - CURLINFO_HTTPAUTH_AVAIL and CURLINFO_PROXYAUTH_AVAIL added, Based on Joerg
8095   Mueller-Tolk's patch,
8096
8097 Early (4 September)
8098 - Added CURLOPT_FTP_RESPONSE_TIMEOUT - allows user to set strict timeout
8099   requirements on the FTP server's ability to respond to individual commands
8100   without placing global requirements on transfer or connect time.  Files
8101   affected:
8102     - include/curl/curl.h
8103         Added option CURLOPT_FTP_RESPONSE_TIMEOUT
8104     - lib/ftp.c
8105         Added branch inside Curl_GetFTPResponse to check for 
8106         data->set.ftp_response_timeout
8107     - lib/url.c
8108         Modified Curl_setopt to recognize CURLOPT_FTP_RESPONSE_TIMEOUT
8109     - lib/urldata.h
8110         Added ftp_response_timeout to struct UserDefined
8111
8112 Daniel (3 September)
8113 - Peter Pentchev found and fixed two problems in the test suite's web server
8114   code, that made it segfault at times.
8115
8116 - Jörg Mueller-Tolk improved the proxy user+password handling, especially
8117   when providing a blank password.
8118
8119 Daniel (2 September)
8120 - Fix for making CONNECT to proxies do the correct magic to allow NTLM, Digest
8121   and similar to work.
8122
8123 Daniel (1 September)
8124 - Henrik Storner made libcurl work fine with OpenLDAP 2.1.22 (current).
8125
8126 - Jeff Pohlmeyer added a proper error message for non-resolving hosts when
8127   using ares for lookups.
8128
8129 Daniel (25 August)
8130 - John McGowan reported that curl -k still failed if the HTTPS server's CN
8131   field wasn't obtainable. This was due to the CURLOPT_SSL_VERIFYHOST being
8132   set to 1, and libcurl failed if the CN was missing. Starting now, having it
8133   set to 1 will simply output a warning if no CN could be obtained (as having
8134   a mismatch is OK).
8135
8136 Daniel (21 August)
8137 - Vincent Sanders provided a fix for name resolving when linked with uClibc.
8138
8139 Daniel (20 August)
8140 - Gerd v. Egidy provided a patch that makes libcurl store the FTP response
8141   code from ftp servers. Using curl_easy_getinfo() with CURLINFO_HTTP_CODE
8142   returns that data. The option is therefore now also known as
8143   CURLINFO_RESPONSE_CODE.
8144
8145 - Antoine Calando found a segfault when doing multi-part/formpost using
8146   the multi interface.
8147
8148 - Antoine Calando pointed out that curl_multi_info_read() didn't set the
8149   msgs_in_queue to 0 properly when returning NULL.
8150
8151 Daniel (19 August)
8152 - I made curl support multiple -T options, as well as -T "{file1,file2}"
8153   style globbing. One -T for each URL is supported.
8154
8155 - Jeff Pohlmeyer found a segfault when using ares-enabled libcurl and the
8156   multi interface when trying a non-existing host name.
8157
8158 - Made the libcurl printf code support long longs if available.
8159
8160 - Loren Kirkby pointed out that we did not clean up all SSL-allocated memory
8161   in curl_global_cleanup().
8162
8163 Daniel (17 August)
8164 - Setting CURLOPT_WRITEFUNCTION or CURLOPT_READFUNCTION to NULL will now make
8165   them get the internal defaults restored. Previously this could cause a
8166   segfault. We should aim at having all pointer-related options get restored
8167   to default/safe values when set to NULL.
8168
8169 Version 7.10.7 (15 August 2003)
8170
8171 Daniel (14 August)
8172 - I modified the memdebug system to return failure on memory allocation
8173   functions after a set amount of successful ones. This enables us to test
8174   out-of-memory situations in a controlled manner and we can make sure that
8175   curl/libcurl behaves good in those.
8176
8177   This made me find and fix several spots where we did not cleanup properly
8178   when bailing out due to errors (low memory).
8179
8180 - Corrected test case 74. Made using -o with bad #[num] codes complain and
8181   bail out. Made #[num] support numbers larger than 9 as well. Added test
8182   case 86 for a proper range globbing test as well.
8183
8184 Version 7.10.7-pre4 (12 August 2003)
8185
8186 Daniel (12 August)
8187 - curl_version_info() now returns a flag if libcurl was built with asynch DNS
8188   support, and this is now also displayed with 'curl -V'.
8189
8190 - Added a few new man pages to the docs/libcurl dir: curl_share_init,
8191   curl_share_setopt, curl_share_cleanup, libcurl-easy and libcurl-share.
8192
8193 Daniel (11 August)
8194 - Mike Cherepov made the local binding code work for Windows, which makes
8195   the option CURLOPT_INTERFACE work on Windows as well.
8196
8197 - Vincent Sanders updated the fopen.c example code a lot.
8198
8199 - --proxy-ntlm is now supported by the curl tool. It forces the proxy
8200   authentication to be made using NTLM. It does not yet work for HTTPS over
8201   proxies (or other proxy-tunneling options). Test case 81 and 82 do some
8202   simple initial ntlm testing.
8203
8204 - Found and fixed a minor memory leak on re-used connections with
8205   proxy-authentication.
8206
8207 - I removed -@ and -Z as valid short options. They were very rarely used (@
8208   wasn't even documented).
8209
8210 - Serge Semashko introduced CURLOPT_PROXYAUTH, and make it work when set to
8211   CURLAUTH_NTLM and/or CURLAUTH_BASIC. The PROXAUTH is similar to HTTPAUTH,
8212   but is for the proxy connection only, and HTTPAUTH is for the remote host.
8213
8214 - Fixed loading of cookies with blank contents from a cookie jar. Also made the
8215   cookie functions inform on added and skipped cookies (for cookie debugging).
8216
8217 Version 7.10.7-pre3 (8 August 2003)
8218
8219 Daniel (8 August)
8220 - Applied David Byron's fix for file:// URLs with drive letters included.
8221
8222 - I added the --ftp-create-dirs to the client code, which activates Early's
8223   CURLOPT_FTP_CREATE_MISSING_DIRS option, and wrote test case 147 to verify
8224   it. Added the option to the curl.1 man page too. Added the option to the
8225   curl_easy_setopt.3 man page too.
8226
8227 Daniel (7 August)
8228 - Test case 60 failed on ia64 and AMD Opteron. Fixed now.
8229
8230 - Fixed a printf problem that resulted in urlglobbing bugs (bug #203827 in the
8231   debian bug tracker). Added test case 74 to verify the fix and to discover if
8232   this breaks in the future.
8233
8234 - "make distcheck" works again.
8235
8236 Version 7.10.7-pre2 (6 August 2003)
8237
8238 Daniel (5 August)
8239 - Duncan Wilcox helped me verify that the latest incarnation of my ares patch
8240   builds fine on Mac OS X (see the new lib/README.ares) file for all details.
8241
8242 - Salvatore Sorrentino filed bug report #783116 and Early Ehlinger posted a
8243   bug report to the libcurl list, both identifying a problem with FTP
8244   persistent connections and how the dir hierarchy was not properly reset
8245   between files.
8246
8247 - David Byron's thoughts on a fixed Makefile in tests/ were applied.
8248
8249 - Jan Sundin reported a case where curl ignored a cookie that browsers don't,
8250   which turned up to be due to the number of dots in the 'domain'. I've now
8251   made curl follow the the original netscape cookie spec less strict on that
8252   part.
8253
8254 Daniel (4 August)
8255 - Dirk Manske added cookie support for the experimental, hidden and still
8256   undocumented share feature!
8257
8258 - Mark Fletcher provided an excellent bug report that identified a problem
8259   with FOLLOWLOCATION and chunked transfer-encoding, as libcurl would not
8260   properly ignore the body contents of 3XX response that included the
8261   Location: header.
8262
8263 Early (6 August)
8264 - Added option CURLOPT_FTP_CREATE_MISSING_DIRS
8265     This option will force the target file's path to be created if it
8266     does not already exist on the remote system.
8267  
8268   Files affected:
8269     - include/curl/curl.h
8270         Added option CURLOPT_FTP_CREATE_MISSING_DIRS
8271     - lib/ftp.c
8272         Added function ftp_mkd, which issues a MKD command
8273         Added function ftp_force_cwd, which attempts a CWD,
8274           and does a MKD and retries the CWD if the original CWD
8275           fails
8276         Modified ftp_perform() to call its change directory function
8277           through a pointer.  The pointer points to ftp_cwd by default,
8278           and is modified to point to ftp_force_cwd IFF
8279           data->set.ftp_create_missing_dirs is not 0.        
8280     - lib/url.c
8281         Modified Curl_setopt to recognize CURLOPT_FTP_CREATE_MISSING_DIRS
8282     - lib/urldata.h
8283         Added ftp_create_missing_dirs to struct UserDefined
8284        
8285 - Minor Bugfix for CURLOPT_TIMECONDITION with FTP - if the file was not
8286   present to do the time comparison, it would fail.
8287   Files affected:
8288     - lib/ftp.c
8289         In ftp_perform(), the call to ftp_getfiletime() used to be followed
8290         by
8291           if (result)
8292             return result;
8293         And then by the code that actually did the time comparison.
8294         The code that did the comparison handled the case where the filetime
8295         was not available (as indicated by info.filetime < 0 or set.timevalue 
8296         < 0), so I replaced the if (result) return result with a switch(result)
8297         that allows CURLE_FTP_COULDNT_RETR_FILE to fall through to the 
8298         normal time comparison.
8299
8300 Daniel (3 August)
8301 - When proxy authentication is used in a CONNECT request (as used for all SSL
8302   connects and otherwise enforced tunnel-thru-proxy requests), the same
8303   authentication header is also wrongly sent to the remote host.
8304
8305   This is a rather significant info leak. I've fixed it now and mailed a patch
8306   and warning to the mailing lists.
8307
8308 Daniel (1 August)
8309 - David Byron provided a patch to make 7.10.6 build correctly with the
8310   compressed hugehelp.c source file.
8311
8312 Version 7.10.7-pre1 (31 July 2003)
8313
8314 Daniel (30 July)
8315 - Jörg Müller-Tolk updated the VC makefile.
8316
8317 - Daniel Noguerol made the ftp code output "Accept-Ranges: bytes" in similar
8318   style like other faked HTTP headers when NOBODY and HEADER are used. I
8319   updated two corresponding test cases too.
8320
8321 - Marty Kuhrt pointed out a compilation problem on VMS due to my having
8322   changed a type from long to time_t, and I'm now changing it back to work
8323   more portably...
8324
8325   He also indicated that distributing the src/hugehelp.c in a compressed state
8326   like I accidentally did may not be the smartest move... I've now fixed the
8327   distribute procedure to automatically generate an uncompressed version when I
8328   make release archives.
8329
8330 Daniel (29 July)
8331 - Gisle Vanem brought changes to the mkhelp script for the generation of the
8332   compressed help text on some platforms.
8333
8334 Version 7.10.6 (28 July 2003)
8335
8336 Daniel (28 July)
8337 - François Pons brought a patch that once again made curl deal with ftp and
8338   "double slash" as indicating the root directory. In the RFC1738-fix of April
8339   30, that ability was removed (since it is not the "right" way). So, starting
8340   now we can list the root dir of an ftp server both these ways:
8341
8342     curl ftp://server.com/%2f  as well as
8343     curl ftp://server.com//
8344
8345 Daniel (24 July)
8346 - Henry Bland pointed out that we included sys/resource.h without good reason
8347   in several source files. Without it included, QNX builds better...
8348
8349 - Andrés García updated the mingw makefiles.
8350
8351 Daniel (23 July)
8352 - Tracy Boehrer experienced DNS cache problems and did some nice debugging
8353   and tracking which made it easy for me to correct the problem and Tracy
8354   could verify that it did cure the problem! When re-using a connection we
8355   now make sure we don't re-use the 'connect_addr' struct.
8356
8357 - Daniel Kouril corrected the GSS-Negotiate code.
8358
8359 - Juan F. Codagnone provided fixes to allow curl to build fine on Windows
8360   again.
8361
8362 Daniel (22 July)
8363 - Edited the curl/curl.h include file to build on Windows properly.
8364
8365 Daniel (21 July)
8366 - Moved the proxy credentials from the SessionHandle struct to the connectdata
8367   struct, to make multiple proxy connections with differerent user names work.
8368
8369 - Adjusted the NTLM code to support proxy functionality.
8370
8371 - Made the krb4 stuff compile with the user+password fields moved.
8372
8373 Version 7.10.6-pre4 (21 July 2003)
8374
8375 Daniel (20 July)
8376 - David Gardner pointed out in bug report 770755 that using the FTP command
8377   CWD with a blank argument is a bad idea and I made libcurl skip empty path
8378   segments starting now.
8379
8380 Daniel (18 July)
8381 - Cris pointed out that my fix on July 16th didn't work fully. His pointing
8382   out this (and his patch) also made me realize that we have a very similar
8383   bug in the FTP connection re-use code. We must store a separate user and
8384   password field for each connection we keep (at least for FTP and HTTP+NTLM
8385   connections, so I made us do this unconditionally).
8386
8387 - Since NTLM authenticates connections instead of single requests, I had to
8388   re-arrange how we store the NTLM data and I had to improve the test suite to
8389   finally work properly with persistency to make the NTLM tests run fine
8390   again. This also forced me to have to update lots of HTTP test cases.
8391
8392 Daniel (16 July)
8393 - Cris Bailiff's bug report 768275 pointed out that using Basic auth with
8394   wrong user+password caused an endless loop. Fixed now. He also found out that
8395   we didn't properly authenticate connections with NTLM. Fixed too.
8396
8397 - Dan Winship provided fixes for the NTLM code.
8398
8399 Daniel (5 July)
8400 - Doug Kaufman provided additional fixes for the DOS port.
8401
8402 Daniel (4 July)
8403 - Rick Richardson pointed out that using setvbuf() to achieve non-buffering
8404   on output is no-good for SCO Xenix and other unixes. We switched over to
8405   using plain fflush() instead.
8406
8407 - Dan Grayson pointed out that we set the CURL_CA_BUNDLE variable wrongly in
8408   the configure script, and I had to change some build stuff to make the new
8409   way work.
8410
8411 - Peter Sylvester's patch was applied that introduces the following:
8412
8413    CURLOPT_SSL_CTX_FUNCTION to set a callback that gets called with the
8414    OpenSSL's ssl_ctx pointer passed in and allow a callback to act on it. If
8415    anything but CURLE_OK is returned, that will also be returned by libcurl
8416    all the way back. If this function changes the CURLOPT_URL, libcurl will
8417    detect this and instead go use the new URL.
8418
8419    CURLOPT_SSL_CTX_DATA is a pointer you set to get passed to the callback set
8420    with CURLOPT_SSL_CTX_FUNCTION.
8421
8422 Daniel (1 July)
8423 - David Byron provided a patch that allows a client to quit the test suite's
8424   HTTP server.
8425
8426 - Gisle Vanem found and patched a lib handle leak in the ldap code.
8427
8428 Daniel (25 June)
8429 - More NTLM-improvements. Less code. Smaller packets back and forth.
8430
8431 Daniel (23 June)
8432 - Eric Glass provided us with a better doc on NTLM details, and I added more
8433   comments and clarified the current code more. Using the new knowledge, we
8434   should be able to make the NTLM stuff work even better.
8435   Eric's original URL: http://davenport.sourceforge.net/ntlm.html
8436   Version stored and provided at curl site: http://curl.haxx.se/rfc/ntlm.html
8437
8438 - Fixed the minor compile problems pre3 had if built without GSSAPI and/or
8439   SSL.
8440
8441 Version 7.10.6-pre3 (19 June 2003)
8442
8443 Daniel (19 June)
8444 - Made curl use curl_free() on memory returned by curl_getenv(), as this
8445   should theoreticly make it possibly to build and run curl and libcurl with
8446   different memory allocation schemes with no problems.
8447
8448 Daniel (18 June)
8449 - Improved the mkhelp.pl a bit further to make a nicer hugehelp text and to
8450   include a better comment in the top for the gzip compressed version.
8451
8452 Daniel (17 June)
8453 - CURLOPT_HTTPAUTH is now a bitmask, in which you set which authentication
8454   type(s) you want to use. If more than one is set, libcurl will use one of
8455   the selected one and the one it considers is more secure. Test case 67 and
8456   68 (for NTLM) were fixed and we've reduced a round-trip for specific --ntlm
8457   fetches, and test case 69 and 70 were added for testing authentication
8458   "picking". --anyauth is the new command line tool option, and I also added
8459   --basic for completeness (that's the default type).
8460
8461 - Fixed the runtests.pl script to use the info provided by the new curl -V
8462   output.
8463
8464 - --enable-debug now sets the CURLDEBUG define instead of MALLOCDEBUG, as it
8465   is meant to be a generic debug conditional.
8466
8467 - curl_version_info() can now return CURL_VERSION_DEBUG as a feature bit, to
8468   indicate that the library was built with CURLDEBUG set.
8469
8470 - Ralph Mitchell found out that some web applications very badly uses white
8471   spaces in Location: redirects, and apparently IE is a browser (the only
8472   one?) that supports this abomination. Based on Ralph's patch, I added code
8473   that now attempts to replace white spaces with the proper "%20" or "+".
8474   Test case 40 and 42 were added to verify my changes.
8475
8476 - curl -V now also outputs a list of features the available library offers (if
8477   any).
8478
8479 - The curl_version() string now includes "GSS" if libcurl is built with GSSAPI
8480   support.
8481
8482 - David Orrell reported that libcurl still crashed when sending HUGE requests
8483   over HTTPS... I fixed.
8484
8485 Version 7.10.6-pre2 (16 June 2003)
8486
8487 Daniel (16 June)
8488 - curl_version_info() now returns bitmasked information weather NTLM and
8489   GSSNEGOTIATE are supported, since it is doomed to vary on different
8490   installations.
8491
8492 - I remade the HTTP Digest code to use the MD5-code provided by OpenSSL if
8493   that is present, and only use our own MD5-code if it isn't.
8494   
8495 Daniel (13 June)
8496 - More NTLM help, fixes and patches from Cris Bailiff.
8497
8498 - Marty Kuhrt brought include fixes for making VMS builds warning-free.
8499
8500 Daniel (12 June)
8501 - NTLM authentication works somewhat against the test servers provided by
8502   Mathias Axelsson and Cris Bailiff. Use by setting CURLOPT_HTTPAUTH to
8503   CURLAUTH_NTLM to libcurl, or --ntlm for the curl tool. Test case 67 and 68
8504   were added for this. NTLM-support requires OpenSSL.
8505
8506 - Dan Fandrich provided a patch, that granted that gzip and libz are available
8507   at build-time, compresses the hugehelp text in the curl command line and
8508   uncompresses it at request. Saves some ~60K in the final output executable.
8509
8510 Daniel (11 June)
8511 - Long day of fighting the NTLM demons.
8512
8513 Daniel (10 June)
8514 - Modified how to set auth type to libcurl. Now use CURLOPT_HTTPAUTH instead,
8515   and pick method. Supported ones currently are:
8516   CURLAUTH_BASIC     - default selection
8517   CURLAUTH_DIGEST    - formerly CURLOPT_HTTPDIGEST
8518   CURLAUTH_GSSNEGOTIATE
8519
8520 - Daniel Kouril added HTTP GSS-Negotiate authentication support, as defined in
8521   the IETF draft draft-brezak-spnego-http-04.txt. In use already by various
8522   Microsoft web applications. --negotiate is the new family member. To take
8523   advantage of this, you need one of these packages:
8524
8525   o Heimdal Kerberos5               http://www.pdc.kth.se/heimdal/heimdal.html
8526   o GSSAPI from Globus                   http://www.globus.org/
8527   o GSSAPI libraries from MIT Kerberos5  http://web.mit.edu/kerberos/www/
8528
8529 - A missing ending bracket (']') while doing URL globbing could lead to a
8530   segfault. While fixing this, I also introduced better error reporting in the
8531   globbing code. (All this is application code outside libcurl.)
8532
8533 Daniel (6 June)
8534 - David Orrell found out that sending a huge GET request over HTTPS could
8535   make libcurl fail and return an error code.
8536
8537 Daniel (2 June)
8538 - Richard Bramante found out that "Content-Length: 0" was not properly used by
8539   libcurl if the response-headers indicated that the connection would be
8540   closed.
8541
8542 - David Byron's patch was applied, that makes the --progress-bar take the
8543   local size into account when doing resumed downloads.
8544
8545 - Feedback from Serge Semashko made me change the error message returned when
8546   CURLE_HTTP_RETURNED_ERROR is returned.
8547
8548 - Anonymous in bug report #745122 pointed out that we should really be using
8549   SSL_CTX_set_options(... SSL_OP_ALL) to work around flaws in existing SSL
8550   implementations.
8551
8552 Daniel (27 May)
8553 - Andreas Ley and Rich Gray helped me point out that no version of HP-UX has
8554   the sys/select.h header file so including it unconditionally in curl/multi.h
8555   is not a good thing. Now we check for HPUX and avoid using that header on
8556   such systems.
8557
8558 - Rudy Koento experienced problems with curl's recent habit of POSTing data in
8559   two separate send() calls, first the headers and then the data. I've now
8560   made a fix that for static and known content that is less than 100K in size,
8561   everything is now sent in one single system call again. This is also better
8562   for network performance reasons.
8563
8564 - I modified the main makefile to not build the test suite and a few other
8565   unnecessary things by default. Now, the test suite is built when 'make test'
8566   is run.  This reduces build time for those who don't care for the test
8567   suite, and it also reduces confusion for people using platforms where the
8568   test suite build fails!
8569
8570 Daniel (26 May)
8571 - Chris Lewis pointed out a flaw in the #ifdefs in curl/multi.h for Windows,
8572   which is now corrected.
8573
8574 - Jis Joy found another flaw in the SOCK5 code, as libcurl treated the socks5
8575   proxy a little too much like as if it was a http proxy.
8576
8577 Daniel (23 May)
8578 - Ricardo Cadime found a socket leak when listing directories without
8579   contents. Test cases 144 and 145 were added to verify the fix.
8580
8581 - Rudy Koento found yet another problem when a HTTP server returns only a
8582   single-line of contents without any headers at all. libcurl then failed to
8583   count the data, thus returning error 52 "no contents". Test case 66 was
8584   added to verify that we now do right.
8585
8586 Version 7.10.6-pre1 (23 May 2003)
8587
8588 Daniel (23 May)
8589 - Jis in bug report #741841, fixed a bug in the SOCKS5 proxy-using code.
8590
8591 Daniel (22 May)
8592 - David Remahl set up a test-server for me providing Digest authentication,
8593   and I wrote the first working code that support it. The test suite was
8594   modified slightly as well to work better for it and --digest was added to
8595   the command line options (and CURLOPT_HTTPDIGEST to the library)...  RFC2617
8596   has all the gory details.
8597
8598 Daniel (21 May)
8599 - David Balazic pointed out that curl_unescape() didn't check that %-codes
8600   were correctly followed by two hexadecimal digits when it unescape strings.
8601   Now, we do the check and only %XX codes are unescaped if the X letters are
8602   hexadecimals.
8603
8604 - Gisle Vanem made curl build with djgpp on DOS.
8605
8606 - Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is
8607   shown with curl -M.
8608
8609 Daniel (20 May)
8610 - Gisle Vanem provided a fix that makes libcurl more conservative, not
8611   expecting h_aliases of the hostent struct to always be non-NULL.
8612
8613 Daniel (19 May)
8614 - As requested by Martin Michlmayr in Debian bug report #193630, libcurl now
8615   supports user name and password in the proxy environment variables. Added
8616   test case 63 to verify this.
8617
8618 Version 7.10.5 (19 May 2003)
8619
8620 Daniel (15 May)
8621 - Changed the order for the in_addr_t testing, as 'unsigned long' seems to be
8622   a very common type inet_addr() returns.
8623
8624 Daniel (14 May)
8625 - George Comninos provided a fix that calls the progress meter when waiting
8626   for FTP command responses take >1 second. It'll make applications more
8627   "responsive" even when dealing with very slow ftp servers.
8628
8629 Daniel (12 May)
8630 - George Comninos pointed out that libcurl uploads had two quirks:
8631    o when using FTP PORT command, it used blocking sockets!
8632    o it could loop a long time without doing progress meter updates
8633   Both items are fixed now.
8634
8635 Daniel (9 May)
8636 - Dan Fandrich changed CURLOPT_ENCODING to select all supported encodings if
8637   set to "".  This frees the application from having to know which encodings
8638   the library supports.
8639
8640 - Dan Fandrich pointed out we had three unnecessary files in CVS that is
8641   generated with libtoolize, so they're now removed and libtoolize is invoked
8642   accordingly in the buildconf script.
8643
8644 - Avery Fay found out that the CURLOPT_INTERFACE way of first checking if the
8645   given name is a network interface gave a real performance penalty on Linux,
8646   so now we more appropriately first check if it is an IP number and if so
8647   we don't check for a network interface with that name.
8648
8649 - CURLOPT_FTP_USE_EPRT added. Set this to FALSE to disable libcurl's attempts
8650   to use EPRT and LPRT before the traditional PORT command. The command line
8651   tool sets this option with '--disable-eprt'.
8652
8653 Version 7.10.5-pre2 (6 May 2003)
8654
8655 Daniel (6 May)
8656 - Kevin Delafield reported another case where we didn't correctly check for
8657   EAGAIN but only EWOULDBLOCK, which caused badness on HPUX.
8658
8659 Daniel (4 May)
8660 - Ben Greear noticed that the check for 'writable argv' exited the configure
8661   script when run for cross-compiling, which wasn't nice. Now it'll default to
8662   no and output a warning about the fact that it was not checked for.
8663
8664 Daniel (2 May)
8665 - Added test case 62 and fixed some more on the cookie sending with a custom
8666   Host: header set.
8667
8668 Daniel (1 May)
8669 - Andy Cedilnik fixed a few compiler warnings.
8670
8671 - Made the "SSL read error: 5" error message more verbose, by adding code that
8672   queries the OpenSSL library to fill in the error buffer.
8673
8674 Daniel (30 Apr)
8675 - Added sys/select.h include in the curl/multi.h file, after having been
8676   reminded about this by Rich Gray.
8677
8678 - I made each test set its own server requirements, thus abandoning the
8679   previous system where the test number implied what server(s) to use for a
8680   specific test.
8681
8682 - David Balazic made curl more RFC1738-compliant for FTP URLs, by fixing so
8683   that libcurl now uses one CWD command for each path part. A bunch of test
8684   cases were fixed to work accordingly.
8685
8686 - Cookie fixes:
8687
8688   A. Save domains in jars like Mozilla does. It means all domains set in
8689      Set-Cookie: headers are dot-prefixed.
8690   B. Save and use the 'tailmatch' field in the Mozilla/Netscape cookie jars
8691      (the second column).
8692   C. Reject cookies using illegal domains in the Set-Cookie: line. Concerns
8693      both domains with too few dots or domains that are outside the currently
8694      operating server host's domain.
8695   D. Set the path part by default to the one used in the request, if none was
8696      set in the Set-Cookie line.
8697
8698   To make item C really good, I also made libcurl notice custom Host: headers
8699   and extract the host name set in there and use that as the host name for the
8700   site we're getting the cookies from. This allows user to specify a site's
8701   IP-address, but still be able to receive and send its cookies properly if
8702   you provide a valid Host: name for the site.
8703
8704 Daniel (29 Apr)
8705 - Peter Kovacs provided a patch that makes the CURLINFO_CONNECT_TIME work fine
8706   when using the multi interface (too).
8707
8708 Version 7.10.5-pre1 (23 Apr 2003)
8709
8710 Daniel (23 Apr)
8711 - Upgraded to libtool 1.5.
8712
8713 Daniel (22 Apr)
8714 - Peter Sylvester pointed out that curl_easy_setopt() will always (wrongly)
8715   return CURLE_OK no matter what happens.
8716
8717 - Dan Fandrich fixed some gzip decompression bugs and flaws.
8718
8719 Daniel (16 Apr)
8720 - Fixed minor typo in man page, reported in the Debian bug tracker.
8721
8722 Daniel (15 Apr)
8723 - Fixed some FTP tests in the test suite that failed on my Solaris host, due
8724   to the config.h not being included before the system headers. When done that
8725   way, it did get a mixed sense of if big files are supported or not and then
8726   stat() and fstat() (as used in test case 505) got confused and failed to
8727   return a proper file size.
8728
8729 - Formposting a file using a .html suffix is now properly set to Content-Type:    text/html.
8730
8731 Daniel (14 Apr)
8732 - Fixed the SSL error handling to return proper SSL error messages again, they
8733   broke in 7.10.4. I also attempt to track down CA cert problems and then
8734   return the CURLE_SSL_CACERT error code.
8735
8736 - The curl tool now intercepts the CURLE_SSL_CACERT error code and displays
8737   a fairly big and explanatory error message. Kevin Roth helped me out with
8738   the wording.
8739
8740 Daniel (11 Apr)
8741 - Nic Hines provided a second patch for gzip decompression, and fixed a bug
8742   when deflate or gzip contents were downloaded using chunked encoding.
8743
8744 - Dan Fandrich made libcurl support automatic decompression of gzip contents
8745   (as an addition to the previous deflate support).
8746
8747 - I made the CWD command during FTP session consider all 2xy codes to be OK
8748   responses.
8749
8750 Daniel (10 Apr)
8751 - Vlad Krupin fixed a URL parsing issue. URLs that were not using a slash
8752   after the host name, but still had "?" and parameters appended, as in
8753   "http://hostname.com?foobar=moo", were not properly parsed by libcurl.
8754
8755 Daniel (9 Apr)
8756 - Made CURLOPT_TIMECONDITION work for FTP transfers, using the same syntax as
8757   for HTTP. This then made -z work for ftp transfers too. Added test case 139
8758   and 140 for verifying this.
8759
8760 - Getting the file date of an ftp file used the wrong time zone when
8761   displayed. It is supposedly always GMT. Added test case 141 for this.
8762
8763 - Made the test suite's FTP server support MDTM.
8764
8765 - The default DEBUGFUNCTION, as enabled with CURLOPT_VERBOSE now outputs
8766   CURLINFO_HEADER_IN data as well. The most notable effect from this is that
8767   using curl -v, you get to see the incoming "headers" as well. This is
8768   perhaps most useful when doing ftp.
8769
8770 Daniel (8 Apr)
8771 - James Bursa fixed a flaw in the Content-Type extraction code, which missed
8772   the first letter if no space followed the colon.
8773
8774 - Magnus Nilsson pointed out that share.c was missing in the MSVC project
8775   file.
8776
8777 Daniel (6 Apr)
8778 - Ryan Weaver provided a patch that makes the CA cert bundle not get installed
8779   anymore when 'configure --without-ssl' has been used.
8780
8781 Daniel (4 Apr)
8782 - Martijn Broenland found another cases where a server application didn't
8783   like the boundary string used by curl when doing a multi-part/formpost. We
8784   modified the boundary string to look like the one IE uses, as this is
8785   probably gonna make curl work with more applications.
8786
8787 Daniel (3 Apr)
8788 - Kevin Roth reported that a bunch of tests fails on cygwin. One set fails
8789   when using perl 5.8 (and they run fine with perl 5.6), and another set
8790   failed because of an artifact in the test suite's FTP server that I
8791   corrected. It turned out the FTP server code was still having a file opened
8792   while the main test script removed it and invoked the HTTP server that
8793   attempted to create the same file name of the file the FTP server kept open.
8794   This operation works fine on unix, but not on cygwin.
8795
8796 Version 7.10.4 (2 Apr 2003)
8797
8798 Daniel (1 Apr)
8799 - Added test case 505 to exercise FTP upload with rename done with libcurl,
8800   and for that I had to extend the test suite's FTP server to deal with the
8801   RNFR and RNTO commands.
8802
8803 Daniel (31 Mar)
8804 - Even more SSL config check modifications after Richard's testing.
8805
8806 Version 7.10.4-pre6 (31 Mar 2003)
8807
8808 Daniel (31 Mar)
8809 - More fixes for the SSL session ID cache checks when SSL configs are changed
8810   between connections. Based on tests and talks with Richard Bramante.
8811
8812 - Guillaume Cottenceau provided a patch that added CURLOPT_UNRESTRICTED_AUTH.
8813   When enabled, it will prevent libcurl from limiting to which host it sends
8814   user+password to when following locations. By default, libcurl only sends
8815   name and password to the original host used in the first URL, but with this
8816   option set it will send the auth info to all hosts it follows location
8817   headers to. The new tool command line option for this is named
8818   "--location-trusted".
8819
8820 - Frankie Fong reported a problem with libcurl if you re-used an easy handle
8821   with a proxy, and you first made a https:// connection to a host and then
8822   switched to a http:// one to the same host. libcurl would then wrongly re-use
8823   the same connection for it and fail to get the second URL properly
8824
8825 Daniel (29 Mar)
8826 - Dan Shearer's fix that makes curl complain if invoked with nothing but "curl
8827   -O" was applied.
8828
8829 Daniel (26 Mar)
8830 - Bryan Kemp was friendly enough to lend me an account on his Redhat 9 box and
8831   I could fix the configure problems on redhat 8.1 and 9 in no time thanks to
8832   this. Thanks a bunch Bryan!
8833
8834 Daniel (25 Mar)
8835 - Renamed configure.in to configure.ac
8836
8837 Version 7.10.4-pre5 (25 Mar 2003)
8838
8839 Daniel (25 Mar)
8840 - Richard Bramante provided a fix for a handle re-use problem seen when you
8841   change options on an SSL-enabled connection between requests. Previously,
8842   changing peer verification or host verification and similar things was not
8843   taken into account when a connection were checked for re-use and thus
8844   enabling stricter check between requests on a re-used connection made no
8845   difference and the connection would thus be used erroneously.
8846
8847 Daniel (24 Mar)
8848 - Götz Babin-Ebell pointed out that the ca-bundle.crt file contained a
8849   certificate from Trustcenter that was a demo certificate only that was never
8850   intended to be part of a CA bundle.
8851
8852 Daniel (21 Mar)
8853 - Life is a mystery. Within a time period of 17 hours, Tim Pope and Michael
8854   Churchill filed one bug report each, both identifying problems with a second
8855   transfer when doing persistent transfers re-using a connection. Tim's one is
8856   #706624, labeled "Multiple uploads per handle fail" and Michael's #707003
8857   "Does not send Authorization: header when reusing connection". I could track
8858   both down to the same piece of logic and it turned out libcurl was not using
8859   new settings properly when re-using an existing connection. This concerned
8860   both uploading and downloading and involved exactly those pieces these two
8861   reports identified. This code has been this faulty since the day I
8862   introduced persistent connection support in libcurl, more than 2 years ago.
8863
8864 Daniel (20 Mar 2003)
8865 - Five year anniversary. Today five years ago, the first ever curl release saw
8866   the light of day.
8867
8868 Daniel (17 Mar)
8869 - Andy Cedilnik corrected flaws in some libcurl example-usage sources.
8870
8871 Daniel (16 Mar)
8872 - Juan F. Codagnone reported that the fix from March 2nd was incomplete.
8873
8874 - Added code to the configure.in to check for select() argument types. I've
8875   not made any code use the results just yet though.
8876
8877 Daniel (15 Mar)
8878 - Gisle Vanem provided two patches to build better on Windows.
8879
8880 - Adjusted the test suite code to better make sure that the server(s) required
8881   for a specific test is properly started before the test case is attempted.
8882   Many tests now run a lot faster than before.
8883
8884 Daniel (14 Mar)
8885 - Another configure.in adjustment made the configure detect functions properly
8886   on HPUX now.
8887
8888 Daniel (13 Mar)
8889 - Philippe Raoult fixed pre4-compile quirks for FreeBSD.
8890
8891 Version 7.10.4-pre4 (13 Mar 2003)
8892
8893 Daniel (13 Mar)
8894 - Added a backup-check for functions that aren't found by AC_CHECK_FUNCS()
8895   as I believe some checks on HPUX need this. At least some of the info given
8896   to us by Rick Jones seemed to indicate this.
8897
8898 Daniel (12 Mar)
8899 - Thomas Tonino found out that if you used the curl tool to do PUT operations
8900   as in 'curl www.foo.com/dir/ -T file' and the file name included for example
8901   space or other characters that don't belong in URLs, curl did not properly
8902   URL encode them before using them in the URL.
8903
8904 - Added an option to configure called --enable-libgcc that simply adds -lgcc
8905   to the LIBS variable, as this seems to be a common problem.
8906
8907 - I modified the configure.in file, so that the headers are now checked in an
8908   order of "viality". We must also make sure to use the "default headers"
8909   parameter to AC_CHECK_HEADERS() so that headers are checked with the proper
8910   prerequisites included (i.e all the major and generally important header
8911   files are included there by default). This might be what we need for various
8912   Sun, HP, AIX and Tru64 systems to behave good again on the header check
8913   front.
8914
8915 - Rick Jones pointed out a few compiler warnings on HP-UX that I addressed.
8916
8917 - I made the configure --help output nicer by using AC_HELP_STRING() a lot
8918   more.
8919
8920 Daniel (11 Mar)
8921 - Christophe Demory fixed the socket sending code to work better on HP-UX
8922   when sending data to a socket that would block. It then returns EAGAIN, not
8923   EWOULDBLOCK.
8924
8925 - Richard Gorton improved the seeding function for systems without a good
8926   and reliable random source.
8927
8928 - Richard Gorton fixed a few warnings that popped up when you built curl
8929   using the Sun compiler on a 64bit SPARC platform.
8930
8931 - Martin C. Martin fixed a case where a connect failure using the multi
8932   interface didn't produce a human readable error string.
8933
8934 Daniel (10 Mar)
8935 - Reverted ltmain.sh back to libtool 1.4.2 status again, as the 1.4.3 version
8936   broke the build on numerous platforms. It seems that libtool 1.4.3 puts some
8937   requirements on what versions of the other tools (autoconf + automake) that
8938   I am not familiar with and thus I couldn't fulfill at this point.
8939
8940   Yes, this is more than mildly frustrating.
8941
8942 Daniel (7 Mar)
8943 - Run libtoolize version 1.4.3.
8944
8945 Version 7.10.4-pre3 (4 Mar 2003)
8946
8947 Daniel (3 Mar)
8948 - Added share.obj to the VC6 and Borland libcurl makefiles.
8949
8950 - Troels Walsted Hansen found and investigated a problem with libcurl on AIX,
8951   presumably only on 4.3 or later. gethostbyname_r() is not returning data
8952   that is possible to "keep" and cache the way libcurl does. But instead these
8953   versions of AIX uses a gethostbyname() that works thread-safely we can
8954   instead use the ordinary gethostbyname() and our pack_hostent() approach to
8955   achieve what we want. The configure script now attempts to detect AIX 4.3 or
8956   later to adjust for this.
8957
8958 Daniel (2 Mar)
8959 - Juan F. Codagnone found a problem introduced in 7.10.3 when you first did a
8960   POST and then back to a GET using the same easy handle.
8961
8962 Daniel (28 Feb)
8963 - Removed the strequal and strnequal defines from curl/curl.h header. They
8964   were never meant for the public header anyway. Philippe Raoult brought it
8965   up.
8966
8967 - James Bursa fixed the RISC OS build.
8968
8969 Daniel (27 Feb)
8970 - Avery Fay pointed out the very misleading curl_multi_info_read man page, and
8971   I updated it to become more accurate.
8972
8973 - Salvatore Sorrentino found a problem with FTP downloading that turned out to
8974   be his FTP server returning size zero (0 bytes) when SIZE was used on a file
8975   while being in BINARY mode. We now make a second check for the actual size
8976   by scanning the RETR reply anyway, even if the SIZE command returned 0.
8977
8978 Daniel (26 Feb)
8979 - Kyle Sallee reported a case where he would do a transfer that didn't update
8980   the progress meter properly. It turned out to be a case where libcurl would
8981   loop a little too eagerly in the transfer loop, which isn't really good for
8982   the APIs, especially not the multi API.
8983
8984 Version 7.10.4-pre2 (24 Feb 2003)
8985
8986 Daniel (24 Feb)
8987 - Kjetil Jacobsen found out that setting CURLOPT_MAXCONNECTS to a value higher
8988   than 5 could cause a segfault.
8989
8990 - I believe I fixed the 'Expect: 100-continue' behavior that has been broken
8991   for a while (I think since my change dated Dec 10 2002). When this header is
8992   used, libcurl should wait for a HTTP 100 (or timeout) before sending the
8993   post/put data.
8994
8995 Daniel (14 Feb)
8996 - Matthew Clarke provided some info what to modify to make curl build
8997   flawlessly on AIX 3.2.5.
8998
8999 - Martin C. Martin found and fixed a problem in the multi interface when
9000   running on Windows and trying to connect to a port without a listener.
9001
9002 Daniel (13 Feb)
9003 - Christopher R. Palmer fixed Curl_base64_encode() to deal with zeroes in the
9004   data to encode.
9005
9006 Daniel (4 Feb)
9007 - Jean-Philippe added the first code that enables the 'share' system. This
9008   should now enable sharing of DNS data between two curl easy handles.
9009
9010 - Incorporated Nico Baggus' fixes to again compile flawlessly on VMS.
9011
9012 - James Bursa corrected a bad comment in the public include file curl/multi.h
9013
9014 - Peter Forret reported one of those error:00000000 cases in libcurl again
9015   when connecting to a HTTPS site, and this time I did discover some oddities
9016   in how curl reports SSL errors back. It could miss showing the actual error.
9017
9018 Version 7.10.4-pre1 (3 Feb 2003)
9019
9020 Daniel (3 Feb)
9021 - Removed things in the docs saying capath doesn't work on Windows, as Julian
9022   Noble told us it works fine.
9023
9024 Daniel (31 Jan)
9025 - Kevin Roth fixed the zlib build stuff in the Mingw32 makefile.
9026
9027 Daniel (30 Jan)
9028 - Kevin Roth found out that curl on Windows always checked for the CA cert
9029   bundle using the environment variable and the path scan, even though
9030   -k/--insecure was used.
9031
9032 - Hamish Mackenzie pointed out that curl only did strict host name verifying
9033   if capath or cainfo was used. Now it'll always do it unless -k / --insecure
9034   is used!
9035
9036 - Pavel Cenek pointed out that the Content-Type extraction was done wrongly
9037   as the full string was not fetched. Added test case 57 to verify that curl
9038   does it right now.
9039
9040 Daniel (29 Jan)
9041 - Jamie Wilkinson provided a patch that now makes curl attempt to clear out
9042   "sensitive" command line arguments so that they don't appear in ps outputs
9043   (only on platforms that allow writing to argv[]).
9044
9045 - John McGowan found out that the DEBUGFUNCTION could be called with bad
9046   arguments and thus cause the --trace outputs to go wrong.
9047
9048 - Removed all the emacs local variables from all files. Mats Lidell provided
9049   the new sample.emacs file (for a sample of what to include in your .emacs)
9050   and the curl-style.el that sets a better c-style for editing curl sources.
9051
9052 - Dave Halbakken found a problem with FTP downloads that could accidently
9053   return CURLE_PARTIAL_FILE when curl_easy_perform() was called with NOBODY
9054   set TRUE.
9055
9056 Daniel (27 Jan)
9057 - The fopen.c example was flawed as Nick Humfrey noticed, and I fixed it to
9058   work again.
9059
9060 Daniel (24 Jan)
9061 - Bertrand Demiddelaer found and fixed a memory leak (the content-type string)
9062   when following locations.
9063
9064 Daniel (22 Jan 2003)
9065 - Ian Wilkes and Legoff Vincent both independently provided fixes for making
9066   curl/multi.h work properly when compiled with a C++ compiler.
9067
9068 Daniel (20 Jan 2003)
9069 - Fixed 'buildconf' to check version number of the required tools before
9070   they're actually used.
9071
9072 - Wrote 'testcurl.sh', a script targeted for automatic and distributed curl
9073   tests on various platforms.
9074
9075 - David Thiel pointed out that the .netrc file was not being dealt with
9076   properly anymore. I broke this in the password prompting "fix".
9077
9078 - Markus F.X.J. Oberhumer patched libcurl to allocate the scratch buffer only
9079   on demand and thus we save 32KB in each curl handle that don't use that
9080   buffer. This need appeared when some people started using thousands of
9081   simultaneous curl handles... :-)
9082
9083 Daniel (16 Jan 2003)
9084 - Markus Oberhumer fixed curl-config --cflags when the includedir was not
9085   /usr/include.
9086
9087 - Markus Oberhumer fixed CURLINFO_PRIVATE to properly return NULL if it was
9088   set to NULL!
9089
9090 Version 7.10.3 (14 Jan 2003)
9091
9092 Daniel (10 Jan 2003)
9093 - Steve Oliphant pointed out that test case 105 did not work anymore and this
9094   was due to a missing fix for the password prompting.
9095
9096 Version 7.10.3-pre6 (10 Jan 2003)
9097
9098 Daniel (9 Jan 2003)
9099 - Bryan Kemp pointed out that curl -u could not provide a blank password
9100   without prompting the user. It can now. -u username: makes the password
9101   empty, while -u username makes curl prompt the user for a password.
9102
9103 - Kjetil Jacobsen found a remaining connect problem in the multi interface on
9104   ipv4 systems (Linux only?), that I fixed and Kjetil verified that it fixed
9105   his problems.
9106
9107 - memanalyze.pl now reads a file name from the command line, and no longer
9108   takes the data on stdin as before.
9109
9110 Version 7.10.3-pre5 (9 Jan 2003)
9111
9112 Daniel (9 Jan 2003)
9113 - Fixed tests/memanalyze.pl to work with file names that contain colons (as on
9114   Windows).
9115   
9116 - Kjetil Jacobsen quickly pointed out that lib/share.h was missing...
9117
9118 Version 7.10.3-pre4 (9 Jan 2003)
9119
9120 Daniel (9 Jan 2003)
9121 - Updated lib/share.c quite a bit to match the design document at
9122   http://curl.haxx.se/dev/sharing.txt a lot more.
9123
9124   I'll try to update the document soonish. share.c is still not actually used
9125   by libcurl, but the API is slowly getting there and we can start
9126   implementing code that takes advantage of this system.
9127
9128 Daniel (8 Jan 2003)
9129 - Updated share stuff in curl/curl.h, including data types, structs and
9130   function prototypes. The corresponding files in lib/ were also modified
9131   of course to remain compilable. Based on input from Jean-Philippe and also
9132   to make it more in line with the design document.
9133
9134 - Jean-Philippe Barrette-LaPierre patched a very trivial memory leak in
9135   curl_escape() that would happen when realloc() returns NULL...
9136
9137 - Matthew Blain provided feedback to make the --create-dirs stuff build
9138   properly on Windows.
9139
9140 - Fixed the #include in tests/libtest/first.c as Legoff Vincent pointed out.
9141
9142 Daniel (7 Jan 2003)
9143 - Philippe Raoult provided a patch that now makes libcurl properly support
9144   wildcard checks for certificate names.
9145
9146 - Simon Liu added CURLOPT_HTTP200ALIASES, to let an application set other
9147   strings recognized as "HTTP 200" to allow http-like protocols to get
9148   downloaded fine by curl.
9149
9150 - Now using autoconf 2.57 and automake 1.7.2
9151
9152 - Doing "curl -I ftp://domain/non-existing-file" still outputed a date!
9153   Wayne Haigh reported.
9154
9155 - The error message is now written properly with a newline in the --trace
9156   file.
9157
9158 Daniel (6 Jan 2003)
9159 - Sterling Hughes fixed a possible bug: previously, if you called
9160   curl_easy_perform and then set the global dns cache, the global cache
9161   wouldn't be used. Pointed out by Jean-Philippe Barrette-LaPierre.
9162
9163 - Matthew Blain's fixed the VC6 libcurl makefile to include better debug data
9164   on debug builds.
9165 Daniel (27 Dec 2002)
9166 - Philippe Raoult reported a bug with HTTPS connections which I evidently
9167   added in my 19 dec fix. I corrected it.
9168
9169 Daniel (20 Dec)
9170 - Idea from the Debian latest patch: use AM_MAINTAINER_MODE in the configure
9171   script to make the default makefile less confusing "to the casual
9172   installer".
9173
9174 Version 7.10.3-pre3 (20 Dec)
9175
9176 Daniel (19 Dec)
9177 - Matthew Blain patched the Curl_base64_decode() function.
9178
9179 - Evan Jordan reported in bug report #653022 that the SSL_read() usage was
9180   wrong, and it certainly was. It could lead to curl using too much CPU due to
9181   a stupid loop.
9182
9183 Daniel (18 Dec)
9184 - As suggested by Margus Freudenthal, CURLE_HTTP_NOT_FOUND was renamed to
9185   CURLE_HTTP_RETURNED_ERROR since it is returned on any >= 400 code when
9186   CURLOPT_FAILONERROR is set.
9187
9188 Daniel (17 Dec)
9189 - Bug reported #651464, reported by Christopher Palmer, provided an example
9190   source code using the multi interface that hang when trying to connect to a
9191   proxy on a localhost port where no proxy was listening. This bug was not
9192   repeatable on libcurls that were IPv6-enabled.
9193
9194 Daniel (16 Dec)
9195 - Christopher Palmer also noticed what Vojtech Janota already was
9196   experiencing: The attempted name resolve fix for glibc 2.2.93 caused libcurl
9197   to crash when used on some older glibc versions. The problem is of course
9198   the silliness of the 2.2.93. I committed a fix that hopefully should make
9199   the binary run fine on either one of the versions, even though the solution
9200   is not as nice as I'd like it to be.
9201
9202 Daniel (13 Dec)
9203 - Bug report #651460 by Christopher R. Palmer showed that when using libcurl
9204   to for example go over a proxy on localhost, it would attempt to connect
9205   through the proxy TWICE.
9206
9207   I added test case 503 with which I managed to repeat this problem and I
9208   fixed the code to not re-attempt any connects (which also made it a nicer
9209   fix for the #650941 bug mentioned below).
9210
9211   The sws server was extended to deal with CONNECT in order to make test
9212   case 503 do good.
9213
9214 - Evan Jordan posted bug report #650989 about a memory leak in the public key
9215   retrieving code. He provided a suggested fix and I merely applied it!
9216
9217 - Bug report #650941, posted by Christopher R. Palmer identified a problem
9218   with the multi interface and getting file:// URLs. This was now fixed and
9219   test case 502 was added to verify this.
9220
9221 Daniel (12 Dec)
9222 - Test case 500 and 501 are the first ever libcurl test cases that run.
9223
9224 - Made "configure --enable-debug" cut off all -O* options to the compiler
9225
9226 - Finally fixed the test suite's ftp server so that test case 402 doesn't
9227   cause the following test case to fail anymore!
9228
9229 Daniel (11 Dec)
9230 - CURL_MAX_WRITE_SIZE is now decreased to 16KB since it makes the Windows
9231   version perform uploads much faster!!! RBramante did lots of research on
9232   this topic.
9233
9234 - Fixed the #include in curl/curl.h to include the other files outside the
9235   extern "C" scope.
9236
9237 Daniel (10 Dec)
9238 - Moved around and added more logic:
9239
9240   First, POST data is never sent as part of the request headers in the http.c
9241   code. It is always sent the "normal" read callback then send() way. This now
9242   enables a plain HTTP POST to be sent chunked if we want to. This also
9243   reduces the risk of having very big POSTs causing problems.
9244
9245   Further, sending off the initial HTTP request is not done using a loop
9246   anymore. If it wasn't all sent off in the first send(), the rest of the
9247   request is sent off in the normal transfer select() loop. This makes several
9248   things possible, but mainly it makes libcurl block less when used from the
9249   multi interface and it also reduces the risk of problems with issuing very
9250   large requests.
9251
9252 Daniel (9 Dec)
9253 - Moved the read callback pointer and data within the structs to a more
9254   suitable place. This in preparation for a better HTTP-request sending code
9255   without (a silly) loop.
9256
9257 - The Dodds fix seems not to work.
9258
9259 - Vojtech Janota tests proved that the resolve fix from oct 21st is not good
9260   enough since obviously older glibcs might return EAGAIN without this meaning
9261   that the buffer was too small.
9262
9263 - [the other day] Made libcurl loop on recv() and send() now until done, and
9264   then get back to select(). Previously it went back to select() more often
9265   which really was a slight overhead. This was due to the reported performance
9266   problems on HTTP PUT on Windows. I couldn't see any notable difference on
9267   Linux...
9268
9269 Version 7.10.3-pre2 (4 Dec 2002)
9270
9271 Daniel (4 Dec 2002)
9272 - Lots of work with Malcolm Dodds made me add a temporary code fix that now
9273   shortens the timeout waiting for the 226 or 250 line after a completed
9274   FTP transfer.
9275
9276   If no data is received within 60 seconds, this is taken as a sign of a dead
9277   control connection and we bail out.
9278
9279 Daniel (3 Dec 2002)
9280 - Ralph's bug report #644841 identified a problem in which curl returned a
9281   timeout error code when in fact the problem was not a timeout. The proper
9282   error should now be propagated better when they're detected in the FTP
9283   response reading function.
9284
9285 - Updated the Borland Makefiles.
9286
9287 Daniel (2 Dec 2002)
9288 - Nicolas Berloquin provided a patch that introduced --create-dirs to the
9289   command line tool. When used in combination with -o, it lets curl create
9290   [non-existing] directories used in -o, suitably used with #-combinations
9291   such as:
9292
9293      curl "www.images.com/{flowers,cities,parks,mountains}/pic_[1-100].jpg \
9294        -o "dir_#1/pic#2.jpg" --create-dirs
9295
9296 Version 7.10.3-pre1
9297
9298 Daniel (28 Nov 2002)
9299 - I visited Lars Nordgren and had a go with his problem, which lead me to
9300   implement this fix. If libcurl detects the added custom header
9301   "Transfer-Encoding: chunked", it will now enable a chunked transfer.
9302
9303   Also, chunked transfer didn't quite work before but seems to do so now.
9304
9305 - Kjetil Jacobsen pointed out that ./configure --disable-ipv6 --without-zlib
9306   didn't work on any platform...
9307
9308 Daniel (26 Nov 2002)
9309 - Fixed a bad addrinfo free in the hostip.c code, hardly exposed anywhere
9310
9311 - Dan Becker found and fixed a minor memory leak on persistent connnections
9312   using CURLOPT_USERPWD.
9313
9314 Daniel (22 Nov 2002)
9315 - Based on Ralph Mitchell's excellent analysis I found a bug in the test suite
9316   web server (sws) which now lets test case 306 run fine even in combination
9317   with the other test cases.
9318
9319 - Juan Ignacio Hervás found a crash in the verbose connect message that is
9320   used on persistent connections. This bug was added in 7.10.2 due to the
9321   rearranged name resolve code.
9322
9323 Daniel (20 Nov 2002)
9324 - Kjetil Jacobsen provided a patch that introduces:
9325
9326    CURLOPT_PRIVATE stores a private pointer in the curl handle.
9327
9328    CURLINFO_PRIVATE retrieves the private pointer from the curl handle.
9329
9330 - Karol Pietrzak pointed out how curl-config --cflags didn't output a good
9331   include dir so I've removed that for now.
9332
9333 Version 7.10.2 (18 Nov 2002)
9334
9335 Daniel (11 Nov 2002)
9336 - Dave Halbakken added curl_version_info to lib/libcurl.def to make libcurl
9337   properly build with MSVC on Windows.
9338
9339 Daniel (8 Nov 2002)
9340 - Doing HTTP PUT without a specified file size now makes libcurl use
9341   Transfer-Encoding: chunked.
9342
9343 Daniel (7 Nov 2002)
9344 - Bug report #634625 identified how curl returned timeout immediately when
9345   CURLOPT_CONNECTTIMEOUT was used and provided a fix.
9346
9347 Version 7.10.2-pre4 (6 Nov 2002)
9348
9349 Daniel (5 Nov 2002)
9350 - Lehel Bernadt found out and fixed. libcurl sent error message to the debug
9351   output when it stored the error message.
9352
9353 - Avery Fay found some problems with the DNS cache (when the cache time was
9354   set to 0 we got a memory leak, but when the leak was fixed he got a crash
9355   when he used the CURLOPT_INTERFACE with that) that had me do some real
9356   restructuring so that we now have a reference counter in the dns cache
9357   entries to prevent an entry to get flushed while still actually in use.
9358
9359   I also detected that we previously didn't update the time stamp when we
9360   extracted an entry from the cache so that must've been a reason for some
9361   very weird dns cache bugs.
9362
9363 Version 7.10.2-pre3
9364
9365 Daniel (31 Oct 2002)
9366 - Downgraded automake to 1.6.3 in an attempt to fix cygwin problems. (It
9367   turned out this didn't help though.)
9368
9369 - Disable the DNS cache (by setting the timeout to 0) made libcurl leak
9370   memory. Avery Fay brought the example code that proved this.
9371
9372 Version 7.10.2-pre2
9373
9374 Daniel (28 Oct 2002)
9375 - Upgraded to autoconf 2.54 and automake 1.7 on the release-build host.
9376
9377 - Kevin Roth made the command line tool check for a CURL_CA_BUNDLE environment
9378   variable (if --cacert isn't used) and if not set, the Windows version will
9379   check for a file named "curl-ca-bundle.crt" in the current directory or the
9380   directory where curl is located. That file is then used as CA root cert
9381   bundle.
9382
9383 - Avery Fay pointed out that curl's configure scrip didn't get right if you
9384   used autoconf newer than 2.52. This was due to some badly quoted code.
9385
9386 Version 7.10.2-pre1
9387
9388 Daniel (23 Oct 2002)
9389 - Emiliano Ida confirmed that we now build properly with the Borland C++
9390   compiler too. We needed yet another fix for the ISO cpp check in the curl.h
9391   header file.
9392
9393 - Yet another fix was needed to get the HTTP download without headers to work.
9394   This time it was needed if the first "believed header" was read all in the
9395   first read. Test 306 has not run properly since the 11th october fix.
9396
9397 Daniel (21 Oct 2002)
9398 - Zvi Har'El pointed out a problem with curl's name resolving on Redhat 8
9399   machines (running IPv6 disabled). Mats Lidell let me use an account on his
9400   machine and I could verify that gethostbyname_r() has been changed to return
9401   EAGAIN instead of ERANGE when the given buffer size is too small. This is
9402   glibc 2.2.93.
9403
9404 - Albert Chin helped me get the -no-undefined option corrected in
9405   lib/Makefile.am since Cygwin builds want it there while Solaris builds don't
9406   want it present. Kevin Roth helped me try it out on cygwin.
9407   
9408 - Nikita Schmidt provided a bug fix for a FOLLOWLOCATION bug introduced when
9409   the ../ support got in (7.10.1).
9410
9411 Daniel (18 Oct 2002)
9412 - Fabrizio Ammollo pointed out a remaining problem with FOLLOWLOCATION in
9413   the multi interface.
9414
9415 Daniel (17 Oct 2002)
9416 - Richard Cooper's experimenting proved that -j (CURLOPT_COOKIESESSION) didn't
9417   work quite as supposed. You needed to set it *before* you use
9418   CURLOPT_COOKIEFILE, and we dont' want that kind of dependencies.
9419
9420 Daniel (15 Oct 2002)
9421 - Andrés García provided corrections for erratas in four libcurl man pages.
9422
9423 Daniel (13 Oct 2002)
9424 - Starting now, we generate and include PDF versions of all the docs in the
9425   release archives.
9426
9427 Daniel (12 Oct 2002)
9428 - Trying to connect to a host on a bad port number caused the multi interface
9429   to never return failure and it appeared to keep on trying forever (it just
9430   didn't do anything).
9431
9432 Daniel (11 Oct 2002)
9433 - Downloading HTTP without headers didn't work 100%, some of the initial data
9434   got written twice. Kevin Roth reported.
9435
9436 - Kevin Roth found out the "config file" parser in the client code could
9437   segfault, like if DOS newlines were used.
9438
9439 Version 7.10.1 (11 Oct 2002)
9440
9441 Daniel (10 Oct 2002)
9442 - Jeff Lawson fixed a few problems with connection re-use that remained when
9443   you set CURLOPT_PROXY to "".
9444
9445 Daniel (9 Oct 2002)
9446 - Craig Davison found a terrible flaw and Cris Bailiff helped out in the
9447   search. Getting HTTP data from servers when the headers are split up in
9448   multiple reads, could cause junk data to get inserted among the saved
9449   headers. This only concerns HTTP(S) headers.
9450
9451 Daniel (8 Oct 2002)
9452 - Vincent Penquerc'h gave us the good suggestion that when the ERRRORBUFFER
9453   is set internally, the error text is sent to the debug function as well.
9454
9455 - I fixed the telnet code to timeout properly as the option tells it to. On
9456   non-windows platforms.
9457
9458 Daniel (7 Oct 2002)
9459 - John Crow pointed out that libcurl-the-guide wasn't included in the release
9460   tarball!
9461
9462 - Kevin Roth pointed out that make install didn't do right if build outside
9463   the source tree (ca-bundle wise).
9464
9465 - FOLLOWLOCATION bugfix for the multi interface
9466
9467 Daniel (4 Oct 2002)
9468 - Kevin Roth got problems with his cygwin build with -no-undefined was not
9469   present in lib/Makefile.am so I put it back in there again. The poor one who
9470   needs to remove it again must write a configure script to detect that need.
9471
9472 - Ralph Mitchell pointed out that curl was a bit naive and didn't deal with ./
9473   or ../ stuff in the string passed back in a Location: header when following
9474   locations.
9475
9476 - Albert Chin helped me to work out a better configure.in check for zlib, and
9477   both --without-zlib and -with-zlib seem to work rather well right now.
9478
9479 - Zvi Har'El improvied the OpenSSL ENGINE check in the configure script to
9480   become more accurate.
9481
9482 Daniel (1 Oct 2002)
9483 - Detlef Schmier pointed out the lack of a --without-libz option to configure,
9484   so I added one.
9485
9486 Version 7.10 (1 Oct 2002)
9487
9488 Daniel (30 Sep 2002)
9489 - Modified the curl_version_info() proto and returned struct once again, and
9490   updated the man page accordingly.
9491
9492 - Cris Bailiff found out that the pre-releases crashed on name lookups on
9493   names such as "a:" or "baz:" (on Linux versions not being ipv6-enabled) due
9494   to some weird return codes from gethostbyname_r(). I'll blame the complete
9495   lack of docs in that department. Cris provided a fix, which I modified only
9496   slightly.
9497
9498 Daniel (27 Sep 2002)
9499 - After a suggestion from Christian Kurz to Debian curl package maintainer
9500   Domenico Andreoli, I made it possible to override the proxy environment
9501   variables better. Now, by setting -x "" you can explicitly tell libcurl to
9502   not use a proxy, no matter whan the environment variables say.
9503
9504 Version 7.10-pre4
9505
9506 Daniel (26 Sep 2002)
9507 - Extended curl_version_info() more and wrote a man page for it.
9508
9509 Daniel (25 Sep 2002)
9510 - libcurl could leak memory when downloading multiple files using http ranges,
9511   reported and fixed by Jean-Luc Guevel.
9512
9513 - Walter J. Mack provided code and docs for the new curl_free() function that
9514   shall be used to free memory that is allocated by libcurl and returned back
9515   to the application, as curl_escape() and curl_unescape() do.
9516
9517 - Yarram Sunil pointed out a flaw in the multi interface where a failed
9518   connection didn't close down properly and thus a second transfer using the
9519   same handle failed.
9520
9521 - Andrés García fixed a flaw that made (among other things) dict-fetches
9522   return a random value.
9523
9524 Daniel (24 Sep 2002)
9525 - Wez Furlong brought his initial patch that introduced curl_version_info().
9526   We might need to tweak it somewhat before release.
9527
9528 Daniel (20 Sep 2002)
9529 - Craig Markwardt fixed another Tru64 IP resolve problem.
9530
9531 Daniel (19 Sep 2002)
9532 - Dolbneff A.V and Spiridonoff A.V made the file:// code work with resumes
9533   in the same style other code does.
9534
9535 - Ilguiz Latypov fixed a flaw in the client code when fetching multiple URLs
9536   and -C - was used. The first file's resume position was then accidentally
9537   reused on all the other files too.
9538
9539 Daniel (18 Sep 2002)
9540 - The curl_easy_setopt.3 man page was greatly modified and the options have
9541   now been grouped in logical groups so that it should be somewhat easier to
9542   read it and find things you search for.
9543
9544 Daniel (13 Sep 2002)
9545 - Kevin Roth pinpointed a scary flaw in libcurl, when the HTTP server doesn't
9546   send any headers back, only raw content. Right, that is a violation of the
9547   standard but still happens at times and we need to deal with it. Test case
9548   306 was added to verify that we do right now.
9549
9550 Version 7.10-pre3
9551
9552 Daniel (11 Sep 2002)
9553 - Lukasz Czekierda found out that curl didn't send a correct HTTP Host: header
9554   when you specified the URL with an IPv6 IP-address.
9555
9556 Daniel (4 Sep 2002)
9557 - Sven Neuhaus made --silent being acknowledged even when multiple URLs
9558   were used. It used to output "[1/2]: http://host/a.html.de --> a.html.d" etc
9559   even when told to shut up.
9560
9561 Daniel (3 Sep 2002)
9562 - Updated all source code headers to use MIT-license references only, and
9563   point to the COPYING file and the http://curl.haxx.se/docs/copyright.html
9564   URL. I've cut out all references to MPL that I could find.
9565
9566 - Corected the makefiles to not always use -lz when linking
9567
9568 Version 7.10-pre2
9569
9570 Daniel (2 Sep 2002)
9571 - James Gallagher added Content-Encoding support to libcurl so now curl and
9572   libcurl-using apps can request compressed contents using the 'deflate'
9573   method. See the special file lib/README.encoding for details.
9574
9575   curl --compressed is now used to request compressed contents.
9576
9577   curl-config --feature will include 'libz' if this feature was around when
9578   the library was built.
9579
9580 Daniel (30 Aug 2002)
9581 - Applied an anonymous SOCKS5-proxy patch. Not properly working in all
9582   situations though, as all getaddrinfo()-using libcurls will fail on this.
9583   This is because of the somewhat naive way the current code tries to extract
9584   the IP address of the proxy.
9585
9586 - Fixed up the SSL cert fixes from the other day even more after more inputs
9587   from Cris. Added three new SSL error codes to make the
9588   CURLE_SSL_CONNECT_ERROR slightly less overloaded.
9589
9590 Daniel (27 Aug 2002)
9591 - After lots of talk with Tom Zerucha, Nick Gimbrone and Cris Bailiff I
9592   decided to talk the bold path and I now made libcurl do CA certificate
9593   verification by default. Thus library users need to explicitly turn this off
9594   if you want to connect to sites without proper checking. We also install a
9595   CA cert bundle on 'make install' now.
9596
9597   The curl tool now requires the -k/--insecure option in order to allow
9598   connections and operations on SSL sites that aren't properly verified with
9599   -cafile or --capath.
9600
9601   curl-config --ca displays the built-in path to the CA cert bundle.
9602
9603 Daniel (26 Aug 2002)
9604 - Andrew Francis cleaned up some code that now compiles fine without the need
9605   for ugly MSVC pragmas.
9606
9607 - Keith MacDonald found a minor bug in src/main.c that made it close stdin
9608   instead of the actual file handle. It shouldn't have resulted in much
9609   trouble as most operating systems close all file handles on process exit
9610   anyway.
9611
9612 Daniel (22 Aug 2002)
9613 - Markus Oberhumer provided some documentation for his previously provided
9614   CURLOPT_NOSIGNAL fix.
9615
9616 - Patched the lib/Makefile.am to hopefully no longer complain on undefined
9617   symbols that seemed to occur on builds with shared OpenSSL libraries on
9618   Solaris lately...
9619
9620 Daniel (20 Aug 2002)
9621 - Fixed compiler warnings on MSCV++ compiles. We're looking for help here:
9622   remove the pragmas from lib/config-win32.h and adjust the sources where
9623   the warnings occur. Hiding them with pragmas like this is not the correct
9624   way of dealing with compiler warnings.
9625
9626 Daniel (13 Aug 2002)
9627 - Ulrich Zadow made the global include files in curl/* include themselves
9628   using "curl.h" instead of <curl/curl.h> which thus allows people to more
9629   freely decide how to include curl and how to setup their include paths.
9630
9631 - Sterling Hughes added the curl_share* interface, somewhat as discussed
9632   previously.
9633
9634 - Jörn Hartroth pointed out that poll() was used in the pre1 source code and
9635   it isn't very portable, so now I check for it in the configure script and
9636   work around it.
9637
9638 Version 7.9.9-pre1
9639
9640 Daniel (12 Aug 2002)
9641 - Applied my initial take on making the multi stuff more asynchronous. Connects
9642   should now return back without "hanging" until it has connected for real.
9643   This should also be the case for FTP-PASV connects.
9644
9645 Daniel (9 Aug 2002)
9646 - Applied Markus F.X.J. Oberhumer's patch that introduces CURLOPT_NOSIGNAL,
9647   which effectively prevents libcurl from doing anything that may cause
9648   signals to get sent. This is basicly for multi-threaded applications that
9649   now can use timeouts properly, without risking any signals to burst in and
9650   ruin the party.
9651   
9652 Daniel (5 Aug 2002)
9653 - Lukasz Czekierda reported that RFC2732-style literal IPv6 addresses didn't
9654   work. When did that code vanish? Anyway, it's back again now and seems to
9655   work!
9656
9657 - Jonatan Lander found out that POSTing an empty string didn't work with the
9658   command line tool.
9659
9660 Daniel (3 Aug 2002)
9661 - Jörn Hartroth fixed the libcurl.def file to build the windows DLL with
9662   the multi interface enabled.
9663
9664 Daniel (1 Aug 2002)
9665 - The ftp PORT command now uses a better default IP address, as it will
9666   extract and use the local IP address used by the control connection.
9667
9668 - Modified the #include lines in curl/multi.h to work better on more
9669   platforms.
9670
9671 Daniel (31 Jul 2002)
9672 - Attempted a fix for Ray DeGennaro's reported HP-UX host name resolve
9673   problems.
9674
9675 Daniel (30 Jul 2002)
9676 - Priya Ramakrishnan and Ryan Jones compiles curl/curl.h with a C++ compiler
9677   and don't get __STDC__ defined, which required us to extend the preprocessor
9678   check for the ## operator usage.
9679
9680 - Correct the description for CURLOPT_PASSWDFUNCTION, if set to NULL the
9681   internal default function will be put back.
9682
9683 - danfuzz at milk.com found out that libcurl badly assumed a space after
9684   'Set-Cookie:' so if it wasn't present, it caused the first letter of the
9685   cookie name to fall off!
9686
9687 Daniel (29 Jul 2002)
9688 - The password prompt asking for user password used stdout and now uses
9689   stderr instead to better allow redirecting. It also leaked a fopen() file
9690   handle that is now fixed.
9691
9692 Daniel (28 Jul 2002)
9693 - HAVE_SETVBUF was left out from src/main.c which made -N not work. Found out
9694   by M T.
9695
9696 Daniel (26 Jun 2002)
9697 - Glen Nakamura solved a crash in the name resolving function for IP-only
9698   addresses on Alpha Linux (at least).
9699
9700 - T. Bharath corrected the high resolution timer introduced in 7.9.8.
9701
9702 Daniel (22 Jun 2002)
9703 - Andrés García pointed out man page errors in curl_formadd.3. I fixed.
9704
9705 Daniel (19 Jun 2002)
9706 - Chris Combes pointed out a flaw in curl_escape(). I fixed. We no longer
9707   tries to generate nor parse '+' in URLs. Spaces become %20, and only %-codes
9708   are translated by curl_unescape().
9709
9710 Daniel (15 Jun 2002)
9711 - Added --limit-rate to the curl tool. Allows the user to set a maxmimum
9712   upper limit to how much bandwidth to use for transfers.
9713
9714 - CURLOPT_BUFFERSIZE was added to libcurl. This sets a prefered size for the
9715   receive buffer in libcurl. The main point of this would be that the write
9716   callback gets called more often and with smaller chunks.
9717
9718 Daniel (14 Jun 2002)
9719 - Yarram Sunil found out that the SocketIsDead() function performed a lot
9720   faster on Windows when removing the 1 microsecond timeout.
9721
9722 - Hanno L. Kranzhoff fixed the VC++ project files.
9723
9724 - Tom Mattison found out that ftp transfers closed the connection a little
9725   too often.
9726
9727 - Miklos Nemeth posted a VC++ makefile fix and some INSTALL comments on how
9728   to disable specific protocols when building for Windows.
9729
9730 Version 7.9.8
9731
9732 Daniel (13 Jun 2002)
9733 - Time to let this baby go.
9734
9735 Daniel (12 Jun 2002)
9736 - Chris Combes added three new options for curl_formadd(): CURLFORM_BUFFER,
9737   CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH.  They are used to create a
9738   multipart that appears as a regular file upload, but the data is provided
9739   with a pointer and length.
9740   
9741 - Nico Baggus made the VMS version use sigsetjmp() too.
9742
9743 - Jörn Hartroth fixed the mingw32 build using the mm lib.
9744
9745 - Applied patches by Kris Kennaway that correct format string problems in
9746   lib/ftp.c and lib/ldap.c.
9747
9748 Version 7.9.8-pre3
9749
9750 Daniel (11 Jun 2002)
9751 - James Cone brought the idea of using sigsetjmp() in the signal handler to
9752   make the time-out of name lookups to work, even when the underlying name
9753   resolver library traps EINTR. The use of sigsetjmp() and siglongjmp() for
9754   this may be a bit drastic, and also not likely to exist on all platforms.  I
9755   added careful checking for this in the configure script, even checks for it
9756   being a macro (which seems to be the case in for example Linux).
9757
9758   sigsetjmp() seems to be mentioned in the Single Unix specification.
9759
9760 - Miklos Nemeth brought a patch that allows libcurl to get built with specific
9761   protocols disabled. This is done by running ./configure
9762   --disable-[protocol].
9763
9764 - FTP range downloads could make CURLE_FTP_WRITE_ERROR get returned. We now
9765   make precautions to not return this for range downloads.
9766
9767   Added test case 135 that makes an ftp range download. Had to tweak the
9768   runtests.pl script a bit too.
9769
9770 - Bug report #566835 identified a strlen() on a NULL pointer. Added additional
9771   check to prevent this.
9772
9773 Daniel (10 Jun 2002)
9774 - Found and corrected a connect failure problem that didn't create a human
9775   error text.
9776
9777 - Added code to compile with OpenSSL 0.9.7. Based on patch from Jacob Meuser
9778   and comments from Götz Babin-Ebell.
9779
9780 - Gautam Mani found a socket descriptor leak that happened when FTP transfers
9781   failed and you reinvoked curl_easy_perform().
9782
9783 Daniel (5 Jun 2002)
9784 - Gustaf Hui corrected curl_multi_remove_handle() so that it won't crash no
9785   matter when you decide to remove the CURL handle.
9786
9787 - HAVE_RAND_STATUS was added to lib/config-win32.h by Andreas Olsson, as it
9788   makes windows builds stop complaining about "weak seeding" when it in fact
9789   isn't.
9790
9791 - Another 64bit architecture crash that was introduced in 7.9.7 was now
9792   removed, as bug report #564585 clarified. This happened due to our attempts
9793   to only allocate only as much memory as is actually needed for name
9794   resolving (using realloc) which called for a function that could 'move' a
9795   hostent struct in memory.
9796
9797 Version 7.9.8-pre2
9798
9799 Daniel (3 Jun 2002)
9800 - T. Bharath fixed the CURLINFO_REDIRECT_TIME to return a correct time and
9801   made the CURLINFO_REQUEST_SIZE return the correct total request size. He
9802   also made the win32 timers use higher resolution than before.
9803
9804 Daniel (29 May 2002)
9805 - Renaud Chaillat made me aware of the fact that libcurl returned an error if
9806   you tried to get an empty FTP file. This seemed like a wrong thing to do, so
9807   now it no longer does that! I just hope that no one built anything fancy
9808   upon this unexpected behavior...
9809
9810 Daniel (28 May 2002)
9811 - Cris Bailiff brought CURLOPT_CAPATH that works like CURLOPT_CAINFO but
9812   specifies a path to a directory with certificates rather than a single file
9813   with them all concatenated. --capath was added to the command line tool
9814   for the same function.
9815
9816   Windows users need to pay attention that the directory should be setup with
9817   the c_rehash tool of the OpenSSL package, and that creates symlinks by
9818   default that need to be replaced with actual copies to work on Windows.
9819
9820 - Gustaf Hui provided new code that changes how curl_multi_info_read()
9821   messages are stored, so that they don't have to be kept around for the multi
9822   handle's entire life time. He also made it return failure codes properly
9823   which it didn't do before.
9824
9825 Daniel (27 May 2002)
9826 - Gustaf Hui pointed out that running curl_multi_perform() without doing
9827   curl_multi_fdset() first was not really a working combo. I added an internal
9828   check for this and have some extra select() code without timeout to make the
9829   library internals work identically nevertheless. We might need to somehow
9830   either document that once you've used the *_fdset() you should remain using
9831   them in select() or you should blank them somehow so that libcurl won't go
9832   crazy.
9833
9834 Version 7.9.8-pre1
9835
9836 Daniel (22 May 2002)
9837 - James Cone brought an excellent patch, including several tests and docs!
9838   CURLOPT_NETRC now takes an enum as argument instead of the previous boolean.
9839   --netrc-optional was introduced as an addition to --netrc to allow the
9840   command line client to take use of all that new netrc stuff.
9841
9842 - Bug report #558888 showed a case where libcurl re-used the previous host
9843   name when a connection over a proxy was re-used but to a different target
9844   host.
9845
9846 Daniel (21 May 2002)
9847 - Edin Kadribasic helped me sort out a problem to made libcurl crash when
9848   trying to HTTP POST an empty string.
9849
9850 - Clarified that Juergen Wilke donated the original tests/server/sws.c code.
9851
9852 - Jean-Philippe Barrette-LaPierre made curl_formadd() return a typedef named
9853   CURLFORMcode instead of the previous 'int', and the various return codes are
9854   now globally exported. It allows applications to better figure out what goes
9855   wrong when curl_formadd() returns errors.
9856
9857 Daniel (20 May 2002)
9858 - Roland Zimmermann pointed out that SSL_CTX_use_certificate_chain_file()
9859   is prefered to SSL_CTX_use_certificate_file().
9860
9861 Daniel (17 May 2002)
9862 - Bug report #556869 pointed out that src/writeout.c didn't compile on freebsd
9863   after my AIX fixes the other week.
9864
9865 - Bug report #556930 pointed out a FreeBSD core dump introduced in 7.9.7 in
9866   the DNS struct realloc stuff. Actually, this crash could happen on all
9867   systems that made the pack_hostent() function get invoked.
9868
9869 - I removed several compiler warnings in the test suite's HTTP server.
9870
9871 Version 7.9.7
9872
9873 Daniel (10 May 2002)
9874 - Kevin Roth adjusted the --trace-ascii output slightly.
9875
9876 - Paul Harrington found out that src/writeout.c needed an additional header
9877   file included for AIX builds
9878
9879 Version 7.9.7-pre2
9880
9881 Daniel (7 May 2002)
9882 - Updated the man page with --trace-ascii and -j/--junk-session-cookies.
9883
9884 - Made --trace-ascii do pretty much the same as --trace but without the hex
9885   part in the output.
9886
9887 - Added CURLOPT_COOKIESESSION that when enabled makes libcurl ignore session
9888   cookies read from a file. This option is enforced by the curl command line
9889   tool using the new -j/--junk-session-cookies option. After discussions with
9890   Kevin Roth. This makes it easier to use curl to fully emulate a browser's
9891   behavior, even when it comes to "session cookies". Session cookies are
9892   cookies that a normal browser discards when the browser is shut
9893   down. They're identified by not having any expire date/time.
9894
9895 - When CURLOPT_DEBUGDATA was set, it ruined the CURLOPT_STDERR setting and
9896   this was discovered when --trace was made to crash.
9897
9898 - Using -v and --trace at the same time confused matters. -v is now pretty
9899   much ignored when --trace or --trace-ascii is used.
9900
9901 - Made --trace (and --trace-ascii) support - as file name to pass output to
9902   stdout instead. It makes it consistent with how other options work.
9903
9904 Version 7.9.7-pre1
9905
9906 Daniel (6 May 2002)
9907 - Added multi-post.c to the examples directory. I got the basic source for
9908   this from Gustaf Hui.
9909
9910 Daniel (3 May 2002)
9911 - CURL_MAX_WRITE_SIZE is now an exported #define in the curl/curl.h header and
9912   can be used to figure out the maximum buffer size your write callback can
9913   get.
9914
9915 - CURLOPT_READDATA is now an alias for CURLOPT_INFILE and CURLOPT_WRITEDATE is
9916   an alias for CURLOPT_FILE. These two were added for conformity. Most other
9917   callback function's userdata are provided with options using a similar name-
9918   scheme.
9919
9920 - Added "--trace [file]" to the command line tool. It makes a very detailed
9921   trace dump get stored, with a full protocol dump that includes all received
9922   and transmitted data. This could be a very effective tool for debugging what
9923   goes wrong. This dump includes every byte the way it is sent to/received
9924   from the server. The dump is the plain-text version, so SSL transfers will
9925   still be readable.
9926
9927 - I found out that the DEBUGFUNCTION was not called properly everywhere as we
9928   wanted it to. I fixed it.
9929
9930 - -D now stores all headers to the same file if multiple URLs are given on the
9931   command line! Kevin Roth made me aware of that it didn't already do this!
9932
9933 - Gustaf Hui wrote an excellent formpost example that used the multi
9934   interface.  Unfortunately, it didn't work due to several bugs in how
9935   transfers were made when the multi interface was used.
9936
9937 Daniel (2 May 2002)
9938 - Hanno Kranzhoff found out that when doing multiple transfers on the same
9939   easy handle, the progress meter would show a bad "currently downloaded
9940   value" when the transfer starts.
9941
9942 Daniel (1 May 2002)
9943 - Applied another patch by Jacky Lam to make the name resolve info realloc()
9944   stuff work properly.
9945
9946 Daniel (28 April 2002)
9947 - curl_multi_info_read() is now implemented!
9948
9949 Daniel (27 April 2002)
9950 - Updated BUGS, TODO, FAQ, INSTALL and added BINDINGS.
9951
9952 - I think I fixed the DNS cache prune crach Jacky Lam found and reported.
9953
9954 - I cleaned up the name prefix stuff in the hash and llist modules.
9955
9956 - FTP responses should now be better on timing out properly. The timeout value
9957   is maximum timeout for the entire request operation, but before this, the
9958   timeout was used as a maximum allowed time between two reads...
9959
9960 Daniel (26 April 2002)
9961 - Fixed the test suite http server to not use snprintf() anymore due to better
9962   portability.
9963
9964 Daniel (25 April 2002)
9965 - With Sterling Hughes' new DNS pruning, Jacky Lam asked if this wouldn't
9966   cause problems since the pruning is only checking the entry time, and it
9967   sure could cause problems. Therefor, I've now added and changed code so that
9968   this should not be a problem. Nowhere in the code will be store name
9969   resolved information around so that a sunsequent DNS cache prune should
9970   cause a problem. This of course called for some mild internal changes.
9971
9972 Daniel (23 April 2002)
9973 - Improved the 'no_proxy' check, as using port numbers in the URL confused it
9974   previously. Reported by Erwan Legrand in bug report #547484.
9975
9976 - The --interface option now works even on IPv6 enabled builds. Reported by
9977   'thor'.
9978
9979 Daniel (22 April 2002)
9980 - The #defines names starting with TIMECOND now has CURL_ prefixes. (The old
9981   names are still #defined too.) Pointed out by Robert Olson.
9982
9983 - Jacky Lam brought code that lets the name resolve function only use as much
9984   memory as it actually needs. This only works on certain operating systems,
9985   but is totally transparant to all users.
9986
9987 Daniel (19 April 2002)
9988 - Bjorn Reese fixed pack_hostent to work properly with 64 bit pointers.
9989
9990 Daniel (18 April 2002)
9991 - Sterling Hughes added code to prune old DNS cache entries, since Jacky Lam
9992   experienced very big caches.
9993
9994 Daniel (17 April 2002)
9995 - Dirk Manske patched the 301 response to work against the RFC but more like
9996   common browsers do. If a POST get a 301 back, it'll switch to GET in the
9997   next request (if location-following is enabled).
9998
9999 Daniel (16 April 2002)
10000 - Dirk Manske posted a patch originally written by Ingo Wilken that introduced
10001   two new CURLINFO_* values: CURLINFO_REDIRECT_TIME and
10002   CURLINFO_REDIRECT_COUNT.
10003
10004 Daniel (15 April 2002)
10005 - Jonatan Lander patched the verbose text 'Disables POST, goes with GET' to
10006   reflect reality better, like when the first request isn't POST and when
10007   the second isn't GET... :-)
10008
10009 - Craig Davison pointed out that when curl_formadd()ing a file that doesn't
10010   exist, libcurl doesn't return error. Now, curl_easy_perform() will return
10011   CURLE_READ_ERROR if that is the case. Test 41 was added to verify this.
10012
10013 Version 7.9.6
10014
10015 Daniel (14 April 2002)
10016 - Dirk Manske brought a fix that makes libcurl strip off white spaces from the
10017   beginning of cookie contents.
10018
10019 - Had to patch include/curl/curl.h since MSVC doesn't set the __STDC__ define.
10020   Moonesamy pointed out the problem, Bjorn Reese the solution.
10021
10022 Version 7.9.6-pre5
10023
10024 Daniel (12 April 2002)
10025 - Fixed the TIMER_CONNECT to be more accurate for FTP transfers. Previously
10026   FTP transfers got the "connect done" time set after the initial FTP commands
10027   and not directly after the TCP/IP connect as it should.
10028
10029   I also made the time stamp get set even if the connect itself fails, which
10030   it didn't do previously.
10031
10032 - Jean-Philippe Barrette-LaPierre provided his patch that introduces
10033   CURLOPT_DEBUGFUNCTION and CURLOPT_DEBUGDATA. They allow a program to a set a
10034   callback to receive debug/information data. That includes headers and data
10035   that is received and sent. CURLOPT_VERBOSE still controls it.
10036
10037   By default, there is an internal debugfunction that will make things look
10038   and work as before if not changed.
10039
10040 Daniel (10 April 2002)
10041 - Sebastien Willemijns found out that -x didn't use the default port number as
10042   is documented. It does now.
10043
10044 - libcurl-errors.3 is a new man page attempting to document all libcurl error
10045   codes
10046
10047 - Added two new error codes and changed the behaviour of two old ones
10048   slightly:
10049
10050   CURLE_WRITE_ERROR
10051    This error was returned *both* for errors that occured when writing
10052    received data to a local file, as well as when we get problems writing data
10053    to a remote server. CURLE_SEND_ERROR has now been added for the latter
10054    error.
10055
10056   CURLE_READ_ERROR
10057    This error was similarly returned *both* for errors when reading a local
10058    file, as well as when getting problems when reading network data.
10059    CURLE_RECV_ERROR has now been added for the latter error.
10060
10061  (Two test cases were adjusted accordingly.)
10062
10063 Daniel (9 April 2002)
10064 - runtests.pl now sets the HOME variable before running curl, to prevent any
10065   actual ~/.curlrc file to fool the tests!
10066
10067 Version 7.9.6-pre4
10068
10069 Daniel (8 April 2002)
10070 - Michael Curtis provided new functionality for curl on some platforms. Using
10071   the --environment option, curl will *set* a bunch of environment variables
10072   to values. The names are the same ones as for the -w/--writeout option.
10073
10074   For now, this only works on the RISC OS version, as this feature relies on
10075   both OS support and that it matches OS paradigms.
10076
10077 - Jacky Lam provided a fix for getting headers-only when the reply is HTTP/1.0
10078   and 304, I edited it slightly.
10079
10080 Daniel (5 April 2002)
10081 - As requested by Jay Graves, the '.curlrc' file (or _curlrc as it is called
10082   when used in windows), is now loaded from the current directory if the HOME
10083   environment variable isn't set (or if it is too long). I also enlarged the
10084   array used to store the full file path in, to 512 bytes.
10085
10086 - Kevin Roth pointed out to me why the "19 March" change regarding -G and -I
10087   was stupid and the change was reverted. Added test case 48 to verify the
10088   functionality.
10089
10090 Version 7.9.6-pre3
10091
10092 Daniel (4 April 2002)
10093 - Jonatan Lander brought a patch that makes curl/curl.h compile nicely on
10094   pre-ISO compilers, like when using gcc -traditional.
10095
10096 Daniel (3 April 2002)
10097 - Jacky Lam identified a glitch when getting headers-only, where libcurl would
10098   "hang" 1 second in vain in the select() loop before returning back.
10099
10100 - Tor Arntsen brought a patch for multipart formposts. It turned out that the
10101   "CGI_Lite Perl package" makes some bad assumptions on what letters that may
10102   be used in boundary strings and thus curl could confuse it by including '+'
10103   and '/'. While this is standards-compliant, we change the behavior to work
10104   smoothly with existing software based on that package.
10105
10106 Daniel (2 April 2002)
10107 - Gerhard Herre filed bug report #536238 where he pointed out a crash in
10108   verbose FTP passive transfers for AIX.
10109
10110 - Clarence Gardner pointed out a minor flaw in how libcurl didn't properly
10111   take care of all errors that SSL_read() could return.
10112
10113 - Jacky Lam fixed a MALLOCDEBUG problem in lib/getinfo.c
10114
10115 Daniel (27 March 2002)
10116 - T. Bharath pointed out a flaw in the connection re-use function that didn't
10117   check proxy connections properly for "deadness" before they were re-used.
10118
10119 - Pedro Neves found out that HTTP POSTing with --data-binary did not properly
10120   work under Windows as the file specified wasn't read fully binary!
10121
10122 Daniel (25 March 2002)
10123 - Jacky Lam brought a fix that improves treatment of cookies using identical
10124   domains but with leading dots properly.
10125
10126 Daniel (22 March 2002)
10127 - Miklos Nemeth updated the windows section of the docs/INSTALL file and the
10128   windows makefiles.
10129
10130 - Jon Dillon provided us with several good-looking curl images for
10131   promotion. View them here http://curl.haxx.se/icons.html
10132
10133 Daniel (20 March 2002)
10134 - Peter Verhas found out that CRLF replacement in uploads was not working. I
10135   fixed it, and added test case 128 that verifies the functionality.
10136
10137 - The list formerly known as curl-main is now named curl-users and is hosted
10138   by sourceforge. Susbcribe to the new list, get off the old one.
10139
10140 Version 7.9.6-pre2
10141
10142 Daniel (19 March 2002)
10143 - Made -G and -I on the same command line cause an error.
10144
10145 - Moved the multi.h file to the "public" include directory and made it get
10146   included by curl.h so that no extra include files will be necessary to use
10147   it.
10148
10149   Added docs and man pages for the multi interface to the release archive.
10150   Added the three example source codes too.
10151
10152   Necessary steps in my campaign to sneak in the multi interface... ;-)
10153
10154 - Updated the year in all copyright notices in all C and H files.
10155
10156 Daniel (18 March 2002)
10157 - Tomas Szepe found out that -d and -G didn't mix as they should. I broke this
10158   in 7.9.5... Added test case 32 for this.
10159
10160 Version 7.9.6-pre1
10161
10162 Daniel (16 March 2002)
10163 - Peter Verhas pointed out that the curl_escape and curl_unscape man pages
10164   contained factual errors.
10165
10166 - Albert Choy found and corrected a problem with the verbose output when doing
10167   PASV ftp transfers. It could make libcurl crash.
10168
10169   Details in bug report #530562:
10170   http://sourceforge.net/tracker/?func=detail&atid=100976&aid=530562&group_id=976
10171
10172 Daniel (15 March 2002)
10173 - Jun-ichiro itojun Hagino filed bug report #530204 that clearly pointed out
10174   the PF_INET fix from February 19 as a not-very-good fix as it broke IPv6
10175   capability! That patch is now reverted.
10176
10177   The problem with slow name lookups with getaddrinfo() on non-IPv6 enabled
10178   hosts are instead made by first checking if the stack is IPv6-enabled and if
10179   not, the PF_INET is used and otherwise we go with the full PF_UNSPEC.
10180
10181 - T. Bharath pointed out that when we return an "error" from a WRITEFUNCTION
10182   as described in the man page, libcurl did not return the documented error
10183   code (CURLE_WRITE_ERROR) but would instead return CURLE_READ_ERROR. This is
10184   now corrected.
10185
10186 Daniel (14 March 2002)
10187 - Setting CURLOPT_POST without setting CURLOPT_POSTFIELDS now read the POST-
10188   data from the callback.
10189
10190 - The GOPHER support seems to be broken. I don't think I'll even start fixing
10191   it until someone else finds out... :-)
10192
10193 Daniel (13 March 2002)
10194 - Trying 'curl -I ftp.sunet.se' or similar did a SIZE on a silly "(nil)"
10195   string. If such a file would be present, curl returned the size of it! Now
10196   we prevent this.
10197
10198 - Curl_sendf() was fixed to deal with situation where Curl_write() would've
10199   blocked and thus return -1.
10200
10201 - Setting CURLOPT_PROGRESSFUNCTION to NULL now restores the internal function.
10202
10203 - All CURLFORM_* options can now be used in a CURLFORM_ARRAY except the
10204   CURLFORM_ARRAY itself. This was necessary since we couldn't expand the
10205   CURLFORM_* list proprely and unrestricted until this was the case. It was
10206   also a bit peculiar to users why some options could be used in an array
10207   while others couldn't.
10208
10209 - Removed some silly CRLF lines that had accidentally slipped into src/main.c
10210   Nico Baggus pointed them out to me.
10211
10212 Daniel (11 March 2002)
10213 - CURLFORM_FILENAME was added. This can be set when creating a file upload
10214   part, to set the 'filename' field to a custom value. If this isn't used,
10215   the actually used filename will be included instead (as libcurl always has
10216   done). curl was adjusted accordingly, and now -F accepts a 'filename=' field
10217   too, and allows constructs such as:
10218
10219     -F 'name=@filename;filename=/dev/null'
10220
10221   and this can be combined with type= too, in a manner similar to:
10222
10223    -F "file=@log/test39.txt;filename=fakerfile;type=moo/foobar"
10224
10225   Test case 39 was added to verify this functionality.
10226
10227 - The struct formerly known as HttpPost is now named curl_httppost to properly
10228   use the curl name space. I added a #define for the old name to make existing
10229   programs compile even when this new include file is used.
10230
10231 Daniel (8 March 2002)
10232 - Clifford also discovered that if the client code failed early, as when doing
10233   "curl -O" only, it would do fclose(NULL) which caused a segmentation fault
10234   on some systems.
10235
10236 - Clifford Wolf provided a patch that made --progress-bar work again.
10237
10238 - I closed bug report #527032 by making sure that we add a newline after a
10239   transfer when --progress-bar has been used. Before, without the newline, it
10240   made the subsequent text come out wrong.
10241
10242 Version 7.9.5
10243
10244 Daniel (7 March 2002)
10245 - Added docs/KNOWN_BUGS to the release archive.
10246
10247 Daniel (6 March 2002)
10248 - Kevin Roth corrected a flaw in the curl client globbing code that made it
10249   mess up backslashes. This was most notable on windows (cygwin) machines when
10250   using file://.
10251
10252 - Brad provided another fix for building outside the source-tree.
10253
10254 - Ralph Mitchell patched away a few compiler warnings in tests/server/sws.c
10255
10256 Daniel (5 March 2002)
10257 - I noticed that the typedef in curl.h for the progress callback prototype was
10258   wrong and thus applications that used it would not get the proper input
10259   data. It used size_t where the implementation actually uses doubles!
10260
10261   I wish I could blame someone else, but this was my fault. Again.
10262
10263 Version 7.9.5-pre6
10264
10265 Daniel (4 March 2002)
10266 - Cut off the changes done during 2001 from this changelog file and put them
10267   in a separate file (CHANGES.2001), available from CVS of course.
10268
10269 - I removed the multi directory. The example sources were moved to the
10270   docs/examples directory where they belong.
10271
10272 - Wrote 7 new man pages for the current functions in the new multi interface.
10273   They're all still pretty basic, but we can use them as a start and add more
10274   contents to them when we figure out what to write. The large amount of man
10275   pages for libcurl now present made me decide to put them in a new separate
10276   subdirectory in the docs directory. Named libcurl.
10277
10278 - Giuseppe Corbelli provided a template file for the EPM package manager, it
10279   gets generated nicely by the configure script now.
10280
10281 Version 7.9.5-pre5
10282
10283 Daniel (1 March 2002)
10284 - Moved the memanalyze.pl script into the tests/ dir and added it to the
10285   release archives. It was previously only present in the CVS tree.
10286
10287 - Modified the February 17th Host: fix, as bug report #523718 pointed out that
10288   it caused crashes!
10289
10290 - Nico Baggus added more error codes to the VMS stuff.
10291
10292 - Wesley Laxton brought the code that introduced the new CURLOPT_PREQUOTE
10293   option. It is just another FTP quote option that allows the user to specify
10294   a list of FTP commands to issue *just before* the transfer command (RETR or
10295   STOR etc). It has turned up a few systems that really need this.
10296
10297   The curl command line tool can also take advantage of this by prefixing the
10298   quote commands with a plus (+) in similar style that post transfer quote
10299   commands are specified.
10300
10301   This is not yet documented. There is no test case for this yet.
10302
10303 Daniel (28 February 2002)
10304 - Ralph Mitchell made some serious efforts and put a lot of sweat in setting
10305   up scripts and things for me to be able to repeat his problems, and I
10306   finally could.  I found a problem with the header byte counter that wasn't
10307   increased properly and thus we could return CURLE_GOT_NOTHING when we in
10308   fact had received data.
10309
10310 Daniel (27 February 2002)
10311 - I had to revert the non-space parsing cookie fix I posted to the mailing
10312   list. Expire dates do have spaces and still need to get parsed properly!
10313   Instead we just ignore trailing white space and it seems to work...
10314
10315 Daniel (26 February 2002)
10316 - Made the cookie property 'Max-Age' work, just since we already tried to
10317   support it, it is better to do it right. No one uses this anyway.
10318
10319 - The cookie parser could crash if a really weird (illegal) cookie line was
10320   received. I also made it better discard really oddly formatted lines better.
10321
10322   Made the cookie jar store the second field from the left using the syntax
10323   that Netscape and Mozilla probably like. Curl itself ignores it.
10324
10325   Added test case 31 for these cases.
10326
10327   Clay Loveless' email regarding some cookie issues started my cleanup.
10328
10329 - Kevin Roth pointed out that my automake fiddles broke the ability to build
10330   outside the source-tree and I posted a patch to the mailing list that brings
10331   this ability back.
10332
10333 Version 7.9.5-pre4
10334
10335 Daniel (25 February 2002)
10336 - Fiddled with the automake files to make all source files in the lib
10337   directory not have ../src in the include path, and the src sources shouldn't
10338   have ../lib!
10339
10340 - All 79 test cases ran OK under Linux and Solaris using the new HTTP server
10341   in the test suite. The new HTTP server was first donated by Georg Horn and
10342   subsequently modified to work with the test suite. It is currently still not
10343   portable enough to run on "all over" but this is a start and I can run all
10344   curl tests on my machines. This is an important requirement for the upcoming
10345   public release.
10346
10347 - Using -d and -I on the same command line now reports an error, as it implies
10348   two different HTTP requests that can't be mixed.
10349
10350 - Jeffrey Pohlmeyer provided a patch that made the -w/--write-out option
10351   support %{content_type} to get the content type of the recent download.
10352
10353 - Kevin Roth reported that pre2 and pre3 didn't compile properly on cygwin,
10354   and this was because I used #ifdef HAVE_WINSOCK_H in lib/multi.h to figure
10355   out if we could include winsock.h which turns out not to be a wise choice to
10356   do on cygwin since it has the file but can't include it!
10357
10358 Daniel (22 February 2002)
10359 - Added src/config-vms.h to the release archive.
10360
10361 - Fixed the connection timeout value again, the change from February 18 wasn't
10362   complete.
10363
10364 Version 7.9.5-pre3
10365
10366 Daniel (21 February 2002)
10367 - Kevin Roth and Andrés García both found out that lib/config.h.in was missing
10368   in the pre-release archive and thus the configure script failed.
10369
10370 Version 7.9.5-pre2
10371
10372 Daniel (20 February 2002)
10373 - Andrés García provided a solution to bug report #515228. the total time
10374   counter was not set correctly when -I was used during some conditions (all
10375   headers were read in one single read).
10376
10377 - Nico Baggus provided a huge patch with minor tweaks all over to make curl
10378   compile nicely on VMS.
10379
10380 Daniel (19 February 2002)
10381 - Rick Richardson found out that by replacing PF_UNSPEC with PF_INET in the
10382   getaddrinfo() calls, he could speed up some name resolving calls with an
10383   order of magnitudes on his Redhat Linux 7.2.
10384
10385 - Philip Gladstone found a second INADDR_NONE problem where we used long
10386   intead of in_addr_t which caused 64bit problemos. We really shouldn't define
10387   that on two different places.
10388
10389 Daniel (18 February 2002)
10390 - Philip Gladstone found a problem in how HTTP requests were sent if the
10391   request couldn't be sent all at once.
10392
10393 - Emil found and corrected a bad connection timeout comparison that made curl
10394   use the longest of connect-timeout and timout as a timeout value, instead of
10395   the shortest as it was supposed to!
10396
10397 - Aron Roberts provided updated information about LDAP URL syntax to go into
10398   the manual as a replacement for the old references.
10399
10400 Daniel (17 February 2002)
10401 - Philip Gladstone pointed out two missing include files that made curl core
10402   dump on 64bit architectures. We need to pay more attention on these details.
10403   It is *lethal* to for example forget the malloc() prototype, as 'int' is
10404   32bit and malloc() must return a 64bit pointer on these platforms.
10405
10406 - Giaslas Georgios fixed a problem with Host: headers on repeated requests on
10407   the same handle using a proxy.
10408
10409 Daniel (8 February 2002)
10410 - Hanno L. Kranzhoff accurately found out that disabling the Expect: header
10411   when doing multipart formposts didn't work very well. It disabled other
10412   parts of the request header too, resulting in a broken header. When I fixed
10413   this, I also noticed that the Content-Type wasn't possible to disable. It is
10414   now, even though it probably is really stupid to try to do this (because of
10415   the boundary string that is included in the internally generated header,
10416   used as form part separator.)
10417
10418 Daniel (7 February 2002)
10419 - I moved the config*.h files from the root directory to the lib/ directory.
10420
10421 - I've added the new test suite HTTP server to the CVS repository, It seems to
10422   work pretty good now, but we must make it get used by the test scripts
10423   properly and then we need to make sure that it compiles, builds and runs on
10424   most operating systems.
10425
10426 Version 7.9.5-pre1
10427
10428 Daniel (6 February 2002)
10429 - Miklos Nemeth provided updated windows makefiles and INSTALL docs.
10430
10431 - Mr Larry Fahnoe found a problem with formposts and I managed to track down
10432   and patch this bug. This was actually two bugs, as the posted size was also
10433   said to be two bytes too large.
10434
10435 - Brent Beardsley found out and brought a correction for the
10436   CURLINFO_CONTENT_TYPE parser that was off one byte. This was my fault, I
10437   accidentaly broke Giaslas Georgios' patch.
10438
10439 Daniel (5 February 2002)
10440 - Kevin Roth found yet another SSL download problem.
10441
10442 Version 7.9.4
10443
10444 - no changes since pre-release
10445
10446 Version 7.9.4-pre2
10447
10448 Daniel (3 February 2002)
10449 - Eric Melville provided a few spelling corrections in the curl man page.
10450
10451 Daniel (1 February 2002)
10452 - Andreas Damm corrected the unconditional use of gmtime() in getdate, it now
10453   uses gmtime_r() on all hosts that have it.
10454
10455 Daniel (31 January 2002)
10456 - An anonymous bug report identified a problem in the DNS caching which made it
10457   sometimes allocate one byte too little to store the cache entry in. This
10458   happened when the port number started with 1!
10459
10460 - Albert Chin provided a patch that improves the gethostbyname_r() configure
10461   check on HP-UX 11.00.
10462
10463 Version 7.9.4-pre1
10464
10465 Daniel (30 January 2002)
10466 - Georg Horn found another way the SSL reading failed due to the non-blocking
10467   state of the sockets! I fixed.
10468
10469 Daniel (29 January 2002)
10470 - Multipart formposts now send the full request properly, including the CRLF.
10471   They were previously treated as part of the post data.
10472
10473 - The upload byte counter bugged.
10474
10475 - T. Bharath pointed out that we seed SSL on every connect, which is a time-
10476   consuming operation that should only be needed to do once. We patched
10477   libcurl to now only seed on the first connect when unseeded. The seeded
10478   status is global so it'll now only happen once during a program's life time.
10479
10480   If the random_file or egdsocket is set, the seed will be re-made though.
10481
10482 - Giaslas Georgios introduced CURLINFO_CONTENT_TYPE that lets
10483   curl_easy_getinfo() read the content-type from the previous request.
10484
10485 Daniel (28 January 2002)
10486 - Kjetil Jacobsen found a way to crash curl and after much debugging, it
10487   turned out it was a IPv4-linux only problem introduced in 7.9.3 related to
10488   name resolving.
10489
10490 - Andreas Damm posted a huge patch that made the curl_getdate() function fully
10491   reentrant!
10492
10493 - Steve Marx pointed out that you couldn't mix CURLOPT_CUSTOMREQUEST with
10494   CURLOPT_POSTFIELDS. You can now!
10495
10496 Daniel (25 January 2002)
10497 - Krishnendu Majumdar pointed out that the header length counter was not reset
10498   between multiple requests on the same handle.
10499
10500 - Pedro Neves rightfully questioned why curl always append \r\n to the data
10501   that is sent in HTTP POST requests. Unfortunately, this broke the test suite
10502   as the test HTTP server is lame enough not to deal with this... :-O
10503
10504 - Following Location: headers when the connection didn't close didn't work as
10505   libcurl didn't properly stop reading. This problem was added in 7.9.3 due to
10506   the restructured internals. 'Frank' posted a bug report about this.
10507
10508 Daniel (24 January 2002)
10509 - Kevin Roth very quickly spotted that we wrongly installed the example
10510   programs that were built in the multi directory, when 'make install' was
10511   used. :-/
10512
10513 Version 7.9.3
10514
10515 Daniel (23 January 2002)
10516 - Andrés García found a persistancy problem when doing HTTP HEAD, that made
10517   curl "hang" until the connection was closed by the server. This problem has
10518   been introduced in 7.9.3 due to internal rewrites, this was not present in
10519   7.9.2.
10520
10521 Version 7.9.3-pre4
10522
10523 Daniel (19 January 2002)
10524 - Antonio filed bug report #505514 and provided a fix! When doing multipart
10525   formposts, libcurl would include an error text in the actual post if a
10526   specified file wasn't found. This is not libcurl's job. Instead we add an
10527   empty part.
10528
10529 Daniel (18 January 2002)
10530 - Played around with stricter compiler warnings for gcc (when ./configure
10531   --enable-debug is used) and changed some minor things to stop the warnings.
10532
10533 - Commented out the 'long long' and 'long double' checks in configure.in, as
10534   we don't currently use them anyway and the code in lib/mprintf.c that use
10535   them causes warnings.
10536
10537 - Saul Good and jonatan pointed out Mac OS X build problems with pre3 and how
10538   to correct them. Two compiler warnings were removed as well.
10539
10540 - Andrés García fixed two minor mingw32 building problems.
10541
10542 Version 7.9.3-pre3
10543
10544 Daniel (17 January 2002)
10545 - docs/libcurl-the-guide is a new tutorial for our libcurl programming
10546   friends.
10547
10548 - Richard Archer brought back the ability to compile and build with OpenSSL
10549   versions before 0.9.5.
10550   [http://sourceforge.net/tracker/?func=detail&atid=100976&aid=504163&group_id=976]
10551
10552 - The DNS cache code didn't take the port number into account, which made it
10553   work rather bad on IPv6-enabled hosts (especially when doing passive
10554   FTP). Sterling fixed it.
10555
10556 Daniel (16 January 2002)
10557 - Georg Horn could make a transfer time-out without error text. I found it and
10558   corrected it.
10559
10560 - SSL writes didn't work, they return an uninitialized value that caused
10561   havoc all over. Georg Horn experienced this.
10562
10563 - Kevin Roth patched the curl_version() function to use the proper OpenSSL
10564   function for version information. This way, curl will report the version of
10565   the SSL library actually running right now, not the one that had its headers
10566   installed when libcurl was built. Mainly intersting when running with shared
10567   OpenSSL libraries.  
10568
10569 Version 7.9.3-pre2
10570
10571 Daniel (16 January 2002)
10572 - Mofied the main transfer loop and related stuff to deal with non-blocking
10573   sockets in the upload section. While doing this, I've now separated the
10574   connection oriented buffers to have one for downloads and one for uploads
10575   (as two can happen simultaneously). I also shrunk the buffers to 20K
10576   each. As we have a scratch buffer twice the size of the upload buffer, we
10577   arrived at 80K for buffers compared with the previous 150K.
10578
10579 - Added the --cc option to curl-config command as it enables so very cool
10580   one-liners. Have a go a this one, building the simple.c example:
10581
10582         $ `curl-config --cc --cflags --libs` -o example simple.c
10583
10584 Daniel (14 January 2002)
10585 - I made all socket reads (recv) handle EWOULDBLOCK. I hope nicely. Now we
10586   only need to address all writes (send) too and then I'm ready for another
10587   pre-release...
10588
10589 - Stoned Elipot patched the in_addr_t configure test to make it work better on
10590   more platforms.
10591
10592 Daniel (9 January 2002)
10593 - Cris Bailiff found out that filling up curl's SSL session cache caused a
10594   crash!
10595
10596 - Posted the curl questionnaire on the web site. If you haven't posted your
10597   opinions there yet, go there and do it now while it is still there:
10598
10599         http://curl.haxx.se/q/
10600
10601 - Georg Horn quickly found out that the SSL reading no longer worked as
10602   supposed since the switch to non-blocking sockets. I've made a quick patch
10603   (for reading only) but we should improve it even further.
10604
10605 Version 7.9.3-pre1
10606
10607 Daniel (7 January 2002)
10608 - I made the 'bool' typedef use an "unsigned char". It makes it the same on
10609   all platforms, no matter what the platform thinks the default format for
10610   char is. This was noticed since we made a silly comparison involving such a
10611   bool variable, and only one compiler/platform combination (on Debian Linux)
10612   complained about it (that happened to have its char unsigned by default).
10613
10614 - Bug report #495290 identified a cookie parsing problem that was corrected.
10615   When a Set-Cookie: line is received without a trailing semicolon, libcurl
10616   didn't read the last "name=value" pair of the line, leading to confusions...
10617
10618 - Sterling committed his updated DNS cache code.
10619
10620 - I worked with Georg Horn and comments from Götz Babin-Ebell and switched
10621   curl's socket operations completely over to non-blocking for the entire
10622   operation (previously we used non-blocking only for the connection phase).
10623   We had to do this to make the SSL connection phase timeout properly without
10624   the use of signals. A little extra code to deal with this was added.
10625
10626 - T. Bharath pointed out a slightly obscure cookie engine flaw.
10627
10628 - Pete Su pointed out that libcurl didn't treat HTTP code 204 as it should.
10629   204-replies never provides a response-body. This resulted in bad persistant
10630   behavior when 204 was received.
10631
10632 Daniel (5 January 2002)
10633 - SM updated the VC++ library Makefiles for the new source files.
10634
10635 Daniel (4 January 2002)
10636 - I discovered that we wrongly used inet_ntoa() (instead of inet_ntoa_r() in
10637   two places in the source code). One happened with VERBOSE set on connects,
10638   and the other when VERBOSE was on and krb4 over nat was used... I honestly
10639   don't think anyone has suffered from these mistakes.
10640
10641 - I replaced a lot of silly occurances of printf() to instead use the more
10642   appropriate Curl_infof() or Curl_failf(). The krb4 and telnet code were
10643   affected.
10644
10645 - Philip Gladstone found a few more problems with 64-bit archs (the 64-bit
10646   sparc on solaris 8).
10647
10648 - After discussions on the libcurl list with Raoul Cridlig, I just made FTP
10649   response lines get passed to the header callback if such a one is
10650   registered. It'll make it possible for any application to get all the
10651   responses an FTP server sends to libcurl.
10652
10653 Daniel (3 January 2002)
10654 - Sterling Hughes brought a few buckets of code. Now, libcurl will
10655   automatically cache DNS lookups and re-use the previous results first if any
10656   such is available. It greatly improves speed when doing many repeated
10657   operations to the same host.
10658
10659 - As the test case uses --include and then --head, I had to modify src/main.c
10660   to deal with this situation slightly better than previously. When done, we
10661   have 100% good tests again in the main branch.
10662
10663 Daniel (2 January 2002)
10664 - Made test case 25 run again in the multi-dev branch. But it seems that the
10665   changes done on dec-20 made test case 104 cease to work (in both branches).
10666
10667 - Philip Gladstone pointed out a few portability problems in the source code
10668   that didn't compile on 64-bit sparcs using Sun's native compiler.
10669 Daniel (20 December 2001)
10670 - Björn Stenberg caught an unpleasent (but hard-to-find) bug that could cause
10671   libcurl to hang on transfers over proxy, when the proxy was specified with
10672   an environment variable!
10673
10674 - Added code to make ftp operations treat the NO_BODY and HEADERS options
10675   better:
10676
10677    NO_BODY set TRUE and HEADERS set TRUE:
10678     Return a set of headers with file info
10679
10680    NO_BODY set FALSE
10681     Transfer data as usual, HEADERS is ignored
10682
10683    NO_BODY set TRUE and HEADERS set FALSE
10684     Don't transfer any data, don't return any headers. Just perform the set
10685     of FTP commands.
10686
10687 Daniel (17 December 2001)
10688 - Götz Babin-Ebell dove into the dark dungeons of the OpenSSL ENGINE stuff and
10689   made libcurl support it! This allows libcurl to do SSL connections with the
10690   private key stored in external hardware.
10691
10692   To make this good, he had to add a bunch of new library options that'll be
10693   useful to others as well:
10694
10695    CURLOPT_SSLCERTTYPE  set SSL cert type (PEM/DER)
10696    CURLOPT_SSLKEY       set SSL private key (file)
10697    CURLOPT_SSLKEYTYPE:  set SSL key type (PEM/DER/ENG)
10698    CURLOPT_SSLKEYPASSWD: set the passphrase for your private key
10699                           (CURLOPT_SSLCERTPASSWD is an alias)
10700    CURLOPT_SSLENGINE:   set the name of the crypto engine
10701                         (returns CURLE_SSL_ENGINE_NOTFOUND on error)
10702    CURLOPT_SSLENGINE_DEFAULT: set the default engine
10703
10704   There are two new failure codes:
10705
10706    CURLE_SSL_ENGINE_NOTFOUND
10707    CURLE_SSL_ENGINE_SETFAILED
10708
10709 Daniel (14 December 2001)
10710 - We have "branched" the source-tree at a few places. Checkout the CVS sources
10711   with the 'multi-dev' label to get the latest multi interface development
10712   tree. The idea is to only branch affected files and to restrict the branch
10713   to the v8 multi interface development only.
10714
10715   *NOTE* that if we get bug reports and patches etc, we might need to apply
10716   them in both branches!
10717
10718   The multi-dev branch is what we are gonna use as main branch in the future
10719   if it turns out successful. Thus, we must maintain both now in case we need
10720   them. The current main branch will be used if we want to release a 7.9.3 or
10721   perhaps a 7.10 release before version 8. Which is very likely.
10722
10723 - Marcus Webster provided code for the new CURLFORM_CONTENTHEADER option for
10724   curl_formadd(), that lets an application add a set of headers for that
10725   particular part in a multipart/form-post. He also provided a section to the
10726   man page that describes the new option.
10727
10728 Daniel (11 December 2001)
10729 - Ben Greear made me aware of the fact that the Curl_failf() usage internally
10730   was a bit sloppy with adding newlines or not to the error messages. Let's
10731   once and for all say that they do not belong there!
10732
10733 - When uploading files with -T to give a local file name, and you end the URL
10734   with a slash to have the local file name used remote too, we now no longer
10735   use the local directory as well. Only the file part of the -T file name
10736   will be appended to the right of the slash in the URL.
10737
10738 Daniel (7 December 2001)
10739 - Michal Bonino pointed out that Digital Unix doesn't have gmtime_r so the
10740   link failed. Added a configure check and corrected source code.
10741
10742 Version 7.9.2
10743
10744 Daniel (5 December 2001)
10745 - Jon Travis found out that if you used libcurl and CURLOPT_UPLOAD and then
10746   on the same handle used CURLOPT_HTTPGET it would still attempt to upload.
10747   His suggested fix was perfect.
10748
10749 Daniel (4 December 2001)
10750 - Incorporated more macos fixes and added four specific files in a new
10751   subdirectory below src.
10752
10753 Daniel (3 December 2001)
10754 - Eric Lavigne reported two problems:
10755
10756   First one in the curl_strnequal() function. I think this problem is rather
10757   macos 9 specific, as most platform provides a function to use instead of the
10758   one provided by libcurl.
10759
10760   A second, more important, was in the way we take care of FTP responses. The
10761   code would read a large chunk of data and search for the end-of-response
10762   line within that chunk. When found, it would just skip the rest of the
10763   data. However, when the network connections are special, or perhaps the
10764   server is, we could actually get more than one response in that chunk of
10765   data so that when the next invoke to this function was done, the response
10766   had already been read and thrown away. Now, we cache the data not used in
10767   one call, as it could be useful in the subsequent call. Test case 126 was
10768   added and the test ftp server modified, to exercise this particular case.
10769
10770 Version 7.9.2-pre8
10771
10772 Daniel (2 December 2001)
10773 - Bug report #487825 correctly identified a problem when using a proxy and
10774   following a redirection from HTTP to HTTPS. libcurl then re-used the same
10775   proxy connection but without doing a proper HTTPS request.
10776
10777 - Fixed win32 compiling quirks.
10778
10779 Version 7.9.2-pre7
10780
10781 Daniel (30 November 2001)
10782 - Documented --disable-epsv and CURLOPT_FTP_USE_EPSV.
10783
10784 Daniel (29 November 2001)
10785 - Added --disable-epsv as an option. When used, curl won't attempt to use the
10786   EPSV command when doing passive FTP downloads. Wrote a test case for it.
10787
10788 - Eric provided a few more fixes for building on Macs. He also pointed out
10789   a flaw in the signal handler restoration code.
10790
10791 Daniel (28 November 2001)
10792 - Fiddled with some Tru64 problems reported by Dimitris Sarris. They appeared
10793   only when using VERBOSE ftp transfers. Do we use a too small buffer for
10794   gethostbyaddr_r(), was the lack of using in_addr_t wrong or is it that the
10795   hostent struct must be blanked before use? With Dimitris help and these
10796   patches, the problems seem to be history.
10797
10798 - CURLOPT_FTP_USE_EPSV was added and can be set to FALSE to prevent libcurl
10799   from using the EPSV command before trying the normal PASV. Heikki Korpela
10800   pointed out that some firewalls and similar don't like the EPSV so we must
10801   be able to shut if off to work everywhere.
10802
10803 - I added a configure check for 'in_addr_t' and made the ftp code use that to
10804   receive the inet_addr() return code in. Works on Solaris and Linux at
10805   least. The Linux man page for inet_addr() doesn't even mention in_addr_t...
10806
10807 - Adjusted (almost) all FTP tests to the new command sequence.
10808
10809 - FTP command sequence changes:
10810
10811   EPSV is now always attempted before PASV. It is the final touch to make IPv6
10812   passive FTP downloads to work, but EPSV is not restricted to IPv6 but works
10813   fine with IPv4 too on the servers that support it.
10814
10815   SIZE is now always issued before RETR. It makes curl know the actual
10816   download size before the download takes place, as it makes it less important
10817   to find the size sent in RETR responses. Many sites don't include the size
10818   in there.
10819
10820   Both these changes made it necessary to change the test suite's ftp server
10821   code, and all FTP test cases need to be checked and adjusted!
10822
10823 Daniel (27 November 2001)
10824 - Hans Steegers pointed out that the telnet code read from stdout, not stdin
10825   as it is supposed to do!
10826
10827 Version 7.9.2-pre6
10828
10829 Daniel (27 November 2001)
10830 - Eric Lavigne's minor changes to build on MacOS before OS X were applied.
10831
10832 - greep at mindspring.com provided a main index.html page for our release
10833   archive docs directory. It just links to all the existing HTML files, but
10834   I think it may come useful to people.
10835
10836 - There's now some initial code to support the EPSV FTP command. That should
10837   be used to do passive transfers IPv6-style. The code is still #if 0'ed in
10838   lib/ftp.c as I have no IPv6 ftp server to test this with.
10839
10840 Daniel (26 November 2001)
10841 - Robert Schlabbach had problems to understand how to do resumed transfers,
10842   and I clarified the man page -C section somewhat.
10843
10844 Version 7.9.2-pre5
10845
10846 Daniel (22 November 2001)
10847 - Andrés García helped me out to track down the roots of bug report #479537,
10848   which was concerning curl returning the wrong error code when failing to
10849   connect. This didn't happen on all systems, and more specificly I've so far
10850   only seen this happen on IPv4-only Linux hosts.
10851
10852 - I applied the fixes for the two bugs Eric Lavigne found when doing his MacOS
10853   port. A missing comma in arpa_telnet.h and a pretty wild write in the FTP
10854   response reader function. The latter write is however likely to occur in our
10855   own buffer unless very big FTP server replies (>25K) are read. I've never
10856   seen such a reply ever, so I think this is a relatively minor risk.
10857
10858 Daniel (21 November 2001)
10859 - Moonesamy provided code to prevent junk from being output when libcurl
10860   returns an error code but no error description and that corrects how make is
10861   run in the Makefile.dist file (that appears as root Makefile in release
10862   archives).
10863
10864 - Eric Lavigne mailed me bugfixes and patches for building libcurl on MacOS
10865   (non-X).
10866
10867 - Kevin Roth modified the cygwin files once again, now to build against the
10868   shared OpenSSL DLLs.
10869
10870 Version 7.9.2-pre4
10871
10872 Daniel (20 November 2001)
10873 - Georg Horn brought a patch that introduced CURLINFO_STARTTRANSFER_TIME,
10874   complete with man page updates!
10875
10876 Daniel (19 November 2001)
10877 - Miklos Nemeth provided details enough to update the Borland makefile
10878   properly.
10879
10880 - Lars M Gustafsson found a case with a bad free(). In fact, it was so bad I'm
10881   amazed we never saw this before!
10882
10883 - Kevin Roth patched the cygwin Makfile.
10884
10885 Daniel (16 November 2001)
10886 - Klevtsov Vadim fixed a bug in how time-conditionals were sent when doing
10887   HTTP.
10888
10889 Version 7.9.2-pre3
10890
10891 Daniel (14 November 2001)
10892 - Samuel Listopad patched away the problem with SSL we got when someone call
10893   curl_global_init() => curl_global_cleanup() => curl_global_init(). The
10894   second init would not "take" and SSL would be unusable with curl from that
10895   point. This doesn't change the fact that calling the functions that way is
10896   wrong. curl_global_init() should be called exactly once and not more.
10897
10898 Daniel (13 November 2001)
10899 - Fixed some minor variable type mixups in ftp.c that caused compiler warnings
10900   on HP-UX 11.00.
10901
10902 - The FTP fix I did yesterday used an uninitialized variable that caused
10903   spurious errors when doing FTP.
10904
10905 Version 7.9.2-pre2
10906
10907 Daniel (12 November 2001)
10908 - Ricardo Cadime fell over a multiple-requests problem when first a FTP
10909   directory fetch failed and then a second request is made after that. The
10910   second request happened to get the FTP server response back from the
10911   previous request, when it did its initial CWD command.
10912
10913 - Bjorn Reese pointed out that we could improve the time diff function to
10914   prevent truncation a bit.
10915
10916 - Kai-Uwe Rommel made me aware that -p (http proxy tunnel) silly enough didn't
10917   work for plain HTTP requests! So I made that work.
10918
10919 Version 7.9.2-pre1
10920
10921 Daniel (12 November 2001)
10922 - Rewrote the Curl_ConnectHTTPProxyTunnel(). It should now not only work a lot
10923   faster, it should also support such ("broken") proxies that John Lask
10924   previously have reported problems with. His proxy sends a trailing zero byte
10925   after the end of the (proxy-) headers. I've tested this myself and it seems
10926   to work on a proxy the previous version also worked with...! This rewrite is
10927   due to the problems John Lask previously experienced.
10928
10929 - Andrés García found out why the "current speed" meter sometimes showed 2048K
10930   for very quick transfers. It turned out the "time diff"-function returned a
10931   zero millisecond diff. We now always say it is at least one millisecond! In
10932   reality, these timers very rarely have that good resolution so even though
10933   the time diff was longer than 1 millisecond, it was reported as no diff.
10934
10935 - I also modified the getinfo() again when returning times, as Paul Harrington
10936   reports that 7.9.1 only returns times with 1 second accuracy, which indeed
10937   is wrong.
10938
10939 Daniel (8 November 2001)
10940 - Marcus Webster found out that curl_formadd() could read one byte outside a
10941   buffer boundary, which then of course could lead to a crash. Marcus also
10942   gracefully provided a patch for this this.
10943
10944 - Glen Scott ran configure on his Cobalt Qube and it didn't figure out the
10945   correct way of calling gethostbyname_r() and thus failed to resolve hosts.
10946   This is two errors: it shouldn't continue the configure script if it finds
10947   gethostbyname_r() but can't figure out how to use it, and it should really
10948   figure out how to use it as it was running Linux and we know how that
10949   works...
10950  
10951 Daniel (7 November 2001)
10952 - docs/VERSIONS is a new file in the archive that explains the version number
10953   system we use in the curl project.
10954
10955 - Did some more fixes that now makes libcurl only ignore signals as long as
10956   it needs to, and then restore (if any) previous signal handler again.
10957
10958 Daniel (6 November 2001)
10959 - Enrik Berkhan posted bug report #478780, in which he very correctly pointed
10960   out two bad timeout matters in libcurl: we didn't restore the sigaction
10961   struct (the alarm handler for SIGALRM) nor did we restore the previous
10962   alarm() timeout that could've been set by a "parent" process or similar.
10963
10964 - Kevin Roth made the cygwin binary get stripped before install.
10965
10966 Daniel (5 November 2001)
10967 - Detlef Schmier reported that curl didn't compile using Solaris 8 with the
10968   native cc compiler. It was due to a bad function prototype. Fixed now.
10969   Unfortunately, I can't enable the -Wstrict-prototypes in my debug builds
10970   though, as gcc then complains like crazy on OpenSSL include files... :-(
10971
10972 - John Lask provided SSL over HTTP proxy fixes. They'll need some tweaking
10973   to work on all platforms.
10974
10975 - John Lask added the -1/--TLSv1 options that forces SSL into using TLS
10976   version 1 when speaking HTTPS.
10977
10978 - John Lask brought a brand new VC++ makefile for the lib directory, that
10979   works a lot better than the previous!
10980
10981 - Ramana Mokkapati brought some clever insights on the LDAP failures (bug
10982   report #475407), and his suggested changes are now applied.
10983
10984 Version 7.9.1
10985
10986 Daniel (4 November 2001)
10987 - I've added a number of new test cases the last few days. A few of them since
10988   I got reports that hinted on problems on timeouts, so I added four tests
10989   with timeouts for all sorts of protocols and stuff. I also came to think of
10990   a few other error scenarios that we currently didn't test properly, so I
10991   wrote up tests for a few of those too.
10992
10993 Daniel (2 November 2001)
10994 - Replaced read() and write() with recv() and send() for socket operations
10995   even under normal unixes.
10996
10997 Daniel (1 November 2001)
10998 - When an FTP transfer was aborted due to a timeout, it wasn't really aware of
10999   how many bytes that had been transferred and the error text always said 0
11000   bytes. I modified this to output the actually transferred amount! :-)
11001
11002 - The FTP fixes in pre7 didn't compile on IPv6 enabled hosts. Does now. I also
11003   added more comments in the lib/ftp.c source file.
11004
11005 - Minor updates to the FAQ, added a brand new section to the web site about
11006   the name issue (who owns "curl"? will someone sue us? etc etc):
11007   http://curl.haxx.se/legal/thename.html
11008
11009 Version 7.9.1-pre7
11010
11011 Daniel (31 October 2001)
11012 - The curl_easy_getinfo() timers accidentally lost their subsecond accuracy as
11013   the calculations used longs instead of doubles! Paul Harrington reported.
11014
11015 - The SSL SocketIsDead() checks weren't good enough (as expected really), so I
11016   had to add a generic internal try-it-out system. If the request on a re-used
11017   connection seems to fail, then we go back and get a new (fresh) connection
11018   and re-tries the request on that instead. It kind of makes the
11019   SocketIsDead() check obsolete, but I think it is a quicker way for those
11020   cases where it actually discovers that the connection is dead.
11021
11022 - When fixing the above, I noticed that we did quite a few writes to sockets
11023   in libcurl where we didn't check the return code (that it actually worked to
11024   send the data). With the new "attempted request" system we must detect those
11025   situations so I went over a bunch of functions, changed return types and
11026   added checks for what they actually return.
11027
11028 Version 7.9.1-pre6
11029
11030 Daniel (31 October 2001)
11031 - Paul Harrington detected a problem with persistant SSL connections. Or to be
11032   more exact, we didn't properly detect that the connection was dead and then
11033   a second connection would try to re-use it wrongly. The solution to this
11034   problem is still not very clear and I'm working on it. One OpenSSL insider
11035   said there is no way to know if the SSL connection is alive or not without
11036   actually trying an operation.
11037
11038 Daniel (30 October 2001)
11039 - If a cookie was read from a file, it could accidentally strdup() a NULL
11040   pointer. Paul Harrington reported. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/cookie.c.diff?r1=1.25&r2=1.26]
11041
11042 - The MANUAL file now documents -t correctly. I also fixed the -T description
11043   in the curl.1 man page.
11044
11045 Daniel (29 October 2001)
11046 - John Janssen found out that curl_formadd was missing in the libcurl.def file
11047   and that the docs stated the wrong return type for the function.
11048
11049 - Andrés García found a bug with multiple files in the curl_formadd() function,
11050   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].
11051
11052 - Kevin Roth brought another patch that moved the cygwin package files to the
11053   packages/Win32/cygwin directory.
11054
11055 - A bug in the connection re-use logic made repeated requests to the same FTP
11056   server (when using name+pasword in the URL) sometimes use more than one
11057   connection. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/url.c.diff?r1=1.166&r2=1.167]
11058
11059 - Moonesamy tracked down and fixed a problem with the new 7.9.1 connect
11060   code. This corrected the error Kevin Roth reported on the 7.9.1-pre5 release
11061   (test 19)...
11062   [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/connect.c.diff?r1=1.13&r2=1.14]
11063
11064 Daniel (26 October 2001)
11065 - Added test28 which verifies that "Location:"-following works even if the
11066   contents is separated with more than one space.
11067
11068 Daniel (25 October 2001)
11069 - Ramana Mokkapati pointed out that LDAP transfers would 'hang' after the
11070   correct data has been output.
11071
11072 Version 7.9.1-pre5
11073
11074 Daniel (24 October 2001)
11075 - T. Bharath found a memory leak in the cookie engine. When we update a cookie
11076   that we already knew about, we lost a chunk of memory in the progress... The
11077   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]
11078
11079 Daniel (23 October 2001)
11080 - pack_hostent() didn't properly align some pointers, so at least SPARC CPUs
11081   would core. [http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/curl/curl/lib/hostip.c.diff?r1=1.34&r2=1.35]
11082
11083 Daniel (22 October 2001)
11084 - Tom Benoist reported that this SGI IRIX compiler didn't handle indented
11085   preprocessor instructions, so they're no longer in the source code!
11086
11087 - Applied Kevin Roth's patches to make it easier to build cygwin packages from
11088   the out-of-the-box curl release archives.
11089
11090 - I forgot to mention it below, but libcurl now closes connections that report
11091   transfer failures. Unconditionally. This could be made more nicely in the
11092   future if we set a flag or something that the connection is still good to be
11093   used for the errors that know that for a fact. We have to close the
11094   connection for the cases where we abort for example a HTTP transfer in the
11095   middle, or otherwise we might re-use that connection later with lots of data
11096   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]
11097
11098 Daniel (19 October 2001)
11099 - CURLE_GOT_NOTHING is now returned when a HTTP server doesn't return
11100   anything, not even a header. test case 37 was added to test for this.
11101
11102 - T. Bharath made curl_easy_duphandle() properly clone the cookie status as
11103   well.
11104
11105 Version 7.9.1-pre4
11106
11107 Daniel (18 October 2001)
11108 - CURLOPT_FAILONERROR, set with "curl --fail" no longer returns an error if
11109   the HTTP return code is below 400.
11110
11111 Daniel (17 October 2001)
11112 - The test suite now kills any running test http server when you re-start the
11113   tests.
11114
11115 - We had to remove 'use strict' from two perl scripts, as the cygwin
11116   adjustments didn't play nicely otherwise for some reason. Any perl wizard
11117   out there who can put the scrict back and still make it run good on unix and
11118   cygwin?
11119
11120 - A potential memory leak pointed out to us by Yanick Pelletier was removed.
11121   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]
11122
11123 - The memory debugging system should no longer display anything to stderr
11124   if the curl_memdebug() hasn't been used to explicitly say so. This makes it
11125   easier to use the memory debug system and switch the logging on/off.
11126
11127 Daniel (16 October 2001)
11128 - Kevin Roth provided fixes for building curl nicer in cygwin environments.
11129
11130 Daniel (12 October 2001)
11131 - Cleaning up the progress meter/info code. The "current speed" is now more
11132   accurate than before as we now use the true time spent between the measures,
11133   and not just "assuming" every-second-update like before. The output should
11134   now also be of the same width at all times, never to show "extra" zeroes on
11135   the right edge.
11136
11137 - After talking about possible Location: bugs on the mailing list, I modified
11138   the "absolute URL" checker in lib/transfer.c to be more strict when checking
11139   if the redirected URL is absolute.
11140
11141 Daniel (11 October 2001)
11142 - Kevin Roth provided patches that make the test suite run fine on Windows
11143   2000 running cygwin.
11144
11145 Daniel (10 October 2001)
11146 - Setting the -c or the CURLOPT_COOKIEJAR option now enables the cookie parser.
11147   Previously -b or CURLOPT_COOKIEFILE was also required for the jar to work.
11148
11149 Version 7.9.1-pre3
11150
11151 Daniel (9 October 2001)
11152 - Added a new option to the command line client: -0/--http1.0. It uses the new
11153   libcurl option CURLOPT_HTTP_VERSION to request that libcurl uses HTTP 1.0
11154   requests instead of the default version (1.1). It should only be used if you
11155   really MUST do that because of a silly remote server.
11156
11157 - Renamed the 'TimeCond' typedef in curl/curl.h to use a 'curl_' prefix as
11158   all public curl-symbols should.
11159
11160 - libcurl now explicitly ignores the SIGPIPE signal.
11161
11162 Daniel (8 October 2001)
11163 - Kevin Roth's change to the cookie-jar comment (in the stored file) was
11164   applied.
11165
11166 - Lucas Adamski's minor bug in the bind error code failf() was fixed.
11167
11168 Daniel (5 October 2001)
11169 - Moonesamy fixed the Curl_connecthost() function to not give compiler errors
11170   on a bunch of compilers, due to the argument named 'socket'.
11171
11172 - Moonesamy also provided updated VC++ makefiles and project files.
11173
11174 Version 7.9.1-pre2
11175
11176 Daniel (4 October 2001)
11177 - Albert Chin provided a configure patch that makes the script detect proper
11178   gethostbyname_r() method without actually running any code, only compiling
11179   is necessary. This also removes the need of having a resolving 'localhost'
11180   name.
11181
11182 - Found and removed memory leakage (name resolve data) in libcurl on
11183   IPv6-enabled hosts. These could sneak through because we didn't have any
11184   resource tracing on the IPv6-related functions. We do now.
11185
11186 Daniel (3 October 2001)
11187 - Keith McGuigan patched away a (mainly Windows-) problem with the name
11188   resolver data being kept in the static memory area, which is removed when a
11189   thread is killed. The curl handle itself though perfectly handles being
11190   passed between threads.
11191
11192 - Dirk Eddelbuettel reported an odd bug that turned out to be his proxy that
11193   required an Authorization: header. Now, proxies are not supposed to require
11194   that header, that is for true servers...
11195
11196 - I accidentally ruined Georg's curl_formadd(). Uh, bad me. Corrected now.
11197
11198 Version 7.9.1-pre1
11199
11200 Daniel (3 October 2001)
11201 - Georg Huettenegger once again made an effort beyond the call of duty and not
11202   only improved the curl_formadd() function, but also took care of adjusting
11203   the curl command line client to use this new function instead of the
11204   obsoleted curl_formparse.
11205
11206 Daniel (2 October 2001)
11207 - Major fix in how libcurl does TCP connects. It now does non-blocking
11208   connects to enable good timeouts without signals, and it now tries all IP
11209   addresses for any given host (if it resolves more than one and the first
11210   one(s) don't connect). Added a new source file 'connect.c' to deal with all
11211   the TCP connect stuff.
11212
11213 - We now support IPv4-style IP-addresses in rfc2732-format, to better support
11214   people writing scripts without knowing what address there is.
11215
11216 Daniel (28 September 2001)
11217 - Cleanups in the FTP source code. Divided the code into even more smaller
11218   functions and generally tried to make the differences between IPv4 and IPv6
11219   get less noticable in the sources.
11220
11221 - If the remote file time is not readable/accessable/understood by libcurl,
11222   libcurl now returns -1 in the CURLINFO_FILETIME data, not 0 as it previously
11223   did. This should make curl not touch the file data unless there was a known
11224   remote date when -R is used.
11225
11226 Daniel (27 September 2001)
11227 - Working on getting non-blocking connects working platform independent. We
11228   will also make curl try all IPs for a given host if the first one should
11229   fail.
11230
11231 Daniel (26 September 2001)
11232 - Kevin Roth provided a cookie example that proved the cookie jar
11233   functionality wasn't working properly. I added test case 46 and made it
11234   work.
11235
11236 Daniel (25 September 2001)
11237 - Jörn Hartroth updated the mingw32 makefiles.
11238
11239 Version 7.9
11240
11241 Daniel (23 September 2001)
11242 - Found and removed a 'socket leak' that would occur on IPv6 enabled hosts
11243   when FTP RETR failed.
11244
11245 - Made the FTP upload tests run fine on machines with IPv6 enabled.
11246
11247 Version 7.9-pre8
11248
11249 Daniel (19 September 2001)
11250 - Vojtech Minarik set up a special-purpose test server and provided me with
11251   test certificates in order for me to repeat the bug reports #440068 and
11252   #440373. It turned out we didn't check all the error codes properly. We do
11253   now, and connecting with a unacceptable certificate will make libcurl fail
11254   to connect with an error code returned.
11255
11256 - Ramana Mokkapati found a case when the Location: following code did wrong.
11257   I wrote a test case for this (45).
11258
11259 Version 7.9-pre7
11260
11261 Daniel (17 September 2001)
11262 - Linus Nielsen Feltzing fixed telnet for win32. It makes libcurl require
11263   winsock 2.0.
11264
11265 Version 7.9-pre6
11266
11267 - libtool 1.4.2 is now in use!
11268
11269 Version 7.9-pre5
11270
11271 Daniel (14 September 2001)
11272 - Added another 14 ftp tests.
11273
11274 Daniel (13 September 2001)
11275 - Added curl_easy_duphandle() to the easy.h header file. It has now been
11276   tested and proved to work in a real-world tests by T Bharath. We still need
11277   to write up some docs for this function.
11278
11279 - Added four more ftp tests to the test suite.
11280
11281 Daniel (12 September 2001)
11282 - CURLOPT_SSL_CIPHER_LIST was added, and the curl tool option is named
11283   --ciphers. Use them to specify a list of ciphers to use in the SSL
11284   connection.
11285
11286 - T. Bharath found a memory leak in libcurl's windows version. It turned out
11287   to be the new duphandle() that didn't quite work yet.
11288
11289 Version 7.9-pre4
11290
11291 Daniel (11 September 2001)
11292 - Added verbose output for SSL connections that output the server
11293   certificate's start and expire dates. As suggested by Paul Harrington.
11294
11295 - Heikki Korpela found problems in the perl ftp server used for the test
11296   suite, when he runs on on OpenBSD with perl 5.6. Some changes have been
11297   made, but nothing really certain.
11298
11299 - T. Bharath has experienced problems with libcurl's stack usage on windows
11300   and works on reducing it.
11301
11302 Daniel (10 September 2001)
11303 - Cris Bailiff fixed the perl interface. It stopped working since the changed
11304   behavior with WRITEHEADER and NULL pointers.
11305
11306 - The "output cookies" function could dump core if no cookies were enabled.
11307
11308 Daniel (7 September 2001)
11309 - SM pointed out that the SSL code didn't compile any longer if SSL was
11310   disabled... Also, we needed to correct the #include for the utime stuff on
11311   windows.
11312
11313 Daniel (6 September 2001)
11314 - T. Bharath pointed out a flaw in the SSL session cache code that made it
11315   sometimes read from a NULL pointer.
11316
11317 Version 7.9-pre3
11318
11319 Daniel (3 September 2001)
11320 - Added the -R/--remote-time option, that uses the remote file's datestamp to
11321   set the local file's datestamp. Thus, when you get a remote file your local
11322   file will get the same time and date. Note that this only works when you use
11323   -o or -O.
11324
11325 - Installed libtool 1.4.1, libtoolized and everything.
11326
11327 Daniel (1 September 2001)
11328 - Heikki Korpela pointed out that I did not ship the proper libtool stuff in 
11329   the pre-releases, even though that was my intention. libtoolize has now
11330   been re-run.
11331
11332 - Heikki also patched away the bad use of 'make -C' in the test suite
11333   makefile. make -C is not very portable and is now banned from here.
11334
11335 Version 7.9-pre2
11336
11337 Daniel (31 August 2001)
11338 - I just made a huge internal struct rehaul, and all the big internally used
11339   structs have been renamed, redesigned and stuff have been moved around a bit
11340   to make the source easier to follow, more logically grouped and to hopefully
11341   decrease future bugs. I also hope that this will make new functions to get
11342   easier to add, and make it less likely that we have bugs left like the URL-
11343   free bug from August 23.
11344
11345 Version 7.9-pre1
11346
11347 Daniel (29 August 2001)
11348 - The new cookie code have enabled the brand new '-c/--cookie-jar' option. Use
11349   that to specify the file name in which you want to have all cookies curl
11350   knows of, dumped to. It'll be written using the netscape cookie format.
11351
11352   This is internally done with the new CURLOPT_COOKIEJAR option to libcurl,
11353   which in turn dumps this information when curl_easy_cleanup() is invoked.
11354   There might be reasons to re-consider my choice of putting it there. Perhaps
11355   it is better placed to get done just before *_perform() is done. It is all
11356   of course depending on how you guys want to use this feature...
11357
11358 - Added ftpupload.c in the source examples section, based on source code posted
11359   by Erick Nuwendam.
11360
11361 Daniel (28 August 2001)
11362 - Now running libtool CVS branch-1-4 to generate stuff. Should fix problems
11363   on OpenBSD and hopefully on FreeBSD as well!
11364
11365 - Georg Huettenegger modified the curl_formadd() functionality slightly, and
11366   added support for error code 417 when doing form post and using the Expect:
11367   header. Great work!
11368
11369 - Made some tests with cached SSL session IDs, and they seem to work. There
11370   should be a significant speed improvement in the SSL connection phase, but
11371   in my tiny tests it just isn't possible to notice any difference. Like other
11372   caching in libcurl, you must reuse the same handle for the caching to take
11373   effect. SSL session ID caching is done on a per host-name and destination
11374   port number basis.
11375
11376   Set verbose, and you'll get informational tests when libcurl detects and
11377   uses a previous SSL session ID.
11378
11379 - Upgraded to automake 1.5 on my development/release machine.
11380
11381 Daniel (27 August 2001)
11382 - Slowly started writing SSL session ID caching code
11383
11384 Daniel (24 August 2001)
11385 - T. Bharath removed compiler warnings on windows and updated the MS project
11386   files.
11387
11388 - Kevin Roth reported two kinds of command line constructs with the new -G that
11389   curl didn't really deal with the way one would like.
11390
11391 - Tim Costello patched away a use of strcasecmp() in the SSL code. We have our
11392   own portable version named strequal() that should be used!
11393
11394 - Tim also pointed out a problem in the lib/Makefile.vc6 file that made it mix
11395   debug object modules causing confusions.
11396
11397 Daniel (23 August 2001)
11398 - T. Bharath accurately found a libcurl bug that would happen when doing a
11399   second invoke of curl_easy_perform() with a new URL when the previous invoke
11400   followed a Location: header.
11401
11402 - Started the improvement work on the cookie engine:
11403   - Now keeps cookies in the same order as the cookie file
11404   - A write to the possibly static string was removed
11405   - Added a function that can output all cookies
11406   - Now supports reading multiple cookie files
11407
11408 - Steve Lhomme corrected a DLL naming issue in the MSVC++ project file.
11409
11410 - Split up the monster function in lib/ftp.c to use more smallish functions to
11411   increase readability and maintainability.
11412
11413 Daniel (21 August 2001)
11414 - Georg Huettenegger's big patch was applied. Now we have:
11415   o "Expect: 100-continue" support. We will from now on send that header in
11416     all rfc1867-posts, as that makes us abort much faster when the server
11417     rejects our POST. Posting without the Expect: header is still possible in
11418     the standard replace-internal-header style.
11419   o curl_formadd() is a new formpost building function that is introduced to
11420     replace the now deprecated curl_formparse() function. The latter function
11421     will still hang around for a while, but the curl_formadd() is the new way
11422     and correct way to build form posts.
11423   o Documentation has been updated to reflect these changes
11424
11425   These changes are reason enough to name the next curl release 7.9...
11426
11427 - We now convert man pages to HTML pages and include them in the release
11428   archive. For the pleasure of everyone without nroff within reach.
11429
11430 - Andrés García's suggested flushing of the progress meter output stream was
11431   added. It should make the progress meter look better on Windows.
11432
11433 - Troy Engel pointed out a mistake in the configure script that made it fail
11434   on many Red Hat boxes!
11435
11436 Daniel (20 August 2001)
11437 - We need an updated libtool to make a better build environment for OpenBSD
11438   as well as FreeBSD
11439
11440 Version 7.8.1
11441
11442 Daniel (20 August 2001)
11443 - Brad pointed out that we ship two extra libtool files in the tarballs that
11444   we really don't need to! Removing them makes the gz-archive about 60K
11445   smaller!
11446
11447 - Albert Chin brought fixes for the configure script to detect socklen_t
11448   properly as well as moving lots of our custom autoconf macros to
11449   acinclude.m4.
11450
11451 Daniel (19 August 2001)
11452 - Moonesamy improved his -G feature for host names only URLs...
11453
11454 Daniel (17 August 2001)
11455 - Finally cleaned up the kerberos code to use Curl_ prefixes on all global
11456   symbols and to not use global variables.
11457
11458 Version 7.8.1-pre6
11459
11460 Daniel (16 August 2001)
11461 - S. Moonesamy added the -G option to curl, that converts the data specified
11462   with -d to a GET request. Default action when using -d is POST. When -G is
11463   used, the -d specified data will be appended to the URL with a '?'
11464   separator. As suggested previously by Kevin Roth.
11465
11466 - curl-config --libs should now display all linker options required to link
11467   with libcurl. It includes the path and options for libcurl itself.
11468   curl-config --cflags displays the compiler option(s) needed to compile
11469   source files that use libcurl functions. Basically, that sets the include
11470   path correct.
11471
11472 Daniel (15 August 2001)
11473 - Arkadiusz Miskiewicz pointed out a mistake in how IPv6-style IP-addresses
11474   were parsed and used. (RFC2732-format)
11475
11476 - Bug #12733 over on php.net identified a problem in libcurl that made it core
11477   dump if you used CURLOPT_POST without setting any data to post with
11478   CURLOPT_POSTFIELDS! This is no longer the case. Not using CURLOPT_POSTFIELDS
11479   now equals setting it to no data at all.
11480
11481 - Ramana Mokkapati reported that curl with '-w %{http_code}' didn't work
11482   properly when used for multiple URLs on a single command line. Indeed, the
11483   variable was not reset between the requests. This is now fixed.
11484
11485 - David James fixed the Borland makefile so that libcurl still compiles and
11486   builds with that compiler.
11487
11488 Daniel (14 August 2001)
11489 - Oops. I ruined Nico's socklen_t define in config-vms.h, corrected it now.
11490
11491 - An older item not mentioned here before: CURL_GLOBAL_WIN32 is a define for
11492   windows users to curl_global_init(), that makes libcurl init the winsock
11493   stuff. If libcurl is all socket stuff you do, then allowing it to fiddle
11494   with this is a comfortable shortcut to fame.
11495
11496 Version 7.8.1-pre5
11497
11498 Daniel (14 August 2001)
11499 - Nico Baggus provided more feedback from his VMS porting efforts and a few
11500   minor changes were necessary.
11501
11502 - I modified configure.in so that --enable-debug sets more picky gcc options.
11503   I then removed almost all the new warnings that appeared, and by doing so I
11504   corrected the size_t-treated-as-signed problem that has been discussed on
11505   the mailing list previously. I also removed a bunch of the just recently
11506   added #ifdef VMS lines.
11507
11508 - I removed the use of a global variable in the SSL code. It was once
11509   necessary but hasn't been needed since OpenSSL 0.9.4. The old code should
11510   (hopefully) still work if libcurl is built against an ancient version of
11511   OpenSSL.
11512
11513 Daniel (13 August 2001)
11514 - Peter Todd posted a patch that now allows non-file rc1867-style form posts
11515   to be larger than 4K.
11516
11517 Daniel (10 August 2001)
11518 - S. Moonesamy fixed bugs for building debug and SSL lib in VC makefile
11519
11520 Daniel (9 August 2001)
11521 - The redirected error stream was closed before the curl_easy_cleanup() call
11522   was made, and when VERBOSE was enabled, the cleanup function tried to use
11523   the stream. It could lead to a segmentation fault. Also, the stream was
11524   closed even if we looped to get more files.  Corrects Dustin Boswell's bug
11525   report #441610
11526
11527 - Now generates the release configure script with autoconf 2.52
11528
11529 Version 7.8.1-pre4
11530
11531 Daniel (8 August 2001)
11532 - curl -E uses a colon to separate a file name from a passphrase. This turned
11533   out really bad for the windows people who wants to include a drive letter in
11534   the file name like "c:\cert.pem". There's now a win32 work-around
11535   implemented that tries work around that, when the colon seems to be used for
11536   this kind of construct.
11537
11538 - Patrick Bihan-Faou introduced CURLOPT_SSL_VERIFYHOST, which makes curl
11539   verify the server's CN field when talking https://. If --cacert is not used,
11540   any failures in matching is only displayed as information (-v).
11541
11542 Daniel (7 August 2001)
11543 - Wrote up nine more test cases, more or less converted from the former test
11544   suite.
11545
11546 Daniel (6 August 2001)
11547 - Heikki Korpela posted a patch that makes 'curl-config --libs' include the
11548   directory in which libcurl itself is installed in. While this wasn't my
11549   initial intention with this option, it makes sense and makes linking with
11550   libcurl easier.
11551
11552 - Stefan Ulrich pointed out to us that other tools and libraries treat file://
11553   URLs with only one slash after the host name slighly different than libcurl
11554   does. Since all the others seem to agree, we better follow them.
11555
11556 - Nico Baggus provided us with a huge set of fixes to make curl compile and
11557   build under OpenVMS.
11558
11559 Version 7.8.1-pre3
11560
11561 Daniel (6 August 2001)
11562 - Jonathan Hseu noticed that you couldn't get a header callback unless you
11563   set CURLOPT_WRITEHEADER to non-NULL, even if you didn't care about that
11564   data. This is now fixed.
11565
11566 Daniel (5 August 2001)
11567 - Sergio Ballestrero provided a patch for reading responses from NCSA httpd
11568   1.5.x servers, as they return really screwed up response headers when asked
11569   for with HTTP 1.1.
11570
11571 - curl_escape() no longer treats already encoded characters in the input
11572   string especially.
11573
11574 Daniel (3 August 2001)
11575 - I replaced the former lib/arpa_telnet.h file with one I wrote myself, to
11576   avoid the BSD annoucement clause of the license in the former file.
11577
11578 - Andrew Francis provided a new version of base64.c to work around the license
11579   boiler plate that came with the previous one. I patched it, but the glory
11580   should go to Andrew for his heads up.
11581
11582 - Tomasz Lacki noticed that when you do repeated transfers with libcurl you
11583   couldn't always reliably change HTTP request. This has now been fixed and a
11584   new libcurl option was added: CURLOPT_HTTPGET, that can force the HTTP
11585   requestr (back) to GET.
11586
11587 - Linus Nielsen Feltzing pointed out that httpsserver.pl wasn't included in
11588   release archives. It should be now.
11589
11590 Daniel (2 August 2001)
11591 - Frank Keeney pointed out a manual mistake for certificate convertions.
11592
11593 - Tomasz Lacki pointed out a problem in the transfer loop that could make the
11594   select() loop use far too much CPU.
11595
11596 - Pawel A. Gajda pointed out an output mistake done when using libcurl's
11597   progress callback.
11598
11599 Daniel (29 June 2001)
11600 - Naveen Noel noticed that the Borland library makefile wasn't updated.
11601
11602 - Nic Roets brought a fix for the certificate verification when using SSL.
11603
11604 Daniel (27 June 2001)
11605 - Made the FTP tests run OK even on machines running curl IPv6-enabled.
11606
11607 - Troy Engel corrected some RPM package details.
11608
11609 Version 7.8.1-pre2
11610
11611 Daniel (25 June 2001)
11612 - Björn Stenberg correctly identified a problem that occurred when downloading
11613   several files with curl, and using resume. The first file's resume index was
11614   then used for all files, resulting in weird results...
11615
11616 - Anton Kalmykov provided a fix that makes curl work with form field names
11617   with spaces like when -F is used.
11618
11619 Version 7.8.1-pre1
11620
11621 Daniel (20 June 2001)
11622 - Mike Bytnar provided a fine report that proved that the --with-ssl option
11623   for configure needed tweaking. It no longer searches the default directories
11624   for OpenSSL libs or directories when a specified path is given.
11625
11626 Daniel (19 June 2001)
11627 - When an FTP transfer is cut off during transfer, curl could present a truly
11628   garbaged error message and in worst case dump core. Thanks to detailed
11629   reports from Shawn Poulson we nailed this.
11630
11631 Daniel (12 June 2001)
11632 - Salvador Dávila provided a fix for FTP range downloads.
11633
11634 - Added a few more test cases from the former test suite to the new file
11635   format. We're now at a total of 26 tests.
11636
11637 Daniel (11 June 2001)
11638 - libcurl's version-info was wrong, as noted by both Domenico Andreoli and
11639   David Odin.
11640
11641 Daniel (7 June 2001)
11642 - Jörn fixed the curl_unescape duplicate entry in lib/libcurl.def
11643
11644 - I made SSL certificate failure messages to be more detailed.
11645
11646 Version 7.8
11647
11648 Daniel (7 June 2001)
11649 - SDavila provided a resumed download fix.
11650
11651 Version 7.8-pre4
11652
11653 Daniel (1 June 2001)
11654 - Sterling provided some new PHP examples.
11655
11656 - Changed the CVS hierarchy and the older checkout instruction does no longer
11657   work. We moved the entire source code into a CVS module named 'curl'.
11658
11659 Daniel (31 May 2001)
11660 - CURLOPT_MUTE does not exist anymore. It is still present in the include file
11661   to not cause compiler errors for applications using it, but it isn't used
11662   anywhere in the library.
11663
11664 Version 7.8-pre3
11665
11666 Daniel (31 May 2001)
11667 - Once and for all fixed the _REENTRANT mess for Solaris compiles to present
11668   less warnings.
11669
11670 - Sterling Hughes tirelessly points out and corrects my mistakes...! So,
11671   curl_global_init() now lets the argument flags *SET* what parts to
11672   init. CURL_GLOBAL_DEFAULT makes a nice default, CURL_GLOBAL_ALL inits all
11673   known subsystems and CURL_GLOBAL_NONE inits nothing more than absolutely
11674   necessary. Man page updated accordingly.
11675
11676 - Fixed the strtok.h include file as it wouldn't compile on all platforms!
11677
11678 Daniel (30 May 2001)
11679 - Made libcurl by default act as if CURLOPT_MUTE and CURLOPT_NOPROGRESS were
11680   set TRUE. Set them to FALSE to make libcurl more talkative. The *_MUTE
11681   option is subject for complete removal...
11682
11683 Version 7.8-pre2
11684
11685 Daniel (30 May 2001)
11686 - Cris Bailiff wrote a makefile for building Solaris packages.
11687
11688 - Sterling Hughes brought fixes for 'buildconf' (the build-from-CVS tool) and
11689   we discussed and added a few CURL_GLOBAL_* flags in include/curl.h
11690
11691 - Kjetil Jacobsen privately announced his python interface to libcurl,
11692   available at http://pycurl.sourceforge.net/
11693
11694 Daniel (29 May 2001)
11695 - Sterling Hughes fixed a strtok() problem in libcurl. It is not a thread-
11696   safe function. Now configure checks for a thread-safe version, and
11697   lib/strtok.c offers one for the systems that don't come with one included!
11698
11699 - Mettgut Jamalla correctly pointed out that the -# progress bar was written
11700   to stderr even though --stderr redirection was used. This is now corrected.
11701
11702 - I moved out the list of contributors from the curl.1 man page and made a
11703   separate docs/THANKS file. It makes the list easier to find, and made it
11704   easier for me to make a separate web page with that same information.
11705
11706   I really do want all you guys mentioned in there to feel you get the credit
11707   you deserve.
11708
11709 - lib/easy.c didn't compile properly in the 7.8-pre1 due to a silly mistake
11710
11711 Version 7.8-pre1
11712
11713 Daniel (28 May 2001)
11714 - curl-config now supports '--vernum' that outputs a plain hexadecimal version
11715   of the libcurl version number (using 8 bits for each 3 numbers). Version
11716   7.7.4 appears as 070704
11717
11718 - Wrote man pages for curl_global_init and curl_global_cleanup...
11719
11720 - T. Bharath brought news about the usage of the OpenSSL interface that was
11721   not previously taken into consideration and thus caused libcurl to leak
11722   memory.  The only somewhat sane approach to fix this dilemma, is adding two
11723   two new functions curl_global_init() and curl_global_cleanup() that should
11724   be called *ONCE* by the application using libcurl. The init should be done
11725   only at startup, no matter how many threads the application is gonna use,
11726   and the cleanup should be called when the application has finished using
11727   libcurl completely.
11728
11729   *** UPGRADE NOTICE ***
11730
11731   If you write applications using libcurl, you really want to use the two
11732   functions mentioned above !!!
11733
11734   I can't say I think this is a very beautiful solution, but as OpenSSL
11735   insists on making lots of stuff on a "global" scope, we're forced to walk
11736   the path they point us to.
11737
11738 - Moving more test cases into the new file format.
11739
11740 Version 7.7.4-pre3
11741
11742 Daniel (23 May 2001)
11743 - Introduced a new file format for storing test cases, and thus I had to
11744   modify all the perl test scripts and more (I added a new one). I have not
11745   "ported" all the old test cases to the new format yet, but it'll come.
11746
11747   The main advantage of this new format is that all test data for each test
11748   case is stored in a single file. It gives a better overview for each test
11749   case and a lot less files.
11750
11751 - Andrés García brought a fix for the netscape/mozilla cookie file parsing
11752   function, as it turns out it doesn't always store the path!
11753
11754 Daniel (22 May 2001)
11755 - As was reported anonymously, when FAILONERROR was used, the httpcode was
11756   not stored properly and thus wasn't possibly to read after a transfer with
11757   the curl_easy_getinfo() function. This is now corrected.
11758
11759 - Installed and made use of the following tool versions:
11760     autoconf 2.50
11761     libtool 1.4
11762     automake 1.4-p1
11763
11764   I wouldn't recommend any developer to try to generate things with older
11765   versions than these. Building from CVS will probably more or less require
11766   at least these versions.
11767
11768   As a result of this, the configure script grew to more than double its
11769   previous size!
11770
11771   Arkadiusz Miskiewicz helped me by pointing out I had to remove my
11772   acinclude.m4 file before I could get it working!
11773
11774 Daniel (21 May 2001)
11775 - I made ftps:// work. Added test case 400 to the release archive, as the
11776   first ftps:// test case. Requires stunnel.
11777
11778 - Also made the test cases that runs ssl tests not run if libcurl isn't built
11779   with ssl support.
11780
11781 Daniel (19 May 2001)
11782 - Made the configure not add any extra -L LDFLAGS or -I CPPFLAGS unless they
11783   are actually needed. Albert Chin's and Domenico Andreoli's suggestions
11784   helped out.
11785
11786 Version 7.7.4-pre2
11787
11788 Daniel (18 May 2001)
11789 - Nicer configure-check for the OpenSSL headers, which then sets the proper
11790   variable to have curl-config be good. (Albert Chin provided the fix)
11791
11792 - For systems that don't have theiw own 'strlcat()' libcurl provides its own.
11793   It was now renamed to prevent collides with other libs. (After discussions
11794   with Sterling Hughes and the implications this had on PHP builds.)
11795
11796 Daniel (17 May 2001)
11797 - Colm Buckley posted a detailed bug report on (the debianized) 7.7.3, that
11798   turned out to be a problem with the debian-built 7.7.3-package that
11799   contained files from the 7.7.2 release!
11800
11801 - I added the CURLE_ALREADY_COMPLETE again, but with a fake value, just to
11802   make programs that use it, not fail when compiling against this version of
11803   libcurl.
11804
11805 Daniel (14 May 2001)
11806 - Pawel A. Gajda fixed a problem with resumed transfers on re-used persistent
11807   connections.
11808
11809 Version 7.7.4-pre1
11810
11811 Daniel (14 May 2001)
11812 - Jun-ichiro itojun Hagino fixed FTP PORT for IPv6-enabled libcurl.
11813
11814 - Added the first HTTPS test to the test suite in the release archive.
11815
11816 Daniel (12 May 2001)
11817 - Jukka Pihl suggested that if (lib)curl is told to verify the peer's
11818   certificate and the peer can't be verified, it should fail and return a
11819   proper error code. I added a brand new error code named
11820   CURLE_SSL_PEER_CERTIFICATE for this purpose.
11821
11822 Daniel (11 May 2001)
11823 - As was discussed with Frederic Lepied a while ago, I now made libcurl not
11824   return error even though no data was transfered on upload/download resume
11825   when the no transfer is needed. The CURLE_ALREADY_COMPLETE error was removed
11826   from the header file to make any implemenator that uses that to be aware of
11827   the fact that it can't be returned anymore!
11828
11829 - Improved general header-parsing to better allow white spaces and more.
11830
11831 - Rodney Simmons proved the fix I did yesterday was bad and I had to post
11832   another one.
11833
11834 - Ingo Wilken patched away two redirect problems more!
11835   
11836 Daniel (10 May 2001)
11837 - Cris Bailiff correctly noted that the space-after-header problem with
11838   Location: is present on several other places in the libcurl sources.
11839
11840 - Ingo Wilken patched away a problem libcurl had when following Location:
11841   headers with an extra space after the colon.
11842
11843 - Rodney Simmons found out that multiple FTP transfers did not treat relative
11844   directories correctly.
11845
11846 Daniel (9 May 2001)
11847 - Getting an FTP file with CURLOPT_NOBODY set (or -I from the command line),
11848   makes curl use the non-standard ftp command "SIZE". If it failed, libcurl
11849   returned error. Starting now, it just don't output the file size instead.
11850   Anonymous bug report.
11851
11852 - stunnel.pm was accidentally left out from the release archive, it is now
11853   added (stunnel is needed to run the https-tests in the test suite)
11854   
11855 Daniel (7 May 2001)
11856 - Corrected two minor compiler warnings due to the FILE * to void * conversion
11857   that I missed at two places. Jörn Hartroth brought me patches. Sander Gates
11858   filed a bug report on this.
11859
11860 Version 7.7.3
11861
11862 Daniel (4 May 2001)
11863 - All callback functions now take 'void *' instead of 'FILE *'. This is made
11864   this way to make it more obvious to people that anything can be passed to
11865   them (by using the apropriate option). After discussions with Sterling
11866   Hughes.
11867
11868 Daniel (3 May 2001)
11869 - Cris Bailiff fixed a chunked transfer encoding problem with persistent
11870   connection that made libcurl fail if the persistent connection used mixed
11871   chunked and non-chunked transfers.
11872
11873 - Cris Bailiff fixed a bad treatment of 304-replies, as they would not be
11874   treated as content-length 0 replies but would cause a "hang" until the
11875   server timed-out and closed the connection.
11876
11877 - Brad Burdick found a minor problem in the docs/examples/Makefile.am
11878
11879 Daniel (27 April 2001)
11880 - Updated the INTERALS document again. It was lagging a bit. I think I made it
11881   more easy to follow now as well.
11882
11883 - Brad Burdick found a problem with persistent connections when curl received
11884   a "Content-Length: 0" header.
11885
11886 - Giuseppe D'Ambrosio was first out to report that TELNET doesn't work in curl
11887   compiled/built on win32. It seems to work for unixes though!
11888
11889 - Dave Hamilton reported weird problems with CURL/PHP that I really can't
11890   explain at the moment. I'm hoping on some help from the PHP crew.
11891
11892 Daniel (26 April 2001)
11893 - I rewrote the FTP command response function. I had to do it to make ftps
11894   work, as the OpenSSL read()-function didn't work the same way the normal
11895   unix read() does, but it was also a huge performance boost. Previously the
11896   function read one byte at a time, now it reads very large chunks, and it
11897   makes a notable speed difference.
11898
11899 Daniel (25 April 2001)
11900 - Connection re-use when not using a proxy didn't work properly for
11901   non-default port numbers.
11902
11903 Daniel (24 April 2001)
11904 - I've noticed that FTPS doesn't work. We attempt to use ssl even for the
11905   data transfer, which causes the transfer to 'hang'... We need to fix this.
11906
11907 - Improved the test suite to use 'stunnel' to do HTTPS and FTPS testing on
11908   the alredy written perl servers easily.
11909
11910 Daniel (23 April 2001)
11911 - The OpenSSL version string recently modified didn't zero terminate one
11912   of the generated strings properly, which could lead to a crash or simply
11913   weird version string output!
11914
11915 Version 7.7.2
11916
11917 Daniel (22 April 2001)
11918 - Rosimildo da Silva updated the Makefiles for Borland/Windows.
11919
11920 - Eric Rautman pointed out a problem with persistent connections that would
11921   lead to broken Host: headers in the second HTTP request.
11922
11923 Daniel (20 April 2001)
11924 - Added man pages for the curl_strequal() and curl_mprintf() families. Wrote
11925   a 'libcurl overview' man page.
11926
11927 - Spell-fixed some documents.
11928
11929 - S. Moonesamy corrected mistakes in the man page.
11930
11931 - Cris Bailiff fixed the curl_slists options in the perl interface, present
11932   separately in the Curl::easy 1.1.4 package.
11933
11934 Daniel (19 April 2001)
11935 - Linus Nielsen Feltzing removed the decimals from the size variables in the
11936   --write-out output. We hardly ever get fraction of bytes! :-)
11937
11938 Version 7.7.2-pre1
11939
11940 Daniel (19 April 2001)
11941
11942 - Albert Chin provided a configure patch for the AC_SYS_LARGEFILE macro.
11943
11944 Daniel (18 April 2001)
11945 - Input from Michael Mealling made me add --feature to curl-config. It
11946   displays a list of features that have been built-in in the current
11947   libcurl. The currently available features that can be listed are: SSL, KRB4
11948   and IPv6.
11949
11950 - I committed Cris and Georg's perl interface work. They've got callbacks
11951   working and options that receives those slist pointers.
11952
11953 - Puneet Pawaia detected a problem with resumed downloads that use persistent
11954   connections and I made a rather large writeup to correct this. It is
11955   important that all session-data is stored in the connectdata struct and not
11956   in the main struct as this previously did.
11957
11958 Daniel (17 April 2001)
11959 - Frederic Lepied fixed a ftp resumed download problem and introduced a new
11960   error code that lets applications be able to detect when a resumed download
11961   actually didn't download anything since the whole file is already present.
11962   Should this return OK instead?
11963
11964 - I added 'curl-config.in' to the root dir and configure script. Now, a
11965   curl-config script is made when curl is built. The script can be used to
11966   figure out compile time options used when libcurl was built, which in turn
11967   should be options YOU should use to build applications that use libcurl.
11968
11969   This *-config style is not a new idea, but something that has been used
11970   successfully in other (library based) projects.
11971
11972 - Phil Karn pointed out that libcurl wrongly did not always use GMT time zone
11973   for the If-Modified-Since style headers.
11974
11975 - Georg Schwarz pointed out an extra needed #include file needed in src/main.c
11976   for curl to build on Ultrix.
11977
11978 Daniel (11 April 2001)
11979 - Cris Bailiff pointed out two problems that I corrected. First, libcurl's use
11980   of the environment variable HTTP_PROXY in uppercase may become a security
11981   hazard when people use libcurl in a server/cgi situation where the server
11982   sets the HTTP_*-variables according to incoming headers in the HTTP
11983   request. Thus, a "Proxy:"-header would set that environment variable!
11984
11985   Then, invoking curl_easy_perform() without having an URL set caused a crash.
11986
11987 - S. Moonesamy brought a patch that make curl use non-blocking connects on
11988   windows when connection timeout is set, as it allows windows users to set
11989   that timeout!
11990
11991 - Hirotaka Matsuyuki wrote a Ruby interface to libcurl!
11992
11993 - Cris Bailiff, Forrest Cahoon and Georg Horn work on the Perl interface.
11994
11995 - I've written a first shot at a Java interface to libcurl. Many thanks to
11996   Daniel Marell for tirelessly answering to all my basic Java questions. It
11997   works, but it is still very basic.
11998
11999 Daniel (10 April 2001)
12000 - The progress display could get silly when doing multiple file transfers, as
12001   it wasn't properly reset between transfers!
12002
12003 - Discussions with Cris Bailiff who writes a Perl interface to libcurl, made
12004   me add CURLOPT_HEADERFUNCTION. It can be used to set a separate callback
12005   function for writing headers. Previously you could only set a different FILE
12006   * when headers are written from within libcurl.
12007
12008 Daniel (7 April 2001)
12009 - Andrés García fixed a problem in curl_escape() and pointed out a flaw in
12010   the curl_easy_setopt man page.
12011
12012 Daniel (6 April 2001)
12013 - Adjusted the version code to properly display OpenSSL 0.9.6a. They sure
12014   change their version define format often...
12015
12016 - curl_formfree() now accepts a NULL pointer without crashing!
12017
12018 Version 7.7.1
12019
12020 Daniel (3 April 2001)
12021 - Puneet Pawaia pointed out two serious problems. Libcurl would attempt to
12022   read bad memory during situations when an (ftp) connection attempt failed.
12023   Also, the lib/Makefile.vc6 was corrected.
12024
12025 - More investigations in the Location: following code made me realize that
12026   it was not clean enough to work transparantly with persistent and non-
12027   persistent connections. I think I've fixed it now.
12028
12029 Daniel (29 March 2001)
12030 - Georg Horn mailed me some corrections for the Curl::easy perl interface.
12031
12032 - Experimental ftps:// support added. It is basically FTP over SSL for the
12033   control connection. It still makes all data transfers going over unencrypted
12034   connections. Rainer Weikusat's ftpd-ssl server hack supports this and I used
12035   that to verify the functionality.
12036
12037 Daniel (27 March 2001)
12038 - Guenole Bescon discovered that if you set a CURLOPT_TIMEOUT and then tried
12039   to get a file from a site and it fails, the SIGALRM would still be sent
12040   after the timeout-time, quite inexpectedly!
12041
12042 - I added an ftp transfer example to docs/examples/ and I also wrote a tiny
12043   example makefile that can be used as a start when building one of the
12044   examples.
12045
12046 Version 7.7.1-beta1
12047
12048 Daniel (26 March 2001)
12049 - Mohamed Lrhazi reported problems with 7.6.1 and persistent HTTP/1.0
12050   connections (when the server replied a Connection: Keep-Alive) and this
12051   problem was not properly dealt with in 7.7 either. A patch was posted to the
12052   curl-and-php mailing list.
12053
12054 Daniel (24 March 2001)
12055 - Colin Watson reported about a problem and brought a patch that corrected it,
12056   which was about the man page and lines starting with a single quote (') in a
12057   way that gnroff doesn't like.
12058
12059 Daniel (23 March 2001)
12060 - Peter Bray reported correctly that the root makefile used make instead of
12061   $(MAKE) for the test target.
12062
12063 - Corrected the Curl::easy perl interface to use curl_easy_setopt() and not
12064   curl_setopt() which was removed in 7.7!
12065
12066 - S. Moonesamy provided updates on three documents (MANUAL, INSTALL and FAQ).
12067
12068 - When following a Location:, libcurl would sometimes write to the URL string
12069   in a way it shouldn't. As the pointer is passed-in to libcurl from an
12070   application, we can't be allowed to write to it. The particular bug report
12071   from 'nk' that brought this up was because he had a read-only URL that then
12072   caused a libcurl crash!
12073
12074 - No longer reads HEAD responses longer than to the last header. Previously,
12075   curl would read the full reply if the connection was a "close" one.
12076
12077 - libcurl did re-use connections way too much. Doing "curl
12078   http://www.{microsoft,ibm}.com" would make it re-use the connection which
12079   made the second request return very odd results.
12080
12081 Daniel (22 March 2001)
12082 - Edin Kadribasic made me aware that curl should not re-send POST requests
12083   when following 302-redirects. I made 302 work like 303 which means curl uses
12084   GET in the following request(s).
12085
12086 - libcurl now reset the "followed-location" counter on each invoke of
12087   curl_easy_perform() as it otherwise would sum up all redirects on the same
12088   connection and thus could reach the maxredirs counter wrongly.
12089
12090 - Jim Drash suggested curl_escape() should not re-encode what already looks
12091   like an encoded sequence and I think that's a fair suggestion.
12092
12093 Version 7.7
12094
12095 Daniel (22 March 2001)
12096 - The configure script now fails with an error message if gethostbyname_r() is
12097   detected but it couldn't figure out how to invoke it (what amount of
12098   arguments it is supposed to get). Reports from Andrés García made me aware
12099   of this need.
12100
12101 - Talking with Jim Drash made me finally put the curl_escape and curl_unescape
12102   functions in the curl.h include file and write man pages for them. The
12103   escape function was modified to use the same interface as the unescape one
12104   had.
12105
12106 - No bug reports at all on the latest betas. Release time coming up.
12107
12108 Version 7.7-beta5
12109
12110 Daniel (19 March 2001)
12111 - Georg Ottinger reported problems with using -C together with -L in the sense
12112   that the -C info got lost when it was redirected. I could not repeat this
12113   problem on the 7.7 branch why I leave this for the moment. Test case 39 was
12114   added to do exactly this, and it seems to do right.
12115
12116 - Christian Robottom Reis reported how his 7.7 beta didn't successfully do
12117   form posts as elegantly as 7.6.1 did. Indeed, this was a flaw in the header
12118   engine, as HTTP 1.1 has introduced a new 100 "transient" return code for PUT
12119   and POST operations that I need to add support for. Section 8.2.3 in RFC2616
12120   has all the details. Seems to work now!
12121
12122 Daniel (16 March 2001)
12123 - After having experienced another machine break-down, we're back.
12124
12125 - Georg Horn's perl interface Curl::easy is now included in the curl release
12126   archive. The perl/ directory is now present. Please help me with docs,
12127   examples and updates you think fit.
12128
12129 - Made a new php/ directory in the release archive and moved the PHP examples
12130   into a subdirectory in there. Not much PHP info yet, but I plan to. Please
12131   help me here as well!
12132
12133 - Made libcurl return error if a transfer is aborted in the middle of a
12134   "chunk". It actually enables libcurl to discover premature transfer aborts
12135   even if the Content-Length: size is unknown.
12136
12137 Daniel (15 March 2001)
12138 - Added --connect-timeout to curl, which sets the new CURLOPT_CONNECTTIMEOUT
12139   option in libcurl. It limits the time curl is allowed to spend in the
12140   connection phase. This differs from -m/--max-time that limits the entire
12141   file transfer operation. Requested by Larry Fahnoe and others.
12142
12143   I also updated the curl.1 and curl_easy_setopt.3 man pages and removed the
12144   item from the TODO.
12145
12146 Version 7.7-beta4
12147
12148 Daniel (14 March 2001)
12149 - Made curl grok IPv6 with HTTP proxies and got everything to compile nicely
12150   again when ENABLE_IPV6 is set.
12151
12152   I need to remake things in the test suite. I can't test the FTP parts with
12153   curl built for IPv6 as it uses a different set of FTP commands then!
12154
12155 - I fell onto a bug report on php.net (posted by Lars Torben Wilson) that was
12156   a report meant for our project. Anyway, it said the .netrc parsing didn't
12157   work as supposed, and as I agreed with Lars, I made the netrc parser use
12158   getpwuid() to figure out the home directory of the effective user and try
12159   that netrc. It still uses the environment variable HOME for those that don't
12160   have that function or if the user doesn't return valid pwd info.
12161
12162 - Edin Kadribaic posted a bug report where he got a crash when a fetch with
12163   user+password in the URL followed a Location: to a second URL (absolute,
12164   without name+password). This bug has been around for a long while and
12165   crashes due to a read at address zero. Fixed now. Wrote test case 38, that
12166   tests this.
12167
12168 - Modified the test suite's httpserver slightly to append all client request
12169   data to its log file so that the test script now better can verify a range
12170   of requests and not only the last one, as it did previously.
12171
12172 - Updated the curl man page with --random-file and --egd-file details.
12173
12174 Version 7.7-beta3
12175
12176 Daniel (14 March 2001)
12177 - Björn Stenberg provided similar fixes as Jörn did and some additional patches
12178   for non-SSL compiles.
12179
12180 - I increased the interface number for libcurl as I've removed the low level
12181   functions from the interface. I also took this opportunity to rename the
12182   Curl_strequal function to curl_strequal and Curl_strnequal to
12183   curl_strnequal, as they're public libcurl functions (even if they're still
12184   undocumented).
12185
12186   This will make older programs not capable of using the new libcurl with
12187   just a drop-in replacement.
12188
12189 - Jörn Hartroth updated stuff for win32 compiles:
12190   o config-win32.h was fixed for socklen_t
12191   o lib/ssluse.c had a bad #endif placement
12192   o lib/file.c was made to compile on win32 again
12193   o lib/Makefile.m32 was updated with the new files
12194   o lib/libcurl.def matches the current interface state
12195
12196 Daniel (13 March 2001)
12197 - It only took an hour or so before Jörn Hartroth found a problem in the
12198   chunked transfer-encoding. Given his fine example-site, I could easily spot
12199   the problem and when I re-read the spec (the part I have pasted in the top
12200   of the http_chunks.h file), I realized I had made my state-machine slightly
12201   wrong and didn't expect/handle the trailing CRLF that comes after the data
12202   in each chunk (and those extra two bytes sure feel wasted).
12203
12204   Had to modify test case 34 to match this as well.
12205
12206 Version 7.7-beta2
12207
12208 Daniel (13 March 2001)
12209 - Added the policy stuff to the curl_easy_setopt man page for the two supported
12210   policies.
12211
12212 - Implemented some support for the CURLOPT_CLOSEPOLICY option. The policies
12213   CURLCLOSEPOLICY_LEAST_RECENTLY_USED and CURLCLOSEPOLICY_OLDEST are now
12214   supported, and the "least recently used" is used as default if no policy
12215   is chosen.
12216
12217 Daniel (12 March 2001)
12218 - Added CURLOPT_RANDOM_FILE and CURLOPT_EGDSOCKET to libcurl for seeding the
12219   SSL random engine. The random seeding support was also brought to the curl
12220   client with the new options --random-file <file> and --egd-file <file>. I
12221   need some people to really test this to know they work as supposed. Remember
12222   that libcurl now informs (if verbose is on) if the random seed is considered
12223   weak (HTTPS connections).
12224
12225 - Made the chunked transfer-encoding engine detected bad formatted data length
12226   and return error if so (we can't possibly extract sensible data if this is
12227   the case). Added a test case that detects this. Number 36. Now there are 60
12228   test cases.
12229
12230 - Added 5 new libcurl options to curl/curl.h that can be used to control the
12231   persistent connection support in libcurl. They're also documented (fairly
12232   thoroughly) in the curl_easy_setopt.3 man page. Three of them are now
12233   implemented, although not really tested at this point... Anyway, the new
12234   implemented options are named CURLOPT_MAXCONNECTS, CURLOPT_FRESH_CONNECT,
12235   CURLOPT_FORBID_REUSE. The ones still left to write code for are:
12236   CURLOPT_CLOSEPOLICY and its related option CURLOPT_CLOSEFUNCTION.
12237
12238 - Made curl (the actual command line tool) use the new libcurl 7.7 persistent
12239   connection support by re-using the same curl handle for every specified file
12240   transfer and after some more test case tweaking we have 100% test case OK.
12241   I made some test cases return HTTP/1.0 now to make sure that works as well.
12242
12243 - Had to add 'Connection: close' to the headers of a bunch of test cases so
12244   that curl behaves "old-style" since the test http server doesn't do multiple
12245   connections... Now I get 100% test case OK.
12246
12247 - The curl.haxx.se site, the main curl mailing list and my personal email are
12248   all dead today due to power blackout in the area where the main servers are
12249   located. Horrible.
12250
12251 - I've made persistance work over a squid HTTP proxy. I find it disturbing
12252   that it uses headers that aren't present in any HTTP standard though
12253   (Proxy-Connection:) and that makes me feel that I'm now on the edge of what
12254   the standard actually defines. I need to get this code excercised on a lot
12255   of different HTTP proxies before I feel safe.
12256
12257   Now I'm facing the problem with my test suite servers (both FTP and HTTP)
12258   not supporting persistent connections and libcurl is doing them now. I have
12259   to fix the test servers to get all the test cases do OK.
12260
12261 Daniel (8 March 2001)
12262 - Guenole Bescon reported that libcurl did output errors to stderr even if
12263   MUTE and NOPROGRESS was set. It turned out to be a bug and happens if
12264   there's an error and no ERRORBUFFER is set. This is now corrected.
12265
12266 Version 7.7-beta1
12267
12268 Daniel (8 March 2001)
12269 - "Transfer-Encoding: chunked" is no longer any trouble for libcurl. I've
12270   added two source files and I've run some test downloads that look fine.
12271
12272 - HTTP HEAD works too, even on 1.1 servers.
12273
12274 Daniel (5 March 2001)
12275 - The current 57 test cases now pass OK. It would suggest that libcurl works
12276   using the old-style with one connection per handle. The test suite doesn't
12277   handle multiple connections yet so there are no test cases for this.
12278
12279 - I patched the telnet.c heavily to not use any global variables anymore. It
12280   should make it a lot nicer library-wise.
12281
12282 - The file:// support was modified slightly to use the internal connect-first-
12283   then-do approach.
12284
12285 Daniel (4 March 2001)
12286 - More bugs erased.
12287
12288 Version 7.7-alpha2
12289
12290 Daniel (4 March 2001)
12291 - Now, there's even a basic check that a re-used connection is still alive
12292   before it is assumed so. A few first tests have proven that libcurl will
12293   then re-connect instead of re-use the dead connection!
12294
12295 Daniel (2 March 2001)
12296 - Now they work intermixed as well. Major coolness!
12297
12298 - More fiddling around, my 'tiny' client I have for testing purposes now has
12299   proved to download both FTP and HTTP with persistent connections. They do
12300   not work intermixed yet though.
12301
12302 Daniel (1 March 2001)
12303 - Wilfredo Sanchez pointed out a minor spelling mistake in a man page and that
12304   curl_slist_append() should take a const char * as second argument. It does
12305   now.
12306
12307 Daniel (22 February 2001)
12308 - The persistent connections start to look good for HTTP. On a subsequent
12309   request, it seems that libcurl now can pick an already existing connection
12310   if a suitable one exists, or it opens a new one.
12311
12312 - Douglas R. Horner mailed me corrections to the curl_formparse() man page
12313   that I applied.
12314
12315 Daniel (20 February 2001)
12316 - Added the docs/examples/win32sockets.c file for our windows friends.
12317
12318 - Linus Nielsen Feltzing provided brand new TELNET functionality and
12319   improvements:
12320
12321   * Negotiation is now passive. Curl does not negotiate until the peer does.
12322   * Possibility to set negotiation options on the command line, currently only
12323     XDISPLOC, TTYPE and NEW_ENVIRON (called NEW_ENV).
12324   * Now sends the USER environment variable if the -u switch is used.
12325   * Use -t to set telnet options (Linus even updated the man page, awesome!)
12326
12327 - Haven't done this big changes to curl for a while. Moved around a lot of
12328   struct fields and stuff to make multiple connections get connection specific
12329   data in separate structs so that they can co-exist in a nice way. See the
12330   mailing lists for discussions around how this is gonna be implemented. Docs
12331   and more will follow.
12332
12333   Studied the HTTP RFC to find out better how persistent connections should
12334   work. Seems cool enough.
12335
12336 Daniel (19 February 2001)
12337 - Bob Schader brought me two files that help set up a MS VC++ libcurl project
12338   easier. He also provided me with an up-to-date libcurl.def file.
12339
12340 - I moved a bunch of prototypes from the public <curl/curl.h> file to the
12341   library private urldata.h. This is because of the upcoming changes. The
12342   low level interface is no longer being planned to become reality.
12343
12344 Daniel (15 February 2001)
12345 - CURLOPT_POST is not required anymore. Just setting the POST string with
12346   CURLOPT_POSTFIELDS will switch on the HTTP POST. Most other things in
12347   libcurl already works this way, i.e they require only the parameter to
12348   switch on a feature so I think this works well with the rest. Setting a NULL
12349   string switches off the POST again.
12350
12351 - Excellent suggestions from Rich Gray, Rick Jones, Johan Nilsson and Bjorn
12352   Reese helped me define a way how to incorporate persistent connections into
12353   libcurl in a very smooth way. If done right, no change may have to be made
12354   to older programs and they will just start using persistent connections when
12355   applicable!
12356
12357 Daniel (13 February 2001)
12358 - Changed the word 'timeouted' to 'timed out' in two different error messages.
12359   Suggested by Larry Fahnoe.
12360
12361 Version 7.6.1
12362
12363 Daniel (9 February 2001)
12364 - Frank Reid and Cain Hopwood provided information and research around a HTTPS
12365   PUT/upload problem we seem to have. No solution found yet.
12366
12367 Daniel (8 February 2001)
12368 - An interesting discussion is how to specify an empty password without having
12369   curl ask for it interactively? The current implmentation takes an empty
12370   password as a request for a password prompt. However, I still want to
12371   support a blank user field. Thus, today if you enter "-u :" (without user
12372   and password) curl will prompt for the password. Tricky. How would you
12373   specify you want the prompt otherwise?
12374
12375 - Made the netrc parse result possible to use for other protocols than FTP and
12376   HTTP (such as the upcoming TELNET fixes).
12377
12378 - The previously mentioned "MSVC++ problems" turned out to be a non-issue.
12379
12380 - Added a HTTP file upload code example in the docs/examples/ section on
12381   request.
12382
12383 - Adjusted the FTP response fix slightly.
12384
12385 Version 7.6.1-pre3
12386
12387 Daniel (7 February 2001)
12388 - S. Moonesamy found a flaw in the response reading function for FTP that
12389   could make libcurl not get out of the loop properly when it should, if
12390   libcurl got -1 returned when reading the socket.
12391
12392 - I found a similar mistake in http.c when using a proxy and reading the
12393   results from the proxy connection.
12394
12395 Daniel (6 February 2001)
12396 - S. Moonesamy pointed out that the VC makefile in src/ needed the libpath set
12397   for the debug build to work.
12398
12399 - Daniel Gehriger stepped in to assist with the VC++ stuff Robert Weaver
12400   brought up yesterday.
12401
12402 Daniel (5 February 2001)
12403 - Jun-ichiro itojun Hagino brought a big patch that brings IPv6-awareness to
12404   a bunch of different areas within libcurl.
12405
12406 - Robert Weaver told me about the problems the MS VC++ 6.0 compiler has with
12407   the 'static' keyword on a number of libcurl functions. I might need to add a
12408   patch that redefines static when libcurl is compiled with that compiler.
12409   How do I know when VC++ compiles, anyone?
12410
12411 Daniel (4 February 2001)
12412 - curl_getinfo() was extended with two new options:
12413   CURLINFO_CONTENT_LENGTH_DOWNLOAD and CURLINFO_CONTENT_LENGTH_UPLOAD. They
12414   return the full assumed content length of the transfer in the given
12415   direction. The CURLINFO_CONTENT_LENGTH_DOWNLOAD will be the Content-Length:
12416   size of a HTTP download. Added descriptions to the man page as well. This
12417   was done after discussions with Bob Schader.
12418
12419 Daniel (3 February 2001)
12420 - Ingo Ralf Blum provided another fix that makes curl build under the more
12421   recent cygwin installations. It seems they've changed the preset defines to
12422   not include WIN32 anymore.
12423
12424 Version 7.6.1-pre2
12425
12426 Daniel (31 January 2001)
12427 - Curl_read() and curl_read() now return a ssize_t for the size, as it had to
12428   be able to return -1. The telnet support crashed due to this and there was a
12429   possibility to weird behavior all over. Linus Nielsen Feltzing helped me
12430   find this.
12431
12432 - Added a configure.in check for a working getaddrinfo() if IPv6 is requested.
12433   I also made the configure script feature --enable-debug which sets a couple
12434   of compiler options when used. It assumes gcc.
12435
12436 Daniel (30 January 2001)
12437 - I finally took a stab at the long-term FIXME item I've had on myself, and
12438   now libcurl will properly work when doing a HTTP range-request that follows
12439   a Location:. Previously that would make libcurl fail saying that the server
12440   doesn't seem to support range requests.
12441
12442 Daniel (29 January 2001)
12443 - I added a test case for the HTTP PUT resume thing (test case 33).
12444
12445 Version 7.6.1-pre1
12446
12447 Daniel (29 January 2001)
12448 - Yet another Content-Range change. Ok now? Bob Schader checks from his end 
12449   and it works for him.
12450
12451 Daniel (27 January 2001)
12452 - So the HTTP PUT resume fix wasn't good. There should appearantly be a
12453   Content-Range header when resuming a PUT.
12454
12455 - I noticed I broke the download-check that verifies that a resumed HTTP
12456   download is actually resumed. It got broke because my new 'httpreq' field
12457   in the main curl struct. I should get slapped. I added a test case for
12458   this now, so I won't be able to ruin this again without noticing.
12459
12460 - Added a test case for content-length verifying when downloading HTTP.
12461
12462 - Made the progress meter title say if the transfer is being transfered. It
12463   makes the output slightly better for resumes.
12464
12465 - When dealing with Location: and HTTP return codes, libcurl will not attempt
12466   to follow the spirit of RFC2616 better. It means that when POSTing to a
12467   URL that is being following to a second place, the standard will judge on
12468   what to do. All HTTP codes except 303 and 305 will cause curl to make a
12469   second POST operation. 303 will make a GET and 305 is not yet supported.
12470
12471   I also wrote two test cases for this POST/GET/Location stuff.
12472
12473 Version 7.6
12474
12475 Daniel (26 January 2001)
12476 - Lots of mails back and forth with Bob Schader finally made me add a small
12477   piece of code in the HTTP engine so that HTTP upload resume works. You can
12478   now do an operation like 'curl -T file -C <offset> <URL>' and curl will PUT
12479   the ending part of the file starting at given offet to the specified URL.
12480
12481 Version 7.6-pre4
12482
12483 Daniel (25 January 2001)
12484 - I took hold of Rick Jones' question why we don't use recv() and send() for
12485   reading/writing to the sockets and I've now modified the sread() and
12486   swrite() macros to use them instead. If nothing else, they could be tested
12487   in the next beta-round coming right up.
12488
12489 - Jeff Morrow found a problem with libcurl's usage of SSL_read() and supplied
12490   his research results in how to fix this. It turns out we have to invoke the
12491   function several times in some cases. The same goes for the SSL_write().
12492
12493   I made some rather drastic changes all over libcurl to make all writes and
12494   reads get done on one single place so that this repeated-attempts thing
12495   would only have to be implemented at one point.
12496
12497 - Rick Jones spotted that the 'total time' counter really didn't measure the
12498   total time very accurate on subsecond levels.
12499
12500 - Johan Nilsson pointed out the need to more clearly specify that the timeout
12501   value you set for a download is for the *entire* download. There's currently
12502   no option available that sets a timeout for the connection phase only.
12503
12504 Daniel (24 January 2001)
12505 - Ingo Ralf Blum submitted a series of patches required to get curl to compile
12506   properly with cygwin.
12507
12508 - Robert Weaver posted a fix for the win32 section of the curl_getenv() code
12509   that corrected a potential memory leak.
12510
12511 - Added comments in a few files in a sudden attempt to make the sources more
12512   easy to read and understand!
12513
12514 Daniel (23 January 2001)
12515 - Added simple IPv6 detection in the configure script and made the version
12516   string add 'ipv6' to the enable section in that case. ENABLE_IPV6 will be
12517   set if curl is compiled with IPv6 support enabled.
12518
12519 - Added a parser for IPv6-style specified IP-addresses in a URL. Thus, when
12520   IPv6 gets enabled soon, we can use URLs like '[0::1]:80'...
12521
12522 - Made the URL globbing in the client possible to fail silently if there's an
12523   error in the globbing. It makes it almost intuitive, so when you don't
12524   follow the syntax rules, globbing is simply switched off and the raw string
12525   is used instead.
12526
12527   I still think we'll get problems with IPv6-style IP-addresses when we *want*
12528   globbing on parts of the URL as the initial part of the URL will for sure
12529   seriously confuse the globber.
12530
12531 Daniel (22 January 2001)
12532 - Björn Stenberg supplied a progress meter patch that makes it look better even
12533   during slow starts. Previously it made some silly assumptions...
12534
12535 - Added two FTP tests for -Q and -Q - stuff since it was being discussed on
12536   the mailing list. Had to correct the ftpserver.pl too as it bugged slightly.
12537
12538 Daniel (19 January 2001)
12539 - Made the Location: parsers deal with any-length URLs. Thus I removed the last
12540   code that restricts the length of URLs that curl supports.
12541
12542 - Added a --globoff test case (#28) and it quickly identified a memory problem
12543   in src/main.c that I took care of.
12544
12545 Version 7.6-pre3
12546
12547 Daniel (17 January 2001)
12548 - Made the two former files lib/download.c and lib/highlevel.c become the new
12549   lib/transfer.c which makes more sense. I also did the rename from Transfer()
12550   to Curl_Transfer() in the other source files that use the transfer function
12551   in the spirit of using Curl_ prefix for library-scoped global symbols.
12552
12553 Daniel (11 January 2001)
12554 - Added -g/--globoff that switches OFF the URL globbing and thus enables {}[]
12555   letters to be part of the URL. Do note that RFC2396 section 2.4.3 explicitly
12556   mention these letters to be escaped. This was posted as a feature request by
12557   Jorge Gutierrez and as a bug by Terry.
12558
12559 - Short options to curl that requires parameters can now be specified without
12560   having the option and its parameter space separated. -ofile works as good as
12561   -o file. -m20 is equal to -m 20. Do note that this goes for single-letter
12562   options only, verbose --long-style options still must be separated with
12563   space from their parameters.
12564
12565 Daniel (8 January 2001)
12566 - Francis Dagenais reported that the SCO compiler still fails when compiling
12567   curl due to that getpass_r() prototype. I've now put it around #ifndef
12568   HAVE_GETPASS_R in an attempt to please the SCO systems.
12569
12570 - Made some minor corrections to get the client to cleanup properly and I made
12571   the separator work again when getting multiple globbed URLs to stdout.
12572
12573 - Worked with Loic Dachary to get the make dist and make distcheck work
12574   correctly. The 'maketgz' script is now using the automake generated 'make
12575   dist' when creating release archives. Loic successfully made 'make rpms'
12576   automatically build RPMs!
12577
12578 Loic Dachary (6 January 2001)
12579 - Automated generation of rpm packages, no need to be root.
12580
12581 - make distcheck generates a proper distribution (EXTRA_DIST
12582   in all Makefile.am modified to match FILES).
12583
12584 Daniel (5 January 2001)
12585 - Huge client-side hack: now multiple URLs are supported. Any number of URLs
12586   can be specified on the command line, and they'll all be downloaded. There
12587   must be a corresponding -o or -O for each URL or the data will be written to
12588   stdout. This needs more testing, time to release a 7.6-pre package.
12589
12590 - The krb4 support was broken in the release. Fixed now.
12591
12592 - Huge internal symbol rename operation. All non-static but still lib-internal
12593   symbols should now be prefixed with 'Curl_' to prevent collisions with other
12594   libs. All public symbols should be prefixed with 'curl_' and the rest should
12595   be static and thus invisible to the outside world. I updated the INTERNALS
12596   document to say this as well.
12597
12598 Version 7.5.2
12599
12600 Daniel (4 January 2001)
12601 - As Kevin P Roth suggested, I've added text to the man page for every command
12602   line option and what happens when you specify that option more than
12603   once. That hasn't been exactly crystal clear before.
12604
12605 - Made the configure script possible to run from outside the source-tree. For
12606   odd reasons I can't build curl properly outside though. It has to do with
12607   curl's dependencies on libcurl...
12608
12609 - Cut off all older (dated 1999 and earlier) CHANGES entries from this file.
12610   The older piece is named CHANGES.0 and is added to the CVS repository in
12611   case anyone would need it.
12612
12613 - I added another file 'CVS-INFO' to the CVS. It contains information about
12614   files in the CVS that aren't included in release archives and how to build
12615   curl when you get the sources off CVS.
12616
12617 - Updated CONTRIBUTE and FAQ due to the new license.
12618
12619 Daniel (3 January 2001)
12620 - Renamed README.libcurl to LIBCURL
12621
12622 - Changed headers in all sources files to the new dual license concept of
12623   curl: use the MIT/X derivate license *or* MPL. The LEGAL file was updated
12624   accordingly and the MPL 1.1 and MIT/X derivate licenses are now part of the
12625   release archive.
12626 Daniel (30 December 2000)
12627 - Made all FTP commands get sent with the trailing CRLF in one single write()
12628   as splitting them up seems to confuse at least some firewalls (FW-1 being
12629   one major).
12630
12631 Daniel (19 December 2000)
12632 - Added file desrciptor and FILE handle leak detection to the memdebug system
12633   and thus I found and removed a file descriptor leakage in the ftp parts
12634   that happened when you did PORTed downloads.
12635
12636 - Added an include <stdio.h> in <curl/curl.h> since it uses FILE *.
12637
12638 Daniel (12 December 2000)
12639 - Multiple URL downloads with -O was still bugging. Not anymore I think or
12640   hope, or at least I've tried... :-O
12641
12642 - Francois Petitjean fixed another -O problem
12643
12644 Version 7.5.1
12645
12646 Daniel (11 December 2000)
12647 - Cleaned up a few of the makefiles to use unix-style newlines only. As Kevin
12648   P Roth found out, at least one CVS client behaved wrongly when it found
12649   different newline conventions within the same file.
12650
12651 - Albert Chin-A-Young corrected the LDFLAGS use in the configure script for
12652   the SSL stuff.
12653
12654 Daniel (6 December 2000)
12655 - Massimo Squillace correctly described how libcurl could use session ids when
12656   doing SSL connections.
12657
12658 - James Griffiths found out that curl would crash if the file you specify with
12659   -o is shorter than the URL! This took some hours to fully hunt down, but it
12660   is fixed now.
12661
12662 Daniel (5 December 2000)
12663 - Jaepil Kim sent us makefiles that build curl using the free windows borland
12664   compiler. The root makefile now accepts 'make borland' to build curl with
12665   that compiler.
12666
12667 - Stefan Radman pointed out that the test makefiles didn't use the PERL
12668   variable that the configure scripts figure out. Actually, you still need
12669   perl in the path for the test suite to run ok.
12670
12671 - Rich Gray found numerous portability problems:
12672   * The SCO compiler got an error on the getpass_r() prototype in getpass.h
12673     since the curl one differed from the SCO one
12674   * The HPUX compiler got an error because of how curl did the sigaction
12675     stuff and used a define HPUX doesn't have (or need).
12676   * A few more problems remain to be researched.
12677
12678 - Paul Harrington experienced a core dump using https. Not much details yet.
12679
12680 Daniel (4 December 2000)
12681 - Jörn Hartroth fixed a problem with multiple URLs and -o/-O.
12682
12683 Version 7.5
12684
12685 Daniel (1 December 2000)
12686 - Craig Davison gave us his updates on the VC++ makefiles, so now curl should
12687   build fine with the Microsoft compiler on windows too.
12688
12689 - Fixed the libcurl versioning so that we don't ruin old programs when
12690   releasing new shared library interfaces.
12691
12692 Daniel (30 November 2000)
12693 - Renamed docs/README.curl to docs/MANUAL to better reflect what the document
12694   actually contains.
12695
12696 Daniel (29 November 2000)
12697 - I removed a bunch of '#if 0' sections from the code. They only make things
12698   harder to follow. After all, we do have all older versions in the CVS.
12699
12700 Version 7.5-pre5
12701
12702 Daniel (28 November 2000)
12703 - I filled in more error codes in the man page error code list that had been
12704   lagging.
12705
12706 - James Griffiths mailed me a fine patch that introduces the CURLOPT_MAXREDIRS
12707   libcurl option. When used, it'll prevent location following more than the
12708   set number of times. It is useful to break out of endless redirect-loops.
12709
12710 Daniel (27 November 2000)
12711 - Added two test cases for file://.
12712
12713 Daniel (22 November 2000)
12714 - Added the libcurl CURLOPT_FILETIME setopt, when set it tries to get the
12715   modified time of the remote document. This is a special option since it
12716   involves an extra set of commands on FTP servers. (Using the MDTM command
12717   which is not in the RFC959)
12718
12719   curl_easy_getinfo() got a corresponding CURLINFO_FILETIME to get the time
12720   after a transfer. It'll return a zero if CURLOPT_FILETIME wasn't used or if
12721   the time wasn't possible to get.
12722
12723   --head/-I used on a FTP server will now present a 'Last-Modified:' header
12724   if curl could get the time of the specified file.
12725
12726 - Added the option '--cacert [file]' to curl, which allows a specified PEM
12727   file to be used to verify the peer's certificate when doing HTTPS
12728   connections. This has been requested, rather recently by Hulka Bohuslav but
12729   others have asked for it before as well.
12730
12731 Daniel (21 November 2000)
12732 - Numerous fixes the test suite has brought into the daylight:
12733
12734    * curl_unescape() could return a too long string
12735    * on ftp transfer failures, there could be memory leaks
12736    * ftp CWD could use bad directory names
12737    * memdebug now uses the mprintf() routines for better portability
12738    * free(NULL) removed when doing resumed transfers
12739
12740 - Added a bunch of test cases for FTP.
12741
12742 - General cleanups to make less warnings with gcc -Wall -pedantic.
12743
12744 - I made the tests/ftpserver.pl work with the most commonly used ftp
12745   operations. PORT, PASV, RETR, STOR, LIST, SIZE, USER, PASS all work now. Now
12746   all I have to do is integrate the ftp server doings in the runtests.pl
12747   script so that ftp tests can be run the same way http tests already run.
12748
12749 Daniel (20 November 2000)
12750 - Made libcurl capable of dealing with any-length URLs. The former limit of
12751   4096 bytes was a bit annoying when people wanted to use curl to really make
12752   life tough on a web server. Now, the command line limit is the most annoying
12753   but that can be circumvented by using a config file.
12754
12755   NOTE: there is still a 4096-byte limit on URLs extracted from Location:
12756   headers.
12757
12758 - Corrected the spelling of 'resolve' in two error messages.
12759
12760 - Alexander Kourakos posted a bug report and a patch that corrected it! It
12761   turned out that lynx and wget support lowercase environment variable names
12762   where curl only looked for the uppercase versions. Now curl will use the
12763   lowercase versions if they exist, but if they don't, it'll use the uppercase
12764   versions.
12765
12766 Daniel (17 November 2000)
12767 - curl_formfree() was added. How come no one missed that one before? I ran the
12768   test suite with the malloc debug enabled and got lots of "nice" warnings on
12769   memory leaks. The most serious one was this. There were also leaks in the
12770   cookie handling, and a few errors when curl failed to connect and similar
12771   things. More tests cases were added to cover up and to verify that these
12772   problems have been removed.
12773
12774 - Mucho updated config file parser (I'm dead tired of all the bug reports and
12775   weird behaviour I get on the former one). It works slightly differently now,
12776   although I doubt many people will notice the differences. The main
12777   difference being that if you use options that require parameters, they must
12778   both be specified on the same line. With this new parser, you can also
12779   specify long options without '--' and you may separate options and
12780   parameters with : or =. It makes a config file line could look like:
12781
12782         user-agent = "foobar and something"
12783
12784   Parameters within quotes may contain spaces. Without quotes, they're
12785   expected to be a single non-space word.
12786
12787   Had to patch the command line argument parser a little to make this work.
12788
12789 - Added --url as an option to allow the URL to be specified this way. It makes
12790   way nicer config files. The previous way of specifying URLs in the config
12791   file doesn't work anymore.
12792
12793 Daniel (15 November 2000)
12794 - Using certain characters in usernames or passwords for HTTP authentication
12795   failed. This was due to the mprintf() that had a silly check for letters,
12796   and if they weren't isprint() they weren't outputed "as-is". This caused
12797   passwords and usernames using '§' (for example) to fail.
12798
12799 Version 7.4.2
12800
12801 Daniel (15 November 2000)
12802 - 'tests/runtests.pl' now sorts the test cases properly when 'all' is used.
12803
12804 Daniel (14 November 2000)
12805 - I fell over the draft-ietf-ftpext-mlst-12.txt Internet Draft titled
12806   "Extensions to FTP" that contains a defined way how the ftp command SIZE
12807   could be assumed to work.
12808
12809 - Laurent Papier posted a bug report about using "-C -" and FTP uploading a
12810   file that isn't prsent on the server. The server might then return a 550 and
12811   curl will fail. Should it instead as Laurent Papier suggests, start
12812   uploading from the beginning as a normal upload?
12813
12814 Daniel (13 November 2000)
12815 - Fixed a crash with the followlocation counter.
12816
12817 - While writing test cases for the test suite, I discovered an old limitation
12818   that prevented -o and -T to be used at the same time. I removed this
12819   immediately as this has no relevance in the current libcurl.
12820   
12821 - Chris Faherty fixed a free-twice problem in lib/file.c
12822
12823 - I fixed the perl http server problem in the test suite.
12824
12825 Version 7.4.2 pre4
12826
12827 Daniel (10 November 2000)
12828 - I've (finally) started working on the curl test suite. It is in the new
12829   tests/ directory. It requires sh and perl. There's a TCP server in perl and
12830   most of the other stuff running a pretty simple shell script.
12831
12832   I've only made four test cases so far, but it proves the system can work.
12833
12834 - Laurent Papier noticed that curl didn't set TYPE when doing --head checks
12835   for sizes on FTP servers. Some servers seem to return different sizes
12836   depending on whether ASCII or BINARY is used!
12837
12838 - Laurent Papier detected that if you appended a FTP upload and everything was
12839   already uploaded, curl would hang.
12840
12841 - Angus Mackay's getpass_r() in lib/getpass.c is now compliant with the
12842   getpass_r() function it seems some systems actually have.
12843   
12844 - Venkataramana Mokkapati detected a bug in the cookie parser and corrected
12845   it.  If the cookie was set for the full host name (domain=full.host.com),
12846   the cookie was never sent back because of a faulty length comparison between
12847   the set domain length and the current host name.
12848
12849 Daniel (9 November 2000)
12850 - Added a configure check for gethostbyname in -lsocket (OS/2 seems to need
12851   it). Added a check for RSAglue/rsaref for the cases where libcrypto is found
12852   but libssl isn't. I haven't verified this fix yet though, as I have no
12853   system that requires those libs to build.
12854   
12855 Version 7.4.2 pre3
12856
12857 Daniel (7 November 2000)
12858 - Removed perror() outputs from getpass.c. Angus Mackay also agreed to a
12859   slightly modified license of the getpass.c file as the prototype was changed.
12860
12861 Daniel (6 November 2000)
12862 - Added possibility to set a password callback to use instead of the built-in.
12863   They're controled with curl_easy_setopt() of course, the tags are
12864   CURLOPT_PASSWDFUNCTION and CURLOPT_PASSWDDATA.
12865
12866 - Used T. Bharath's thinking and fixed the timers that showed terribly wrong
12867   times when location: headers were followed.
12868
12869 - Emmanuel Tychon discovered that curl didn't really like user names only in
12870   the URL. I corrected this and I also fixed the since long living problem
12871   with URL encoded user names and passwords in the URLs. They should work now.
12872   
12873 Daniel (2 November 2000)
12874 - When I added --interface, the new error code that was added with it was
12875   inserted in the wrong place and thus all error codes from 35 and upwards got
12876   increased one step. This is now corrected, we're back at the previous
12877   numbers. All new exit codes should be added at the end.
12878
12879 Daniel (1 November 2000)
12880 - Added a check for signal() in the configure script so that if sigaction()
12881   isn't present, we can use signal() instead.
12882
12883 - I'm having a license discussion going on privately. The issue is yet again
12884   GPL-licensed programs that have problems with MPL. I am leaning towards
12885   making a kind of dual-license that will solve this once and for all...
12886
12887 Daniel (31 October 2000)
12888 - Added the packages/ directory. I intend to let this contain some docs and
12889   templates on how to generate custom-format packages for various platforms.
12890   I've now removed the RPM related curl.spec files from the archive root.
12891
12892 Daniel (30 October 2000)
12893 - T. Bharath brought a set of patches that bring new functionality to
12894   curl_easy_getinfo() and curl_easy_setopt(). Now you can request peer
12895   certificate verification with the *setopt() CURLOPT_SSL_VERIFYPEER option
12896   and then use the CURLOPT_CAINFO to set the certificate to verify the remote
12897   peer against. After an such an operation with a verification request, the
12898   *_getinfo() option CURLINFO_SSL_VERIFYRESULT will return information about
12899   whether the verification succeeded or not.  
12900
12901 Daniel (27 October 2000)
12902 - Georg Horn brought us a splendid patch that solves the long-standing
12903   annoying problem with timeouts that made curl exit with silly exit codes
12904   (which as been commented out lately). This solution is sigaction() based and
12905   of course then only works for unixes (and only those unixes that actually
12906   have the sigaction() function).
12907
12908 Daniel (26 October 2000)
12909 - Björn Stenberg supplied a patch that fixed the flaw mentioned by Kevin Roth
12910   that made the password get echoed when prompted for interactively. The
12911   getpass() function (now known as my_getpass()) was also fixed to not use any
12912   static buffers. This also means we cannot use the "standard" getpass()
12913   function even for those systems that have it, since it isn't thread-safe.
12914   
12915 - Kevin Roth found out that if you'd write a config file with '-v url', the
12916   url would not be used as "default URL" as documented, although if you wrote
12917   it 'url -v' it worked! This has been corrected now.
12918
12919 - Kevin Roth's idea of using multiple -d options on the same command line was
12920   just brilliant, and I couldn't really think of any reason why we shouldn't
12921   support it! The append function always append '&' and then the new -d
12922   chunk. This enables constructs like the following:
12923
12924         curl -d name=daniel -d age=unknown foobarsite.com
12925
12926 Daniel (24 October 2000)
12927 - I fixed the lib/memdebug.c source so that it compiles on Linux and other
12928   systems. It will be useful one day when someone else but me wants to run the
12929   memory debugging system.
12930
12931 Daniel (23 October 2000)
12932 - I modified the maketgz and configure scripts, so that the configure script
12933   will fetch the version number from the include/curl/curl.h header files, and
12934   then the maketgz doesn't have to rebuild the configure script when I build
12935   release-archives.
12936
12937 - Björn Stenberg and Linus Nielsen correctly pointed out that curl was silly
12938   enough to not allow @-letters in passwords when they were specified with the
12939   -u or -U flags (CURLOPT_USERPWD and CURLOPT_PROXYUSERPWD). This also
12940   suggests that curl probably should url-decode the password piece of an URL
12941   so that you could pass an encoded @-letter there...
12942   
12943 Daniel (20 October 2000)
12944 - Yet another http server barfed on curl's request that include the port
12945   number in the Host: header always. I now only include the port number if it
12946   isn't the default (80 for HTTP, 443 for HTTPS). www.perl.com turned out to
12947   run one of those nasty servers.
12948
12949 - The PHP4 module for curl had problems with referer that seems to have been
12950   corrected just yesterday. (Sterling Hughes of the PHP team confirmed this)
12951
12952 Daniel (17 October 2000)
12953 - Vladimir Oblomov reported that the -Y and -y options didn't work. They
12954   didn't work for me either. This once again proves we should have that test
12955   suite...
12956   
12957 - I finally changed the error message libcurl returns if you try a https://
12958   URL when the library wasn't build with SSL enabled. It will now return this
12959   error:
12960         "libcurl was built with SSL disabled, https: not supported!"
12961
12962   I really hope it will make it a bit clearer to users where the actual
12963   problem lies.
12964
12965 Version 7.4.1
12966
12967 Daniel (16 October 2000)
12968 - I forgot to remove some of the malloc debug defines from the makefiles in
12969   the release archive (of course).
12970
12971 Version 7.4
12972
12973 Daniel (16 October 2000)
12974 - The buffer overflow mentioned below was posted to bugtraq on Friday 13th.
12975
12976 Daniel (12 October 2000)
12977 - Colin Robert Phipps elegantly corrected a buffer overflow. It could be used
12978   by an evil ftp server to crash curl. I took the opportunity of replacing a
12979   few other sprintf()s into snprintf()s as well.
12980
12981 Daniel (11 October 2000)
12982 - Found some more memory leaks. This new simple memory debugger has turned out
12983   really useful!
12984
12985 Version 7.4 pre6
12986
12987 Daniel (9 October 2000)
12988 - Florian Koenig pointed out that the bool typedef in the curl/curl.h include
12989   file was breaking PHP 4.0.3 compiling. The bool typedef is not used in the
12990   public interface and was wrongly inserted in that header file.
12991
12992 - Jörg Hartroth corrected a minor memory leak in the src/urlglob.c stuff. It
12993   didn't harm anyone since the memory is free()ed on exit anyway.
12994
12995 - Corrected the src/main.c. We use the _MPRINTF_REPLACE #define to use our
12996   libcurl-printf() functions. This gives us snprintf() et al on all
12997   platforms. I converted the allocated useragent string to one that uses a
12998   local buffer.
12999
13000 - I've set an #if 0 section around the Content-Transfer-Encoding header
13001   generated in lib/formdata.c. This will hopefully make curl do more
13002   PHP-friendly multi-part posts.
13003
13004 Version 7.4 pre5
13005
13006 Daniel (9 October 2000)
13007 - Nico Baggus found out that curl's ability to force a ASCII download when
13008   using FTP was no longer working! I corrected this. This problem was probably
13009   introduced when I redesigned libcurl for version 7.
13010
13011 - Georg Horn provided a source example that proved a memory leak in libcurl.
13012   I added simple memory debugging facilities and now we can make libcurl log
13013   all memory fiddling functions. An additional perl script is used to analyze
13014   the output logfile and to match malloc()s with free()s etc. The memory leak
13015   Georg found turned out to be the main cookie struct that cookie_cleanup()
13016   didn't free! The perl script is named memanalyze.pl and it is available in
13017   the CVS respository, not in the release archive.
13018
13019 Daniel (8 October 2000)
13020 - Georg Horn found a GetHost() problem. It turned out it never assigned the
13021   pointer in the third argument properly! This could make a crash, or at best
13022   a memory leak!
13023
13024 Version 7.4 pre4
13025
13026 Daniel (6 October 2000)
13027 - Is the -F post following the RFC 1867 spec? We had this dicussion on the
13028   mailing list since it appears curl can't post -F form posts to a PHP
13029   receiver... I've been in touch with the PHP developers about this.
13030
13031 - Domenico Andreoli found out that the long option '--proxy' wasn't working
13032   anymore! The option parser got confused when I added the --proxytunnel for
13033   7.3. This was indeed a very old flaw that hasn't turned up until now...
13034
13035 - Jörn Hartroth provided patches, updated makefiles and two new files for DLL
13036   stuff on win32. He also pointed out that lib source files were compiled with
13037   -I../src which isn't only wrong but plain stupid!
13038
13039 - Troels Walsted Hansen fixed a problem with HTTP resume. Curl previously used
13040   a local variable badly, that could lead to crashes.
13041
13042 Version 7.4 pre3
13043
13044 Daniel (4 October 2000)
13045 - More docs written. The curl_easy_getinfo.3 man page is now pretty accurate,
13046   as is the -w section in curl.1. I added two options to enable the user to
13047   get information about the received headers' size and the size of the HTTP
13048   request. T. Bharath requested them.
13049   
13050 Daniel (3 October 2000)
13051 - Corrected a sever free() before use in the new add_buffer_send()! ;-)
13052
13053 Version 7.4 pre2
13054
13055 Daniel (3 October 2000)
13056 - Jason S. Priebe sent me patches that changed the way curl issues HTTP
13057   requests. The entire request is now issued in one single shot. It didn't do
13058   this previously, and it has turned out that since the common browsers do it
13059   this way, some sites have turned out to work with browsers but not with
13060   curl! Although this is not a client-side problem, we want to be able to
13061   fully emulate browsers, and thus we have now adjusted the networking layer
13062   to slightly more appear as a browser. I adjusted Jason's patch, the faults
13063   are probably mine.
13064
13065 Daniel (2 October 2000)
13066 - Anyone who ever uploaded data with curl on a slow link has noticed that the
13067   progess meter is updated very infrequently. That is due to the large buffer
13068   size curl is using. It reads 50Kb and sends it, updates the progress meter
13069   and loops. 50Kb is very much on a slow link, although it is pretty neat to
13070   use on a fast one.
13071
13072   I've now made an adjustment that makes curl use a 2Kb buffer for uploads to
13073   start with. If curl's average upload speed is faster than buffer size bytes
13074   per second, curl will increase the used buffer size up to max 50Kb. It
13075   should make the progress meter work better.
13076   
13077 Version 7.4 pre1
13078
13079 Daniel (29 September 2000)
13080 - Ripped out the -w stuff from the library and put in the curl tool. It gets
13081   all the relevant info from the library using the new curl_easy_getinfo()
13082   function.
13083
13084 - brad at openbsd.org mailed me a patch that corrected my kerberos mistake and
13085   removed a compiler warning from hostip.c that OpenBSD people get.
13086
13087 Daniel (28 September 2000)
13088 - Of course (I should probably get punished somehow) I didn't properly correct
13089   the #include lines for the base64 stuff in the kerberos sources in the just
13090   released 7.3 package. They still include the *_krb.h files! Now, the error
13091   is sooo very easy to spot and fix so I won't bother with a quick bug fix
13092   release. I'll post a patch whenever one is needed instead. It'll be
13093   available in the CVS in a few minutes anyway.
13094
13095 Version 7.3
13096
13097 Daniel (28 September 2000)
13098 - Removed the base64_krb.[ch] files. They've now replaced the former
13099   base64.[ch] files.
13100
13101 Daniel (26 September 2000)
13102 - Updated some docs.
13103
13104 - I changed the OpenSSL fix to work with older versions as well. The posted
13105   patch was only working with 0.9.6 and no older ones.
13106   
13107 Version 7.3-pre8
13108
13109 Daniel (25 September 2000)
13110 - Erdmut Pfeifer informed us that curl didn't build with OpenSSL 0.9.6 and
13111   showed us what needed to get patched in order to make it build properly
13112   again.
13113
13114 - Dirk Kruschewski found a bug in the cookie parser. I made an alternative
13115   approach to the solution Dirk himself suggested. The bug made a cookie
13116   header that didn't end with a trailing semicolon to not get parsed.
13117
13118 - I've marked -c and -t deprecated now. If you use any of them, curl will tell
13119   you to use "-C -" or "-T -" instead. I don't think occupying two letters for
13120   nearly identical functions is good use. Also, -T - kind of follows the curl
13121   tradition of using - for stdin where a file name is expected.
13122
13123 Daniel (23 September 2000)
13124 - Martin Hedenfalk provided the patch that finally made the krb4 ftp upload
13125   work!
13126
13127 Daniel (21 September 2000)
13128 - The kerberos code is not quite thread-safe yet. There are a few more globals
13129   that need to be take care of. Let's get the upload working first!
13130
13131 Daniel (20 September 2000)
13132 - Richard Prescott solved another name lookup buffer size problem. I took this
13133   opportunity to rewrite the GetHost() function. With these large buffer
13134   sizes, I think keeping them as local arrays quickly turn ugly. I now use
13135   malloc() to get the buffer memory. Thanks to this, I now can realloc() to a
13136   large buffer in case of demand (errno == ERANGE) in case a solution like
13137   that would become necessary. I still want to avoid that kind of nastiness.
13138
13139 - Tried to compile and run curl on Linux for alpha and FreeBSD for alpha. Went
13140   as smooth as it could.
13141
13142 - Added a docs/examples directory with two tiny example sources that show how
13143   to use libcurl. I hope users will supply me with more useful examples
13144   further on.
13145
13146 - Applied a patch by Jörn Hartroth to no longer use the word 'inteface' in the
13147   config struct in the src/main.c file since certain compilers have that word
13148   "reservered".  I figure that is some kind of C++ decease.
13149
13150 - Updated the curl.1 man page with --interface and --krb4.
13151
13152 - Modified the base64Encode() function to work like the kerberos one, so that
13153   I could remove the use of that. There is no need for *two* base64 encoding
13154   functions! ;-)
13155
13156 Version 7.3pre5
13157
13158 Daniel (19 September 2000)
13159 - The kerberos4-layer source code that is much "influenced" by the original
13160   krb4 source code, through yafc into curl, was using quite a lot of global
13161   variables. libcurl can't work properly with globals like that why I had to
13162   clean up almost every function in the new security.c to make them use
13163   connection specific variables instead of the globals. I just hope I didn't
13164   destroy anything now... :-) configure updated, version string now reflects
13165   krb4 built-in. It almost works now. Only uploads are still being naughty.
13166
13167 Version 7.3pre3
13168
13169 Daniel (18 September 2000)
13170 - Martin Hedenfalk supplied a major patch that introduces krb4-ftp support to
13171   curl. Martin is the primary author of the ftp client named yafc and he did
13172   not hesitate to help us implement this when I asked him. Many and sincere
13173   thanks to a splendid effort. It didn't even take many hours!
13174
13175 - Stephen Kick supplied a big patch that introduces the --interface flag to
13176   the curl tool and CURLOPT_INTERFACE for libcurl. It allows you to specify an
13177   outgoing interface to use for your request. This may not work on all
13178   platforms. This needs testing.
13179
13180 - Richard Prescott noticed that curl on Tru64 unix could core dumped if the
13181   name didn't resolve properly. This was due to the GetHost() function not
13182   returning an error even though it failed on some platforms!
13183
13184 Daniel (15 September 2000)
13185 - Updated all sorts of documents in regards to the new proxytunnel support.
13186
13187 Version 7.3pre2
13188
13189 Daniel (15 September 2000)
13190 - Kai-Uwe Rommel pointed out a problem in the httpproxytunnel stuff for ftp.
13191   Adjusted it. Added better info message when setting up the tunnel and the
13192   pasv message when doing the second connect.
13193   
13194 Version 7.3pre1
13195
13196 Daniel (15 September 2000)
13197 - libcurl now allows "httpproxytunnel" to an arbitrary host and port name. The
13198   second connection on ftp needed that.
13199
13200 - TheArtOfHTTPScripting was corrected all over. I both type and spell really
13201   bad at times!
13202   
13203 Daniel (14 September 2000)
13204 - -p/--proxytunnel was added to 'curl'. It uses the new
13205   CURLOPT_HTTPPROXYTUNNEL libcurl option that allows "any" protocol to tunnel
13206   through the specified http proxy. At the moment, this should work with ftp.
13207
13208 Daniel (13 September 2000)
13209 - Jochen Schaeuble found that file:// didn't work as expected. Corrected this
13210   and mailed the patch to the mailing list.
13211
13212 Daniel (7 September 2000)
13213 - I changed the #define T() in curl.h since it turned out it wasn't really
13214   a good symbol to use (when you compiled PHP with curl as a module, that
13215   define collided with some IMAP define or something). This was posted to the
13216   PHP bug tracker.
13217
13218 - I added extern "C" stuff in two header files to better allow libcurl usage
13219   in C++ sorces. Discussions on the libcurl list with Danny Horswell lead to
13220   this.
13221
13222 Version 7.2.1
13223
13224 Daniel (31 August 2000)
13225 - Albert Chin-A-Young fixed the configure script *again* and now it seems to
13226   detect Linux name resolving properly! (heard that before?)
13227
13228 - Troels Walsted Hansen pointed out that downloading a file containing the
13229   letter '+' from an ftp server didn't work. It did work from HTTP though and
13230   the reason was my lame URL decoder.
13231
13232 - I happened to notice that -I didn't at all work on ftp anymore. I corrected
13233   that.
13234
13235 Version 7.2
13236
13237 Daniel (30 August 2000)
13238 - Understanding AIX is a hard task. I believe I'll never figure out why they
13239   solve things so differently from the other unixes. Now, I'm left with the
13240   AIX 4.3 run-time warnings about duplicate symbols that according to this
13241   article (http://www.geocrawler.com/archives/3/405/1999/9/0/2593428/) is a
13242   libtool flaw. I tried the mentioned patch, although that stops the linking
13243   completely.
13244
13245   So, if I select to ignore the ld warnings there are compiler warnings that
13246   fill the screen pretty bad when curl compiles. It turns out that if I want
13247   to '#include <arpa/inet.h>', I can get tid of the warnings by include the
13248   following three include files before that one:
13249
13250         #include <net/if_dl.h>
13251         #include <sys/mbuf.h>
13252         #include <netinet/if_ether.h>
13253
13254   Now, is it really sane to add those include files before arpa/inet.h in all
13255   the source files that include it?
13256
13257   Thanks to Albert Chin-A-Young at thewrittenword.com who gave me the AIX
13258   login to try everything on.
13259
13260 Daniel (24 August 2000)
13261 - Jan Schmidt supplied us a new VC6 makefile for Windows as the previous one
13262   was not up to date but lacked several object files.
13263
13264 - More work on the naming.
13265
13266 - Albert Chin-A-Young provided a configure-check for large file support, as
13267   some systems seem to need that for them to work. Had to change the position
13268   for the config.h include file in every .c file in the libcurl dir...
13269
13270 - As suggested on the mailing list (by Troy Engel), I did use a --data-binary
13271   option instead of the messy way I've left described below. It seems to
13272   work. The libcurl fix remained the same as yesterday.
13273
13274 Daniel (23 August 2000)
13275 - Back on the -d stripping newlines thing. The 'plain post' thing was added
13276   when I had no thought of that one could actually post binary data with
13277   it. Now, I have to add this functionality in a graceful manner and I think
13278   I've managed to come up with a way: '-d @file;binary' will thus post the
13279   file binary, exactly as its contents are. It is implemented with a new
13280   *setopt() option (CURLOPT_POSTFIELDSIZE) to set the postfield size, since
13281   libcurl can't strlen() the data in these cases.
13282
13283 - Albert Chin-A-Young made some very serious efforts and all the name
13284   resolving problems seem to have been sorted out now on all the platforms
13285   that previously showed them. I'll make another release now anyday because of
13286   this.
13287
13288 - The FAQ was much enhanced when it comes to the licensing issues thanks to
13289   Bjorn Reese.
13290
13291 Daniel (21 August 2000)
13292 - Rick Welykochy pointed out a problem when you use -d to post and you want to
13293   keep the newlines, as curl strips them off as a bonus before posting...
13294   This needs to be addressed.
13295
13296 Version 7.1.1
13297
13298 Daniel (21 August 2000)
13299 - Got more people involved in the gethostbyname_r() mess. Caolan McNamara sent
13300   me configure-code that turned out to be very similar to my existing tests
13301   which only make me more sure I'm on the right path. I changed the order of
13302   the tests slightly, as it seems that some compilers don't yell error if a
13303   function is used with too many parameters. Thus, the first tested function
13304   will seem ok... Let's hope more compilers think of too-few parameters as bad
13305   manners, as we're now trying the functions in that order; fewer first. I
13306   should also add that Lars Hecking mailed me and volunteered to run tests on
13307   a few odd systems. Coalan is keeping his work over at
13308   http://www.csn.ul.ie/~caolan/publink/gethostbyname_r/. Might be handy in the
13309   future as well.
13310
13311 Daniel (18 August 2000)
13312 - I noticed I hadn't increased the name lookup buffer in lib/ftp.c. I don't
13313   think this is the reason for the continued trouble though.
13314
13315 Daniel (17 August 2000)
13316 - Fred Noz corrected my stupid mistakes in the gethostbyname_r() fluff. It
13317   should affect some AIX, Digital Unix and HPUX 10 systems.
13318
13319 Daniel (15 August 2000)
13320 - Mathieu Legare compiled and build 7.1 without errors on both AIX 4.2 as well
13321   as AIX 4.3. Now why did problems occur before?
13322
13323 - Fred Noz reported a -w/--write-out bug that caused it to malfunction when
13324   used combined with multiple URL retrievales. All but the first display got
13325   screwed up!
13326
13327 Daniel (11 August 2000)
13328 - Jason Priebe and an anonymous friend found some host names the Linux version
13329   of curl could not resolve. It turned out the buffer used to retrieve that
13330   information was too small. Fixed. One could argue about the usefulness of
13331   not having the slightest trace of a man page for gethostbyname_r() on my
13332   Linux Redhat installation...
13333
13334 Daniel (10 August 2000)
13335 - Balaji S Rao was first in line to note the missing possibility to replace
13336   the Content-Type: and Content-Length: headers when doing -d posts. I added
13337   the possibility just now. It seems some people wants to do standard posts
13338   using custom Content-Types.
13339
13340 Daniel (8 August 2000)
13341 - Mike Dowell correctly discovered that curl did not approve of URLs with no
13342   user name but password. As in 'http://:foo@haxx.se'. I corrected this.
13343
13344 Version 7.1
13345
13346 Daniel (7 August 2000)
13347 - My AIX 4 fix does not work. I need help from a AIX 4 hacker.
13348
13349 - I added my new document in the docs directory. It is aimed to become a sort
13350   of tutorial on how to do HTTP scripting with curl.
13351
13352 Daniel (4 August 2000)
13353 - Working with Rich Gray on compiling curl for lots of different platforms.
13354   My fix for AIX 3.2 was not good enough and was slightly changed, I had to
13355   move an include file before another, as is now described in the source.
13356
13357   AIX 4.2 (4.X?) has different gethostbyname_r() and gethostbyaddr_r()
13358   functions that the configure script didn't check for and thus the compile
13359   broke with an error. I have now changed the gethostbyname_r() check in the
13360   configure file to support all three versions of both these functions. My
13361   implementation that uses the AIX-style is though not yet verified and I may
13362   get problems to fix it if it turns out to bug since I don't have access to
13363   any system using that.
13364
13365   For problems like that, I made the configure script allow --disable-thread
13366   to completely switch off the check for threadsafe versions of a few
13367   functions and thus go with the "good old versions" that tend to work
13368   although will break thread-safeness for libcurl. Most people won't use
13369   libcurl for other things than curl though, and curl doesn't need a
13370   thread-safe lib.
13371
13372 - Working on my big tutorial about HTTP scripting with curl.
13373
13374 Daniel (1 August 2000)
13375 - Rich Gray spotted a problem in src/setup.h caused by a #define strequal()
13376   that was just a left-over from passed times. The strequal() is now a true
13377   function supplied by libcurl for a portable case insensitive string
13378   comparison. I added the prototypes in include/curl.h and removed the
13379   now obsolete #define.
13380
13381 - Igor Khristophorov made a fix to allow resumed download from Sun's
13382   JavaWebServer/1.1.1. It seems that their server sends bad Content-Range
13383   headers.
13384
13385 - The makefiles forced a static library build, which is bad since we now use
13386   libtool and thus have excellent shared library support! Albert Chin-A-Young
13387   found out.
13388
13389 Version 7.0.11beta
13390
13391 Daniel (1 August 2000)
13392 - Albert Chin-A-Young pointed out that 'make install' did not properly create
13393   the header include directory, why it failed to install the header files as
13394   it should. Automake isn't really equipped to deal with subdirectories
13395   without Makefiles in any nice way. I had to run ahead and add Makefiles in
13396   both include and include/curl before I managed to create a top-level
13397   makefile that succeeds in install everything properly!
13398
13399 - Ok, no more "features" added now. Let's just verify that there's no major
13400   flaws added now.
13401
13402 Daniel (31 July 2000)
13403 - Both Jeff Schasny and Ketil Froyn asked me how to tell curl not to send one
13404   of those internally generated headers. They didn't settle with the blank
13405   ones you could tell curl to use. I rewrote the header-replace stuff a
13406   little. Now, if you replace an internal header with your own and that new
13407   one is a blank header you will only remove the internal one and not get any
13408   blank. I couldn't figure out any case when you want that blank header.
13409
13410 Daniel (29 July 2000)
13411 - It struck me that the lib used localtime() which is not thread-safe, so now
13412   I use localtime_r() in the systems that has it.
13413
13414 - I went through this entire document and removed all email addresses and left
13415   names only. I've really made an effort to always note who brought be bug
13416   reports or fixes, but more and more people ask me to remove the email
13417   addresses since they become victims for spams this way. Gordon Beaton got me
13418   working on this.
13419
13420 Daniel (27 July 2000)
13421 - Jörn Hartroth found out that when you specified a HTTP proxy in an
13422   environment variable and used -L, curl failed in the second fetch. I
13423   corrected this problem and posted a patch to the list. No need for an extra
13424   beta release just for this.
13425
13426 Version 7.0.10beta
13427
13428 Daniel (27 July 2000)
13429 - So, libtool replaced two of my files with symbolic links and I forgot to add
13430   the two new libtool files to the release archive (and they were added as
13431   symlinks as well!) This of course lead to that the configure script failed
13432   on 7.0.9...
13433
13434 Version 7.0.9beta
13435
13436 Daniel (25 July 2000)
13437 - Kristian Köhntopp <kris at koehntopp.de> brought a fix that makes libcurl
13438   libtoolified, just as we've wanted for a while now. He also made the
13439   recently added man pages get installed properly on 'make install' and some
13440   other nice cleanups.
13441
13442 - In a discussion with Eetu Ojanen it struck me that if we use curl to get a
13443   page using a password, and that page then sends a Location: to another
13444   server that curl follows, curl will send the user name and password to that
13445   server as well.
13446
13447   Now, I'll never be able to make curl do Location: following all that perfect
13448   and you're all sooner or later required to write a script to do several
13449   fetches when you're doing advanced stuff, but now I've modified curl to at
13450   least *only* send the user name and password to the original server. Which
13451   means that if get a page from server A with a password, that forwards curl
13452   to server B, curl won't use the password there. If server B then forwards
13453   curl back to server A again, the password will be used again.
13454
13455   This is not a perfect implementation, as in a browser case it would only use
13456   the password if the left-prefix of the first path is the same. I just think
13457   that this fix prevents a somewhat lurky "security hole".
13458
13459   As a side-note in this subject: HTTP passwords are sent in cleartext and
13460   will never be considered to be safe or secure. Use HTTPS for that.
13461
13462 - As discussed on the mailing list, I converted the FTP response reading
13463   function into using select() which then allows timeouts (even under win32!)
13464   if the command-reply session gets too slow or dies completely. I made a
13465   default timeout on 3600 seconds unless anything else is specified, since I
13466   don't think anyone wants to wait more than that for a single character to
13467   get received...
13468
13469 - Torsten Foertsch <torsten.foertsch at gmx.net> brought a set of fixes for
13470   the rfc1867 form posts. He introduced 'name=<file' which brings a means to
13471   suuply very large text chunks read from the given file name. It differs from
13472   'name=@file' in the way that this latter thing is marked in the uploaded
13473   contents as a file upload, while the first is just text (as in a input or
13474   textarea field). Torsten also corrected a bug that would happen if you used
13475   %s or similar in a -F file name.
13476
13477 - As discovered by Nico Baggus <Nico.Baggus at mail.ing.nl>, when transferring
13478   files to/from FTP using type ASCII curl should not expect the transfer to be
13479   the exact size reported by the server as the file size. Since ASCII may very
13480   well mean that the content is translated while transfered, the final size
13481   may very well differ. Therefor, curl now ignores the file size when doing
13482   ASCII transfers in FTP.
13483
13484 Daniel (24 July 2000)
13485 - Added CURLOPT_PROXYPORT to the curl_easy_setopt() call to allow the proxy
13486   port number to be set separately from the proxy host name.
13487
13488 - Andrew <andrew at ugh.net.au> pointed out a netrc manual bug.
13489
13490 - The FTP transfer code now accepts a 250-code as well as the previously
13491   accepted 226, after a successful file transfer. Mohan <mnair at
13492   evergreen-funds.com> pointed this out.
13493
13494 - The check for *both* nsl and socket was never added in the v7 configure.in
13495   when I moved the main branch. I re-added that check to configure.in. This was
13496   discovered by Rich Gray.
13497
13498 - Howard, Blaise <Blaise.Howard at factiva.com> pointed out a missing free() in
13499   curl_disconnect() which of course meant libcurl ate memory.
13500
13501 - Brian E. Gallew noted that the HTTP 'Host:' header curl sent did not
13502   properly include the port number if non-default ports were used. This should
13503   now have been fixed.
13504
13505 - HTTP connect errors now return errors earlier. This was most notably causing
13506   problems when the HTTPS certificate had problems and later caused a crash.
13507   Many thanks to Gregory Nicholls <gnicholls at level8.com> for discovering
13508   and suggesting a fix...
13509
13510 Daniel (21 June 2000)
13511 - After a "bug report" I received where the user was using both -F and -I in a
13512   HTTP request (it severly confused the library I should add), I added some
13513   checks to src/main.c that prevents setting more than one HTTP request
13514   command, no matter what the user wants! ;-)
13515
13516 Version 7.0.8beta
13517
13518 Daniel (20 June 2000)
13519 - I did a major replace in many files to use the new curl domain haxx.se
13520   instead of the previous one.
13521
13522 - As Eetu Ojanen suggested, I finally took the step and now libcurl no longer
13523   makes a POST after it has followed a location. When the initial POST has
13524   been done, it'll turned into a GET for the further requests. This is only
13525   interesting when using -L/--location *and* doing a POST at the same time.
13526
13527   While messing with this, I added another weird feature I call 'auto
13528   referer'. If you append ';auto' to the right of a given referer string (or
13529   only use that string as referer), libcurl will automatically set the
13530   previoud URL as refered when it follows a Location: and gets a succeeding
13531   document.
13532
13533 - My hero Rich Gray found the very obscure FTP bug that happened to him only
13534   when passing through a particular firewall and using the PORT command. It
13535   turned out that PORT was the only command in the lib/ftp.c source that
13536   didn't send a proper \r\n sequence but instead used the faulty \n which as
13537   it seemed is supported by most major ftp servers... :-O
13538
13539 Version 7.0.7beta
13540
13541 Daniel (16 June 2000)
13542 - I had avoided this long enough now, so I moved the alternative progress bar
13543   stuff from the lib and added it to the client code. This is now using the
13544   recently added progress callback and it seems to work pretty much like
13545   before. Since it is only one progress bar and you and download and upload at
13546   the same time, this bar shows the combined progress of both directions. This
13547   code was just ported from the old place to this, Lars is still our saviour!
13548   ;-) This also made the documentation more accurate since I never removed
13549   this function from any docs! Although I now removed the CURLOPT_PROGRESSMODE
13550   from the library since the lib has only one internal progress meter and it
13551   will never get another. It is although likely that the internal one also
13552   will be moved to the client code in the future (when I have other means of
13553   getting the writeout data and move that too to the client).
13554
13555 - I took the opportunity to verify that standard progress meter works and I
13556   found out it didn't get inited properly. Grrr. I corrected that as well.
13557
13558 Daniel (15 June 2000)
13559 - I thought I'd better verify that the -F option still works in v7 and of
13560   course it didn't... :-/ Anyway, I had the problems I could discover
13561   corrected. About one month of beta testing and not a single person has used
13562   this feature with v7?
13563
13564 - Björn correctly pointed out that the --progress-bar still doesn't work in
13565   v7. Hm.
13566
13567 Daniel (14 June 2000)
13568 - Tim Tassonis discovered that curl 7 didn't handle normal http POST as it
13569   should. I corrected this.
13570
13571 Version 7.0.6beta
13572
13573 Daniel (14 June 2000)
13574 - Björn Stenberg pointed out several problems (related to win32 compiling):
13575   lib/strequal.c had a bad #ifdef for one of the string comparisons (win32)
13576   src/main.c had several minor problems
13577   lib/makefile.m32 had getpass.[co] twice
13578   src/config-win32.h lacked the HAVE_FCNTL_H define
13579   both config-win32.h files now only set the HAVE_UNISTD_H define if the
13580   define MINGW32 is set, and I modified src/makefile.m32 and lib/makefile.m32
13581   to set it.
13582
13583 Version 7.0.5beta
13584
13585 Daniel (14 June 2000)
13586 - Applied Luong Dinh Dung's comments about a few win32 compile problems.
13587
13588 - Applied Björn Stenberg's suggested fix that turns the win32 stdout to
13589   binary. It won't do it if the -B / --use-ascii option is used. That option
13590   is now an extended version of the previous -B /--ftp--ascii. The flag was
13591   already in use be the ldap as well so the new name fits pretty good. The
13592   libcyrl CURLOPT_TRANSFERTEXT was also introduced as an alias to the now
13593   obsolete CURLOPT_FTPASCII. Can't verify this fix myself as I have no win32
13594   compiler around.
13595
13596 Daniel (13 June 2000)
13597 - Luong Dinh Dung <dung at sch.bme.hu> found a problem in curl_easy_cleanup()
13598   since it free()ed the main curl struct *twice*. This is now corrected.
13599
13600 Daniel (9 June 2000)
13601 - Updated the RESOURCES file, added a README.win32 file.
13602
13603 Daniel (8 June 2000)
13604 - So I finally added the progress callback to the *setopt() options and it
13605   should work now. I don't have the energy to write any test program for it
13606   right now.
13607 - Made the callback function typedefs public in curl/curl.h for comfort. Just
13608   in case anyone wanna fiddle with such pointers.
13609 - Updated the curl_easy_setopt() man page accordingly.
13610
13611 Version 7.0.4beta
13612
13613 Daniel (2 June 2000)
13614 - I noticed that when doing Location: following, we lost custom headers in all
13615   but the first request.
13616 - Removed the 'HttpPost' struct and moved the header stuff to the more generic
13617   curl_slist.
13618 - Added some better slist-cleanups in src/main.c
13619
13620 Version 7.0.3beta
13621
13622 Daniel (31 May 2000)
13623 - So I discovered that I released the 7.0.2beta without it being able to
13624   compile under Linux. gethostbyname_r() and gethostbyaddr_r() turned out to
13625   feature a different amount of arguments on different systems so I had to add
13626   a configure check for this and adjust the code slightly.
13627
13628 Version 7.0.2beta
13629
13630 Daniel (29 May 2000)
13631 - Corrected the bits.* assignments when using CURLOPT options that only
13632   toggles one of those bits.
13633
13634 - Applied the huge patches from David LeBlanc <dleblanc at qnx.com> that add
13635   usage of the gethostbyname_r() and similar functions in case they're around,
13636   since that make libcurl much better threadsafe in many systems (such as
13637   solaris). I added the checks for these functions to the configure script.
13638
13639   I can't explain why, but the inet_ntoa_r() function did not appear in my
13640   Solaris include files, I had to add my own include file for this for now.
13641
13642 Daniel (22 May 2000)
13643 - Jörn Hartroth brought me fixes to make the win32 version compile properly as
13644   well as a rename of the 'interface' field in the urldata struct, as it seems
13645   to be reserved in some gcc versions!
13646
13647 - Rich Gray struck back with yet some portability reports. Data General DG/UX
13648   needed a little fix in lib/ldap.c since it doesn't have RTLD_GLOBAL defined.
13649   More fixes are expected as a result of Richies very helpful work.
13650
13651 Version 7.0.1beta
13652
13653 Daniel (21 May 2000)
13654 - Updated lots of #defines, enums and variable type names in the library. No
13655   more weird URG or URLTAG prefixes. All types and names should be curl-
13656   prefixed to avoid name space clashes. The FLAGS-parameter to the former
13657   curl_urlget() has been converted into a bunch of flags to use in separate
13658   setopt calls. I'm still focusing on the easy-interface, as the curl tool is
13659   now using that.
13660
13661 - Bjorn Reese has provided me with an asynchronous name resolver that I plan
13662   to use in upcoming versions of curl to be able to gracefully timeout name
13663   lookups.
13664
13665 Version 7.0beta
13666
13667 Daniel (18 May 2000)
13668 - Introduced LIBCURL_VERSION_NUM to the curl.h include file to better allow
13669   source codes to be dependent on the lib version. This define is now set to
13670   a dexadecimal number, with 8 bits each for major number, minor number and
13671   patch number. In other words, version 1.2.3 would make it 0x010203. It also
13672   makes a larger number a newer version.
13673
13674 Daniel (17 May 2000)
13675 - Martin Kammerhofer correctly pointed out several flaws in the FTP range
13676   option. I corrected them.
13677 - Removed the win32 winsock init crap from the lib to the src/main.c file
13678   in the application instead. They can't be in the lib, especially not for
13679   multithreaded purposes.
13680
13681 Daniel (16 May 2000)
13682 - Rewrote the src/main.c source to use the new easy-interface to libcurl 7.
13683   There is still more work to do, but the first step is now taken.
13684   <curl/easy.h> is the include file to use.
13685
13686 Daniel (14 May 2000)
13687 - FTP URLs are now treated slightly different, more according to RFC 1738.
13688 - FTP sessions are now performed differently, with CWD commands to change
13689   directory instead of RETR/STOR/LIST with the full path. Discussions with
13690   Rich Gray made me notice these problems.
13691 - Janne Johansson discovered and corrected a buffer overflow in the
13692   src/usrglob.c file.
13693 - I had to add a lib/strequal.c file for doing case insensitive string
13694   compares on all platforms.
13695
13696 Daniel (8 May 2000):
13697 - Been working lots on the new lib.
13698 - Together with Rich Gray, I've tried to adjust the configure script to work
13699   better on the NCR MP-RAS Unix.
13700
13701 Daniel (2 May 2000):
13702 - Albert Chin-A-Young pointed out that I had a few too many instructions in
13703   configure.in that didn't do any good.
13704
13705 Daniel (24 April 2000):
13706 - Added a new paragraph to the FAQ about what to do when configure can't
13707   find OpenSSL even though it is installed. Supplied by Bob Allison
13708
13709 Daniel (12 April 2000):
13710 - Started messing around big-time to convert the old library interface to a
13711   better one...
13712
13713 Daniel (8 April 2000):
13714 - Made the progress bar look better for file sizes between 9999 kilobytes
13715   and 100 megabytes. They're now displayed XX.XM.
13716 - I also noticed that ftp fetches through HTTP proxies didn't add the user
13717   agent string. It does now.
13718 - Habibie <habibie at MailandNews.com> supplied a pretty good way to build RPMs
13719   on a Linux machine. It still a) requires me to be root to do it, b) leaves
13720   the rpm packages laying at some odd place on my disk c) doesn't work to
13721   build the ssl version of curl since I didn't install openssl from an rpm
13722   package so now the rpm crap thinks I don't have openssl and refuses to build
13723   a package that depends on ssl... Did I mention I don't get along with RPM?
13724 - Once again I received a bug report about autoconf not setting -L prior to -l
13725   on the command line when checking for libs. In this case it made the native
13726   cc compiler on Solaris 7 to fail the OpenSSL check. This has previously been
13727   reported to cause problems on HP-UX and is a known flaw in autoconf 2.13. It
13728   is a pity there's no newer release around...
13729
13730 Daniel (4 April 2000):
13731 - Marco G. Salvagno supplied me with two fixes that
13732   appearantly makes the OS/2 port work better with multiple URLs.
13733
13734 Daniel (2 April 2000):
13735 - Another Location: fix. This time, when curl connected to a port and then
13736   followed a location with an absolute URL to another port, it misbehaved.
13737
13738 Daniel (27 March 2000):
13739 - H. Daphne Luong pointed out that curl was wrongly
13740   messing up the proxy string when fetching a document through a http proxy,
13741   which screwed up multiple fetches such as in location: followings.
13742
13743 Daniel (23 March 2000):
13744 - Marco G. Salvagno corrected my badly applied patch he
13745   actually already told me about!
13746
13747 - H. Daphne Luong brought me a fix that now makes curl
13748   ignore select() errors in the download if errno is EINTR, which turns out to
13749   happen every now and then when using libcurl multi-threaded...
13750
13751 Daniel (22 March 2000):
13752 - Wham Bang supplied a couple of win32 fixes. HAVE_UNAME
13753   was accidentally #defined in config-win32.h, which it shouldn't have been.
13754   The HAVE_UNISTD_H is not defined when compiling with the Makefile.vc6
13755   makefile for MS VC++.
13756
13757 Daniel (21 March 2000):
13758 - I removed the AC_PROG_INSTALL macro from configure.in, since it appears that
13759   one of the AM_* macros searches for a BSD compatible install already. Janne
13760   Johansson made me aware of this.
13761
13762 Version 6.5.2
13763
13764 Daniel (21 March 2000):
13765 - Paul Harrington quickly pointed out to me that 6.5.1
13766   crashes hard. I upload 6.5.2 now as quickly as possible! The problem was
13767   the -D adjustments in src/main.c.
13768
13769 Version 6.5.1
13770
13771 Daniel (20 March 2000):
13772 - An anonymous post on sourceforge correctly pointed out a possible buffer
13773   overflow in the curl_unescape() function for URL conversions. The main
13774   problem with this bug is that the ftp download uses that function and this
13775   single- byte overflow could lead to very odd bugs (as one reported by Janne
13776   Johansson).
13777
13778 Daniel (19 March 2000):
13779 - Marco G. Salvagno supplied me with a series of patches
13780   that now allows curl to get compiled on OS/2. It even includes a section in
13781   the INSTALL file. Very nice job!
13782
13783 Daniel (17 March 2000):
13784 - Wham Bang supplied a patch for the lib/Makefile.vc6
13785   file. We still need some fixes for the config-win32.h since it appears that
13786   VC++ and mingw32 have different opinions about (at least) unistd.h's
13787   existence.
13788
13789 Daniel (15 March 2000):
13790 - I modified the -D/--dump-header workings so that it doesn't write anything
13791   to the file until it needs to. This way, you can actually use -b and -D
13792   on the same file if you want repeated invokes to store and read the cookies
13793   in that one single file.
13794
13795 - Poked around in lots of texts. Added the BUGS file for bug reporting stuff.
13796   Added the classic HTTP POST question to the FAQ, removed some #ifdef WIN32
13797   stuff from the sources (they're covered by the config-win32.h now).
13798
13799 - Pascal Gaudette fixed a missing ldap.c problem in the
13800   Makefile.vc6 file. He also addressed a problem in src/config-win32.h.
13801
13802 Daniel (14 March 2000):
13803 - Paul Harrington pointed out that the 'http_code' variable in the -w output
13804   was never written. I fixed it now.
13805
13806 - Janne Johansson reported the complaints that OpenBSD does
13807   when getdate.c #includes malloc.h. It claims stdlib.h should be included
13808   instead. I added #ifdef HAVE_MALLOC_H code in getdate.y and two checks in
13809   the configure.in for malloc.h and stdlib.h.
13810
13811 Version 6.5
13812
13813 Daniel (13 March 2000):
13814 - <curl at spam.wolvesbane.net> pointed out that the way curl sent cookies in a
13815   single line wasn't enjoyed by IIS4.0 servers. In my view, that is not what
13816   the standards say, but I added a white space between the name/value pairs to
13817   perhaps make them work better.
13818
13819 - Added the perl check back in the configure.in again since the mkhelp.pl
13820   script needs it!
13821
13822 - Made some beautifications in the curl man page.
13823
13824 Daniel (3 March 2000):
13825 - Jörn helped me update the config-win32.h files with HAVE_SETVBUF and
13826   HAVE_STRDUP.
13827
13828 Daniel (3 March 2000):
13829 - Uploaded the 6.5pre2 package.
13830
13831 Daniel (2 March 2000):
13832 - Removed the perl-programs from the distribution, they never made many people
13833   happy and I'll still keep them available on the web.
13834
13835 - Added the -w and -N stuff to the man page. Documented the new progress meter
13836   display in README.curl.
13837
13838 - Jörn Hartroth, Chris <cbayliss at csc.come> and Ulf
13839   Möller from the openssl development team helped bringing me the details for
13840   fixing an OpenSSL usage flaw. It became apparent when they released openssl
13841   0.9.5 since that barfed on curl's bad behavior (not seeding a random number
13842   thing).
13843
13844 - Yet another option: -N/--no-buffer disables buffering in the output stream.
13845   Probably most useful for very slow transfers when you really want to get
13846   every byte curl receives within some preferred time. Andrew <tmr at gci.net>
13847   suggested this.
13848
13849 - Damien Adant mailed me his fixes for making curl compile on Ultrix.
13850
13851 Daniel (24 February 2000):
13852 - Applied Jörn Hartroth's fixes for config-win32.h and lib/Makefile.w32.
13853
13854   I should also make a note here, if nothing else to myself, that when using
13855   the %-syntax for variables in DOS command prompts, you must use two %-
13856   letters for each one since that is an escape letter there! Maybe I should
13857   use another letter instead!
13858
13859 - Added more variables to -w:
13860
13861   'http_code'
13862   'time_namelookup'
13863   'time_connect'
13864   'time_pretransfer'
13865   'url_effective'
13866
13867 - Made -w@filename read the syntax from a file and -w@- reads the syntax from
13868   stdin in the good old "standard" curl way.
13869
13870 Daniel (22 February 2000):
13871 - Released a 6.5pre1 version to get some test and user feedback.
13872
13873 Daniel (21 February 2000):
13874
13875 - I added the -w/--write-out flag and some variables to go with it. -w is a
13876   single string, whatever you enter there will be written out when curl has
13877   completed a successful request. There are some variable substitutions and
13878   they are specified as '%{variable}' (without the quotes). Variables that
13879   exist as of this moment are:
13880
13881         total_time     - total transfer time in seconds (with 2 decimals)
13882         size_download  - total downloaded amount of bytes
13883         size_upload    - total uploaded amount of bytes
13884         speed_download - the average speed of the entire download
13885         speed_upload   - the average speed of the entire upload
13886
13887   I will of course add more variables, but I need input on these and others.
13888
13889 - It struck me that the -# progress bar will be hard to just apply on the new
13890   progress bar concept. I need some feedback on this before that'll get re-
13891   introduced! :-/
13892
13893 Daniel (16 February 2000):
13894 - Jörn Hartroth brought me some fixes for the progress meter and I continued
13895   working on it. It seems to work for http download, http post, ftp download
13896   and ftp upload. It should be a pretty good test it works generally good.
13897
13898 - Still need to add the -# progress bar into the new style progress interface.
13899
13900 - Gonna have a go at my new output option parameter next.
13901
13902 Daniel (15 February 2000):
13903 - The progress meter stuff is slowly taking place. There's more left before it
13904   is working ok and everything is tested, but we're reaching there. Slowly!
13905
13906 Daniel (11 February 2000):
13907 - Paul Marquis fixed the config file parsing of curl to
13908   deal with any-length lines, removing the previous limit of 4K.
13909
13910 - Eetu Ojanen's suggestion of supporting the @-style for -b
13911   is implemented. Now -b@<filename> works as well as the old style. -b@- also
13912   similarly reads the cookies from stdin.
13913
13914 - Reminder: -D should not write to the file until it needs to, in the same way
13915   -o does. That would enable curl to use -b and -D on the same file...
13916
13917 - Ellis Pritchard made getdate.y work for MacOS X.
13918
13919 - Paul Harrington helped me out finding the crash in the
13920   cookie parser. He also pointed out curl's habit of sending empty cookies to
13921   the server.
13922
13923 Daniel (8 February 2000):
13924  - Ron Zapp corrected a problem in src/urlglob.c that
13925    prevented curl from getting compiled on sunos 4. The problem had to do
13926    with the difference in sprintf() return code types.
13927
13928  - Transfer() should now be able to download and upload simultaneously. Let's
13929    do some progress meter fixes later this week.
13930
13931 Daniel (31 January 2000):
13932  - Paul Harrington found another core dump in the cookie
13933    parser. Curl doesn't properly recognize the 'version' keyword and I think
13934    that is what caused this. I need to refresh some specs on cookies and see
13935    what else curl lacks to improve this a bit more once and for all.
13936
13937    RFC 2109 clearly specifies how cookies should be dealt with when they are
13938    compliant with that spec. I don't think many servers are though...
13939
13940  - Mark W. Eichin found that while curl is uploading a form
13941    to a web site, it doesn't read incoming data why it'll hang after a while
13942    since the socket "pipe" becomes full.
13943
13944    It took me two hours to rewrite Download() and Upload() into the new
13945    single function Transfer(). It even seems to work! More testing is required
13946    of course... I should get the header-sending together in a kind of queue
13947    and let them get "uploaded" in Transfer() as well.
13948
13949  - Zhibiao Wu pointed out a curl bug in the location: area,
13950    although I did not get a reproducible way to do this why I have to wait
13951    with fixing anything.
13952
13953  - Bob Schader suggested I should implement resume
13954    support for the HTTP PUT operation, and as I think it is a valid suggestion
13955    I'll work on it.
13956
13957 Daniel (25 January 2000):
13958  - M Travis Obenhaus pointed out a manual mixup with -y and -Y that was
13959    corrected.
13960
13961  - Jens Schleusener pointed out a problem to compile
13962    curl on AIX 4.1.4 and gave me a solution. This problem was already fixed
13963    by Jörn's recent #include modifications!
13964
13965 Daniel (19 January 2000):
13966  - Oskar Liljeblad pointed out and corrected a problem
13967    in the Location: following system that made curl following a location: to a
13968    different protocol to fail.
13969
13970    At January 31st I re-considered this fix and the surrounding source code. I
13971    could not really see that the patch did any difference, why I removed it
13972    again for further research and debugging. (It disabled location: following
13973    on server not running on default ports.)
13974
13975  - Jörn Hartroth brought a fix that once again
13976    made it possible to select progress bar.
13977
13978  - Jörn also fixed a few include problems.
13979
13980 Version 6.4
13981
13982 Daniel (17 January 2000):
13983  - Based on suggestions from Björn Stenberg, I made the
13984    progress deal better with larger files and added a "Time" field which shows
13985    the time spent on the download so far.
13986  - I'm now using the CVS repository on sourceforge.net, which also allows web
13987    browsing. See http://curl.haxx.nu.
13988
13989 Daniel (10 January 2000):
13990  - Renumbered some enums in curl/curl.h since tag number 35 was used twice!
13991  - Added "postquote" support to the ftp section that enables post-ftp-transfer
13992    quote commands.
13993  - Now made the -Q/--quote parameter recognize '-' as a prefix, which means
13994    that command will be issued AFTER a successful ftp transfer. This can of
13995    course be used to delete or rename a file after it has been uploaded or
13996    downloaded. Use your imagination! ;-)
13997  - Since I do the main development on solaris 2.6 now, I had to download and
13998    install GNU groff to generate the hugehelp.c file. The solaris nroff cores
13999    on the man page! So, in order to make the solaris configure script find a
14000    better result I made gnroff get checked prior to the regular nroff.
14001  - Added all the curl exit codes to the man page.
14002  - Jim Gallagher properly tracked down a bug in autoconf
14003    2.13. The AC_CHECK_LIB() macro wrongfully uses the -l flag before the -L
14004    flag to 'ld' which causes the HP-UX 10.20 flavour to fail on all libchecks
14005    and therefore you can't make the configure script find the openssl libs!
14006
14007 Daniel (28 December 1999):
14008  - Tim Verhoeven correctly identified that curl
14009    doesn't support URL formatted file names when getting ftp. Now, there's a
14010    problem with getting very weird file names off FTP servers. RFC 959 defines
14011    that the file name syntax to use should be the same as in the native OS of
14012    the server. Since we don't know the peer server system we currently just
14013    translate the URL syntax into plain letters. It is still better and with
14014    the solaris 2.6-supplied ftp server it works with spaces in the file names.
14015
14016 Daniel (27 December 1999):
14017  - When curl parsed cookies straight off a remote site, it corrupted the input
14018    data, which, if the downloaded headers were stored made very odd characters
14019    in the saved data. Correctly identified and reported by Paul Harrington.
14020
14021 Daniel (13 December 1999):
14022  - General cleanups in the library interface. There had been some bad kludges
14023    added during times of stress and I did my best to clean them off. It was
14024    both regarding the lib API as well as include file confusions.
14025
14026 Daniel (3 December 1999):
14027  - A small --stderr bug was reported by Eetu Ojanen...
14028
14029  - who also brought the suggestion of extending the -X flag to ftp list as
14030    well. So, now it is and the long option is now --request instead. It is
14031    only for ftp list for now (and the former http stuff too of course).
14032
14033 Lars J. Aas (24 November 1999):
14034  - Patched curl to compile and build under BeOS. Doesn't work yet though!
14035
14036  - Corrected the Makefile.am files to allow putting object files in
14037    different directories than the sources.
14038
14039 Version 6.3.1
14040
14041 Daniel (23 November 1999):
14042  - I've had this major disk crash. My good old trust-worthy source disk died
14043    along with the machine that hosted it. Thank goodness most of all the
14044    things I've done are either backed up elsewhere or stored in this CVS
14045    server!
14046
14047  - Michael S. Steuer pointed out a bug in the -F handling
14048    that made curl hang if you posted an empty variable such as '-F name='. It
14049    was one of those old bugs that never have worked properly...
14050
14051  - Jason Baietto pointed out a general flaw in the HTTP
14052    download. Curl didn't complain if it was prematurely aborted before the
14053    entire download was completed. It does now.
14054
14055 Daniel (19 November 1999):
14056  - Chris Maltby very accurately criticized the lack of
14057    return code checks on the fwrite() calls. I did a thorough check for all
14058    occurrences and corrected this.
14059
14060 Daniel (17 November 1999):
14061  - Paul Harrington pointed out that the -m/--max-time option
14062    doesn't work for the slow system calls like gethostbyname()... I don't have
14063    any good fix yet, just a slightly less bad one that makes curl exit hard
14064    when the timeout is reached.
14065
14066  - Bjorn Reese helped me point out a possible problem that might be the reason
14067    why Thomas Hurst experience problems in his Amiga version.
14068
14069  Daniel (12 November 1999):
14070  - I found a crash in the new cookie file parser. It crashed when you gave
14071    a plain http header file as input...
14072
14073 Version 6.3
14074
14075  Daniel (10 November 1999):
14076  - I kind of found out that the HTTP time-conditional GETs (-z) aren't always
14077    respected by the web server and the document is therefore sent in whole
14078    again, even though it doesn't match the requested condition. After reading
14079    section 13.3.4 of RFC 2616, I think I'm doing the right thing now when I do
14080    my own check as well. If curl thinks the condition isn't met, the transfer
14081    is aborted prematurely (after all the headers have been received).
14082
14083  - After comments from Robert Linden I also rewrote some parts of the man page
14084    to better describe how the -F works.
14085
14086  - Michael Anti put up a new curl download mirror in
14087    China:  http://www.pshowing.com/curl/
14088
14089  - I added the list of download mirrors to the README file
14090
14091  - I did add more explanations to the man page
14092
14093  Daniel (8 November 1999):
14094  - I made the -b/--cookie option capable of reading netscape formatted cookie
14095    files as well as normal http-header files. It should be able to
14096    transparently figure out what kind of file it got as input.
14097
14098  Daniel (29 October 1999):
14099  - Another one of Sebastiaan van Erk's ideas (that has been requested before
14100    but I seem to have forgotten who it was), is to add support for ranges in
14101    FTP downloads. As usual, one request is just a request, when they're two
14102    it is a demand. I've added simple support for X-Y style fetches. X has to
14103    be the lower number, though you may omit one of the numbers. Use the -r/
14104    --range switch (previously HTTP-only).
14105
14106  - Sebastiaan van Erk suggested that curl should be
14107    able to show the file size of a specified file. I think this is a splendid
14108    idea and the -I flag is now working for FTP. It displays the file size in
14109    this manner:
14110         Content-Length: XXXX
14111    As it resembles normal headers, and leaves us the opportunity to add more
14112    info in that display if we can come up with more in the future! It also
14113    makes sense since if you access ftp through a HTTP proxy, you'd get the
14114    file size the same way.
14115
14116    I changed the order of the QUOTE command executions. They're now executed
14117    just after the login and before any other command. I made this to enable
14118    quote commands to run before the -I stuff is done too.
14119
14120  - I found out that -D/--dump-header and -V/--version weren't documented in
14121    the man page.
14122
14123  - Many HTTP/1.1 servers do not support ranges. Don't ask me why. I did add
14124    some text about this in the man page for the range option. The thread in
14125    the mailing list that started this was initiated by Michael Anti.
14126
14127  - I get reports about nroff crashes on solaris 2.6+ when displaying the curl
14128    man page. Switch to gnroff instead, it is reported to work(!). Adam Barclay
14129    reported and brought the suggestion.
14130
14131  - In a dialogue with Johannes G. Kristinsson we came
14132    up with the idea to let -H/--header specified headers replace the
14133    internally generated headers, if you happened to select to add a header
14134    that curl normally uses by itself. The advantage with this is not entirely
14135    obvious, but in Johannes' case it means that he can use another Host: than
14136    the one curl would set.
14137
14138  Daniel (27 October 1999):
14139  - Jongki Suwandi brought a nice patch for (yet another) crash when following
14140    a location:. This time you had to follow a https:// server's redirect to
14141    get the core.
14142
14143 Version 6.2
14144
14145  Daniel (21 October 1999):
14146  - I think I managed to remove the suspicious (nil) that has been seen just
14147    before the "Host:" in HTTP requests when -v was used.
14148  - I found out that if you followed a location: when using a proxy, without
14149    having specified http:// in the URL, the protocol part was added once again
14150    when moving to the next URL! (The protocol part has to be added to the
14151    URL when going through a proxy since it has no protocol-guessing system
14152    such as curl has.)
14153  - Benjamin Ritcey reported a core dump under solaris 2.6
14154    with OpenSSL 0.9.4. It turned out this was due to a bad free() in main.c
14155    that occurred after the download was done and completed.
14156  - Benjamin found ftp downloads to show the first line of the download meter
14157    to get written twice, and I removed that problem. It was introduced with
14158    the multiple URL support.
14159  - Dan Zitter correctly pointed out that curl 6.1 and earlier versions didn't
14160    honor RFC 2616 chapter 4 section 2, "Message Headers": "...Field names are
14161    case-insensitive..."  HTTP header parsing assumed a certain casing. Dan
14162    also provided me with a patch that corrected this, which I took the liberty
14163    of editing slightly.
14164  - Dan Zitter also provided a nice patch for config.guess to better recognize
14165    the Mac OS X
14166  - Dan also corrected a minor problem in the lib/Makefile that caused linking
14167    to fail on OS X.
14168
14169  Daniel (19 October 1999):
14170  - Len Marinaccio came up with some problems with curl.  Since Windows has a
14171    crippled shell, it can't redirect stderr and that causes trouble. I added
14172    --stderr today which allows the user to redirect the stderr stream to a
14173    file or stdout.
14174
14175  Daniel (18 October 1999):
14176  - The configure script now understands the '--without-ssl' flag, which now
14177    totally disable SSL/https support. Previously it wasn't possible to force
14178    the configure script to leave SSL alone. The previous functionality has
14179    been retained. Troy Engel helped test this new one.
14180
14181 Version 6.1 (October 17 1999)
14182
14183  Daniel (17 October 1999):
14184  - I ifdef'ed or commented all the zlib stuff in the sources and configure
14185    script. It turned out we needed to mock more with zlib than I initially
14186    thought, to make it capable of downloading compressed HTTP documents and
14187    uncompress them on the fly. I didn't mean the zlib parts of curl to become
14188    more than minor so this means I halt the zlib expedition for now and wait
14189    until someone either writes the code or zlib gets updated and better
14190    adjusted for this kind of usage.  I won't get into details here, but a
14191    short a summary is suitable:
14192    - zlib can't automatically detect whether to use zlib or gzip
14193      decompression methods.
14194    - zlib is very neat for reading gzipped files from a file descriptor,
14195      although not as nice for reading buffer-based data such as we would
14196      want it.
14197    - there are still some problems with the win32 version when reading from
14198      a file descriptor if that is a socket
14199
14200  Daniel (14 October 1999):
14201  - Moved the (external) include files for libcurl into a subdirectory named
14202    curl and adjusted all #include lines to use <curl/XXXX> to maintain a
14203    better name space and control of the headers. This has been requested.
14204
14205  Daniel (12 October 1999):
14206  - I modified the 'maketgz' script to perform a 'make' too before a release
14207    archive is put together in an attempt to make the time stamps better and
14208    hopefully avoid the double configure-running that use to occur.
14209
14210  Daniel (11 October 1999):
14211  - Applied Jörn's patches that fixes zlib for mingw32 compiles as well as
14212    some other missing zlib #ifdef and more text on the multiple URL docs in
14213    the man page.
14214
14215 Version 6.1beta
14216
14217  Daniel (6 October 1999):
14218  - Douglas E. Wegscheid sent me a patch that made the exact same thing as I
14219    just made: the -d switch is now capable of reading post data from a named
14220    file or stdin.  Use it similarly to the -F. To read the post data from a
14221    given file:
14222
14223         curl -d @path/to/filename www.postsite.com
14224
14225    or let curl read it out from stdin:
14226
14227         curl -d @- www.postit.com
14228
14229  Jörn Hartroth (3 October 1999):
14230  - Brought some more patches for multiple URL functionality. The MIME
14231    separation ideas are almost scrapped now, and a custom separator is being
14232    used instead. This is still compile-time "flagged".
14233
14234  Daniel
14235  - Updated curl.1 with multiple URL info.
14236
14237  Daniel (30 September 1999):
14238  - Felix von Leitner brought openssl-check fixes for configure.in to work
14239    out-of-the-box when the openssl files are installed in the system default
14240    dirs.
14241
14242  Daniel (28 September 1999)
14243  - Added libz functionality. This should enable decompressing gzip, compress
14244    or deflate encoding HTTP documents. It also makes curl send an accept that
14245    it accepts that kind of encoding. Compressed contents usually shortens
14246    download time. I *need* someone to tell me a site that uses compressed HTTP
14247    documents so that I can test this out properly.
14248
14249  - As a result of the adding of zlib awareness, I changed the version string
14250    a little. I plan to add openldap version reporting in there too.
14251
14252  Daniel (17 September 1999)
14253  - Made the -F option allow stdin when specifying files. By using '-' instead
14254    of file name, the data will be read from stdin.
14255
14256 Version 6.0 (September 14 1999)
14257
14258  Daniel (13 September 1999)
14259  - Added -X/--http-request <request> to enable any HTTP command to be sent.
14260    Do not that your server has to support the exact string you enter. This
14261    should possibly a string like DELETE or TRACE.
14262
14263  - Applied Douglas' mingw32-fixes for the makefiles.
14264
14265  Daniel (10 September 1999)
14266  - Douglas E. Wegscheid pointed out a problem. Curl didn't check the FTP
14267    servers return code properly after the --quote commands were issued. It
14268    took anything non 200 as an error, when all 2XX codes should be accepted as
14269    OK.
14270
14271  - Sending cookies to the same site in multiple lines like curl used to do
14272    turned out to be bad and breaking the cookie specs. Curl now sends all
14273    cookies on a single Cookie: line. Curl is not yet RFC 2109 compliant, but I
14274    doubt that many servers do use that syntax (yet).
14275
14276  Daniel (8 September 1999)
14277  - Jörn helped me make sure it still compiles nicely with mingw32 under win32.
14278
14279  Daniel (7 September 1999)
14280  - FTP upload through proxy is now turned into a HTTP PUT. Requested by
14281    Stefan Kanthak.
14282
14283  - Added the ldap files to the .m32 makefile.
14284
14285  Daniel (3 September 1999)
14286  - Made cookie matching work while using HTTP proxy.
14287
14288  Bjorn Reese (31 August 1999)
14289  - Passed his ldap:// patch. Note that this requires the openldap shared
14290    library to be installed and that LD_LIBRARY_PATH points to the
14291    directory where the lib will be found when curl is run with a
14292    ldap:// URL.
14293
14294  Jörn Hartroth (31 August 1999)
14295  - Made the Mingw32 makefiles into single files.
14296  - Made file:// work for Win32. The same code is now used for unix as well for
14297    performance reasons.
14298
14299  Douglas E. Wegscheid (30 August 1999)
14300  - Patched the Mingw32 makefiles for SSL builds.
14301
14302  Matthew Clarke (30 August 1999)
14303  - Made a cool patch for configure.in to allow --with-ssl to specify the
14304    root dir of the openssl installation, as in
14305
14306         ./configure --with-ssl=/usr/ssl_here
14307
14308  - Corrected the 'reconf' script to work better with some shells.
14309
14310  Jörn Hartroth (26 August 1999)
14311  - Fixed the Mingw32 makefiles in lib/ and corrected the file.c for win32
14312    compiles.
14313
14314 Version 5.11
14315
14316  Daniel (25 August 1999)
14317  - John Weismiller pointed out a bug in the header-line
14318    realloc() system in download.c.
14319
14320  - I added lib/file.[ch] to offer a first, simple, file:// support. It
14321    probably won't do much good on win32 system at this point, but I see it
14322    as a start.
14323
14324  - Made the release archives get a Makefile in the root dir, which can be
14325    used to start the compiling/building process easier. I haven't really
14326    changed any INSTALL text yet, I wanted to get some feed-back on this
14327    first.
14328
14329  Daniel (17 August 1999)
14330  - Another Location: bug. Curl didn't do proper relative locations if the
14331    original URL had cgi-parameters that contained a slash. Nusu's page
14332    again.
14333
14334  - Corrected the NO_PROXY usage. It is a list of substrings that if one of
14335    them matches the tail of the host name it should connect to, curl should
14336    not use a proxy to connect there. Pointed out to me by Douglas
14337    E. Wegscheid.  I also changed the README text a little regarding this.
14338
14339  Daniel (16 August 1999)
14340  - Fixed a memory bug with http-servers that sent Location: to a Location:
14341    page. Nusu's page showed this too.
14342
14343  - Made cookies work a lot better. Setting the same cookie name several times
14344    used to add more cookies instead of replacing the former one which it
14345    should've. Nusu <nus at intergorj.ro> brought me an URL that made this
14346    painfully visible...
14347
14348  Troy (15 August 1999)
14349  - Brought new .spec files as well as a patch for configure.in that lets the
14350    configure script find the openssl files better, even when the include
14351    files are in /usr/include/openssl
14352
14353 Version 5.10
14354
14355  Daniel (13 August 1999)
14356  - SSL_CTX_set_default_passwd_cb() has been modified in the 0.9.4 version of
14357    OpenSSL. Now why couldn't they simply add a *new* function instead of
14358    modifying the parameters of an already existing function? This way, we get
14359    a compiler warning if compiling with 0.9.4 but not with earlier. So, I had
14360    to come up with a #if construction that deals with this...
14361
14362  - Made curl output the SSL version number get displayed properly with 0.9.4.
14363
14364  Troy (12 August 1999)
14365  - Added MingW32 (GCC-2.95) support under Win32. The INSTALL file was also
14366    a bit rearranged.
14367  
14368  Daniel (12 August 1999)
14369  - I had to copy a good <arpa/telnet.h> include file into the curl source
14370    tree to enable the silly win32 systems to compile. The distribution rights
14371    allows us to do that as long as the file remains unmodified.
14372
14373  - I corrected a few minor things that made the compiler complain when
14374    -Wall -pedantic was used.
14375
14376  - I'm moving the official curl web page to http://curl.haxx.nu. I think it
14377    will make it easier to remember as it is a lot shorter and less cryptic.
14378    The old one still works and shows the same info.
14379
14380  Daniel (11 August 1999)
14381  - Albert Chin-A-Young mailed me another correction for NROFF in the
14382    configure.in that is supposed to be better for IRIX users.
14383
14384  Daniel (10 August 1999)
14385  - Albert Chin-A-Young helped me with some stupid Makefile things, as well as
14386    some fiddling with the getdate.c stuff that he had problems with under
14387    HP-UX v10. getdate.y will now be compiled into getdate.c if the appropriate
14388    yacc or bison is found by the configure script. Since this is slightly new,
14389    we need to test the output getdate.c with win32 systems to make sure it
14390    still compiles there.
14391
14392  Daniel (5 August 1999)
14393  - I've just setup a new mailing list with the intention to keep discussions
14394    around libcurl development in it. I mainly expect it to be for thoughts and
14395    brainstorming around a "next generation" library, rather than nitpicking
14396    about the current implementation or details in the current libcurl.
14397
14398    To join our happy bunch of future-looking geeks, enter 'subscribe
14399    <address>' in the body of a mail and send it to
14400    libcurl-request@listserv.fts.frontec.se.  Curl bug reports, the usual curl
14401    talk and everything else should still be kept in this mailing list. I've
14402    started to archive this mailing list and have put the libcurl web page at
14403    www.fts.frontec.se/~dast/libcurl/.
14404
14405  - Stefan Kanthak contacted me regarding a few problems in the configure
14406    script which he discovered when trying to make curl compile and build under
14407    Siemens SINIX-Z V5.42B2004!
14408
14409  - Marcus Klein very accurately informed me that src/version.h was not present
14410    in the CVS repository. Oh, how silly...
14411
14412  - Linus Nielsen rewrote the telnet:// part and now curl offers limited telnet
14413    support. If you run curl like 'curl telnet://host' you'll get all output on
14414    the screen and curl will read input from stdin. You'll be able to login and
14415    run commands etc, but since the output is buffered, expect to get a little
14416    weird output.
14417
14418    This is still in its infancy and it might get changed. We need your
14419    feed-back and input in how this is best done.
14420
14421    WIN32 NOTE: I bet we'll get problems when trying to compile the current
14422    lib/telnet.c on win32, but I think we can sort them out in time.
14423
14424  - David Sanderson reported that FORCE_ALLOCA_H or HAVE_ALLOCA_H must be
14425    defined for getdate.c to compile properly on HP-UX 11.0. I updated the
14426    configure script to check for alloca.h which should make it.
14427
14428  Daniel (4 August 1999)
14429  - I finally got to understand Marcus Klein's ftp download resume problem,
14430    which turns out to be due to different outputs from different ftp
14431    servers. It makes ftp download resuming a little trickier, but I've made
14432    some modifications I really believe will work for most ftp servers and I do
14433    hope you report if you have problems with this!
14434
14435  - Added text about file transfer resuming to README.curl.
14436
14437  Daniel (2 August 1999)
14438  - Applied a progress-bar patch from Lars J. Aas. It offers
14439    a new styled progress bar enabled with -#/--progress-bar. 
14440
14441  T. Yamada <tai at imasy.or.jp> (30 July 1999)
14442  - It breaks with segfault when 1) curl is using .netrc to obtain
14443    username/password (option '-n'), and 2) is automatically redirected to
14444    another location (option '-L').
14445
14446    There is a small bug in lib/url.c (block starting from line 641), which
14447    tries to take out username/password from user- supplied command-line
14448    argument ('-u' option). This block is never executed on first attempt since
14449    CONF_USERPWD bit isn't set at first, but curl later turns it on when it
14450    checks for CONF_NETRC bit. So when curl tries to redo everything due to
14451    redirection, it segfaults trying to access *data->userpwd.
14452
14453 Version 5.9.1
14454
14455  Daniel (30 July 1999)
14456  - Steve Walch pointed out that there is a memory leak in the formdata
14457    functions. I added a FormFree() function that is now used and supposed to
14458    correct this flaw.
14459
14460  - Mark Wotton reported:
14461    'curl -L https://www.cwa.com.au/' core dumps.  I managed to cure this by
14462    correcting the cleanup procedure. The bug seems to be gone with my OpenSSL
14463    0.9.2b, although still occurs when I run the ~100 years old SSLeay 0.8.0. I
14464    don't know whether it is curl or SSLeay that is to blame for that.
14465
14466  - Marcus Klein:
14467    Reported an FTP upload resume bug that I really can't repeat nor understand.
14468    I leave it here so that it won't be forgotten.
14469
14470  Daniel (29 July 1999)
14471  - Costya Shulyupin suggested support for longer URLs when following Location:
14472    and I could only agree and fix it!
14473
14474  - Leigh Purdie found a problem in the upload/POST department. It turned out
14475    that http.c accidentaly cleared the pointer instead of the byte counter
14476    when supposed to.
14477
14478  - Costya Shulyupin pointed out a problem with port numbers and Location:. If
14479    you had a server at a non-standard port that redirected to an URL using a
14480    standard port number, curl still used that first port number.
14481
14482  - Ralph Beckmann pointed out a problem when using both CONF_FOLLOWLOCATION
14483    and CONF_FAILONERROR simultaneously. Since the CONF_FAILONERROR exits on
14484    the 302-code that the follow location header outputs it will never show any
14485    html on location: pages. I have now made it look for >=400 codes if
14486    CONF_FOLLOWLOCATION is set.
14487
14488  - 'struct slist' is now renamed to 'struct curl_slist' (as suggested by Ralph
14489    Beckmann).
14490
14491  - Joshua Swink and Rick Welykochy were the first to point out to me that the
14492    latest OpenSSL package now have moved the standard include path. It is now
14493    in /usr/local/ssl/include/openssl and I have now modified the --enable-ssl
14494    option for the configure script to use that as the primary path, and I
14495    leave the former path too to work with older packages of OpenSSL too.
14496
14497  Daniel (9 June 1999)
14498  - I finally understood the IRIX problem and now it seem to compile on it!
14499    I am gonna remove those #define strcasecmp() things once and for all now.
14500
14501  Daniel (4 June 1999)
14502  - I adjusted the FTP reply 227 parser to make the PASV command work better
14503    with more ftp servers. Appearantly the Roxen Challanger server replied
14504    something curl 5.9 could deal with! :-( Reported by Ashley Reid-Montanaro
14505    and Mark Butler brought a solution for it.
14506
14507  Daniel (26 May 1999)
14508  - Rearranged. README is new, the old one is now README.curl and I added a
14509    README.libcurl with text I got from Ralph Beckmann.
14510
14511  - I also updated the INSTALL text.
14512
14513  Daniel (25 May 1999)
14514  - David Jonathan Lowsky correctly pointed out that curl didn't properly deal
14515    with form posting where the variable shouldn't have any content, as in curl
14516    -F "form=" www.site.com. It was now fixed.
14517
14518 Version 5.9 (May 22 1999)
14519
14520  Daniel (22 May 1999)
14521  - I've got a bug report from Aaron Scarisbrick in which he states he has some
14522    problems with -L under FreeBSD 3.0. I have previously got another bug
14523    report from Stefan Grether which points at an error with similar sympthoms
14524    when using win32. I made the allocation of the new url string a bit faster
14525    and different, don't know if it actually improves anything though...
14526
14527  Daniel (20 May 1999)
14528  - Made the cookie parser deal with CRLF newlines too.
14529
14530  Daniel (19 May 1999)
14531  - Download() didn't properly deal with failing return codes from the sread()
14532    function. Adam Coyne found the problem in the win32 version, and Troy Engel
14533    helped me out isolating it.
14534
14535  Daniel (16 May 1999)
14536  - Richard Adams pointed out a bug I introduced in 5.8. --dump-header doesn't
14537    work anymore! :-/ I fixed it now.
14538
14539  - After a suggestion by Joshua Swink I added -S / --show-error to force curl
14540    to display the error message in case of an error, even if -s/--silent was
14541    used.
14542
14543  Daniel (10 May 1999)
14544  - I moved the stuff concerning HTTP, DICT and TELNET it their own source
14545    files now. It is a beginning on my clean-up of the sources to make them
14546    layer all those protocols better to enable more to be added easier in the
14547    future!
14548
14549  - Leon Breedt sent me some files I've not put into the main curl
14550    archive. They're for creating the Debian package thingie. He also sent me a
14551    debian package that I've made available for download at the web page
14552
14553  Daniel (9 May 1999)
14554  - Made it compile on cygwin too.
14555
14556  Troy Engel (7 May 1999)
14557  - Brought a series of patches to allow curl to compile smoothly on MSVC++ 6
14558    again!
14559
14560  Daniel (6 May 1999)
14561  - I changed the #ifdef HAVE_STRFTIME placement for the -z code so that it
14562    will be easier to discover systems that don't have that function and thus
14563    can't use -z successfully. Made the strftime() get used if WIN32 is defined
14564    too.
14565
14566 Version 5.8
14567
14568  Daniel (5 May 1999)
14569  - I've had it with this autoconf/automake mess. It seems to work allright
14570    for most people who don't have automake installed, but for those who have
14571    there are problems all over.
14572
14573    I've got like five different bug reports on this only the last
14574    week... Claudio Neves and Federico Bianchi and root <duggerj001 at
14575    hawaii.rr.com> are some of them reporting this.
14576
14577    Currently, I have no really good fix since I want to use automake myself to
14578    generate the Makefile.in files. I've found out that the @SHELL@-problems
14579    can often be fixed by manually invoking 'automake' in the archive root
14580    before you run ./configure... I've hacked my maketgz script now to fiddle
14581    a bit with this and my tests seem to work better than before at least!
14582
14583  Daniel (4 May 1999)
14584  - mkhelp.pl has been doing badly lately. I corrected a case problem in
14585    the regexes.
14586
14587  - I've now remade the -o option to not touch the file unless it needs to.
14588    I had to do this to make -z option really fine, since now you can make a
14589    curl fetch and use a local copy's time when downloading to that file, as
14590    in:
14591
14592         curl -z dump -o dump remote.site.com/file.html
14593
14594    This will only get the file if the remote one is newer than the local.
14595    I'm aware that this alters previous behaviour a little. Some scripts out
14596    there may depend on that the file is always touched...
14597
14598  - Corrected a bug in the SSLv2/v3 selection.
14599
14600  - Felix von Leitner requested that curl should be able to send
14601    "If-Modified-Since" headers, which indeed is a fair idea.  I implemented it
14602    right away! Try -z <expression> where expression is a full GNU date
14603    expression or a file name to get the date from!
14604
14605  Stephan Lagerholm (30 Apr 1999)
14606  - Pointed out a problem with the src/Makefile for FreeBSD. The RM variable
14607    isn't set and causes the make to fail.
14608
14609  Daniel (26 April 1999)
14610  - Am I silly or what? Irving Wolfe pointed out to me that the curl version
14611    number was not set properly. Hasn't been since 5.6. This was due to a bug
14612    in my maketgz script!
14613
14614  David Eriksson (25 Apr 1999)
14615  - Found a bug in cookies.c that made it crash at times.
14616
14617 Version 5.7.1
14618
14619  Doug Kaufman (23 Apr 1999)
14620  - Brought two sunos 4 fixes. One of them being the hostip.c fix mentioned
14621    below and the other one a correction in include/stdcheaders.h
14622
14623  - Added a paragraph about compiling with the US-version of openssl to the
14624    INSTALL file.
14625
14626  Daniel
14627  - New mailing list address. Info updated on the web page as well as in the
14628    README file
14629
14630  Greg Onufer (20 Apr 1999)
14631  - hostip.c didn't compile properly on SunOS 5.5.1.
14632    It needs an #include <sys/types.h>
14633
14634 Version 5.7
14635
14636  Daniel (Apr 20 1999)
14637  - Decided to upload a non-beta version right now!
14638
14639  - Made curl support any-length HTTP headers. The destination buffer is now
14640    simply enlarged every time it turns out to be too small!
14641
14642  - Added the FAQ file to the archive. Still a bit smallish, but it is a
14643    start.
14644
14645  Eric Thelin (15 Apr 1999)
14646  - Made -D accept '-' instead of filename to write to stdout.
14647
14648 Version 5.6.3beta
14649
14650  Daniel (Apr 12 1999)
14651
14652  - Changed two #ifdef WIN32 to better #ifdef <errorcode> when connect()ing
14653    in url.c and ftp.c. Makes cygwin32 deal with them better too. We should
14654    try to get some decent win32-replacement there. Anyone?
14655
14656  - The old -3/--crlf option is now ONLY --crlf!
14657
14658  - I changed the "SSL fix" to a more lame one, but that doesn't remove as
14659    much functionality. Now I've enabled the lib to select what SSL version it
14660    should try first. Appearantly some older SSL-servers don't like when you
14661    talk v3 with them so you need to be able to force curl to talk v2 from the
14662    start. The fix dated April 6 and posted on the mailing list forced curl to
14663    use v2 at all times using a modern OpenSSL version, but we don't really
14664    want such a crippled solution.
14665  
14666  - Marc Boucher sent me a patch that corrected a math error for the
14667    "Curr.Speed" progress meter.
14668
14669  - Eric Thelin sent me a patch that enables '-K -' to read a config file from
14670    stdin.
14671
14672  - I found out we didn't close the file properly before so I added it!
14673
14674  Daniel (Apr 9 1999)
14675  - Yu Xin pointed out a problem with ftp download resume.  It didn't work at
14676    all! ;-O
14677
14678  Daniel (Apr 6 1999)
14679  - Corrected the version string part generated for the SSL version.
14680
14681  - I found a way to make some other SSL page work with openssl 0.9.1+ that
14682    previously didn't (ssleay 0.8.0 works with it though!). Trying to get
14683    some real info from the OpenSSL guys to see how I should do to behave the
14684    best way. SSLeay 0.8.0 shouldn't be that much in use anyway these days!
14685
14686 Version 5.6.2beta
14687
14688  Daniel (Apr 4 1999)
14689  - Finally have curl more cookie "aware". Now read carefully. This is how
14690    it works.
14691    To make curl read cookies from an already existing file, in plain header-
14692    format (like from the headers of a previous fetch) invoke curl with the
14693    -b flag like:
14694
14695         curl -b file http://site/foo.html
14696
14697    Curl will then use all cookies it finds matching. The old style that sets
14698    a single cookie with -b is still supported and is used if the string
14699    following -b includes a '=' letter, as in "-b name=daniel".
14700
14701    To make curl read the cookies sent in combination with a location: (which
14702    sites often do) point curl to read a non-existing file at first (i.e
14703    to start with no existing cookies), like:
14704
14705         curl -b nowhere http://site/setcookieandrelocate.html
14706
14707  - Added a paragraph in the TODO file about the SSL problems recently
14708    reported. Evidently, some kind of SSL-problem curl may need to address.
14709
14710  - Better "Location:" following.
14711
14712  Douglas E. Wegscheid (Tue, 30 Mar 1999)
14713  - A subsecond display patch.
14714
14715  Daniel (Mar 14 1999)
14716  - I've separated the version number of libcurl and curl now. To make
14717    things a little easier, I decided to start the curl numbering from
14718    5.6 and the former version number known as "curl" is now the one
14719    set for libcurl.
14720
14721  - Removed the 'enable-no-pass' from configure, I doubt anyone wanted
14722    that.
14723
14724  - Made lots of tiny adjustments to compile smoothly with cygwin under
14725    win32. It's a killer for porting this to win32, bye bye VC++! ;-)
14726    Compiles and builds out-of-the-box now. See the new wordings in
14727    INSTALL for details.
14728
14729  - Beginning experiments with downloading multiple document from a http
14730    server while remaining connected.
14731
14732 Version 5.6beta
14733
14734  Daniel (Mar 13 1999)
14735  - Since I've changed so much, I thought I'd just go ahead and implement the
14736    suggestion from Douglas E. Wegscheid. -D or --dump-header is now storing
14737    HTTP headers separately in the specified file.
14738
14739  - Added new text to INSTALL on what to do to build this on win32 now.
14740
14741  - Aaargh. I had to take a step back and prefix the shared #include files
14742    in the sources with "../include/" to please VC++...
14743
14744  Daniel (Mar 12 1999)
14745  - Split the url.c source into many tiny sources for better readability
14746    and smaller size.
14747
14748  Daniel (Mar 11 1999)
14749  - Started to change stuff for a move to make libcurl and a more separate
14750    curl application that uses the libcurl. Made the libcurl sources into
14751    the new lib directory while the curl application will remain in src as
14752    before. New makefiles, adjusted configure script and so.
14753
14754    libcurl.a built quickly and easily. I better make a better interface to
14755    the lib functions though.
14756
14757    The new root dir include/ is supposed to contain the public information
14758    about the new libcurl. It is a little ugly so far :-)
14759
14760
14761  Daniel (Mar 1 1999)
14762  - Todd Kaufmann sent me a good link to Netscape's cookie spec as well as the
14763    info that RFC 2109 specifies how to use them.  The link is now in the
14764    README and the RFC in the RESOURCES.
14765
14766  Daniel (Feb 23 1999)
14767  - Finally made configure accept --with-ssl to look for SSL libs and includes
14768    in the "standard" place /usr/local/ssl...
14769
14770  Daniel (Feb 22 1999)
14771  - Verified that curl linked fine with OpenSSL 0.9.1c which seems to be
14772    the most recent.
14773
14774  Henri Gomez (Fri Feb  5 1999)
14775  - Sent in an updated curl-ssl.spec. I still miss the script that builds an
14776    RPM automatically...
14777
14778 Version 5.5.1
14779
14780  Mark Butler (27 Jan 1999)
14781  - Corrected problems in Download().
14782
14783  Danitel Stenberg (25 Jan 1999)
14784  - Jeremie Petit pointed out a few flaws in the source that prevented it from
14785    compile warning free with the native compiler under Digital Unix v4.0d.
14786
14787 Version 5.5
14788
14789  Daniel Stenberg (15 Jan 1999)
14790  - Added Bjorns small text to the README about the DICT protocol.
14791
14792  Daniel Stenberg (11 Jan 1999)
14793  - <jswink at softcom.net> reported about the win32-versioin: "Doesn't use
14794    ALL_PROXY environment variable". Turned out to be because of the static-
14795    buffer nature of the win32 environment variable calls!
14796
14797  Bjorn Reese (10 Jan 1999)
14798  - I have attached a simple addition for the DICT protocol (RFC 2229).
14799    It performs dictionary lookups. The output still needs to be better
14800    formatted.
14801
14802    To test it try (the exact format, and more examples are described in
14803    the RFC)
14804
14805         dict://dict.org/m:hello
14806         dict://dict.org/m:hello::soundex
14807
14808
14809  Vicente Garcia (10 Jan 1999)
14810  - Corrected the progress meter for files larger than 20MB.
14811
14812  Daniel Stenberg (7 Jan 1999)
14813  - Corrected the -t and -T help texts. They claimed to be FTP only.
14814
14815 Version 5.4
14816
14817  Daniel Stenberg
14818  (7 Jan 1999)
14819  - Irving Wolfe reported that curl -s didn't always supress the progress
14820    reporting. It was the form post that autoamtically always switched it on
14821    again. This is now corrected!
14822
14823  (4 Jan 1999)
14824  - Andreas Kostyrka suggested I'd add PUT and he helped me out to test it. If
14825    you use -t or -T now on a http or https server, PUT will be used for file
14826    upload.
14827
14828    I removed the former use of -T with HTTP. I doubt anyone ever really used
14829    that.
14830
14831  (4 Jan 1999)
14832  - Erik Jacobsen found a width bug in the mprintf() function.  I corrected it
14833    now.
14834
14835  (4 Jan 1999)
14836  - As John V. Chow pointed out to me, curl accepted very limited URL sizes. It
14837    should now accept path parts that are up to at least 4096 bytes.
14838
14839  - Somehow I screwed up when applying the AIX fix from Gilbert Ramirez, so
14840    I redid that now.
14841
14842 Version 5.3a (win32 only)
14843
14844  Troy Engel
14845  - Corrected a win32 bug in the environment variable part.
14846
14847 Version 5.3
14848
14849  Gilbert Ramirez Jr. (21 Dec 1998)
14850  - I have implemented the "quote" function of FTP clients. It allows you to
14851    send arbitrary commands to the remote FTP server. I chose the -Q/--quote
14852    command-line arguments.
14853
14854    You can have more than one quoted string, and curl will apply them in
14855    order.  This is what I use for my MVS upload:
14856
14857   curl -B --crlf -Q "site lrecl=80" -Q "site blk=8000" -T file ftp://os390/test
14858
14859    Curl will send the two quoted "site" commands in the proper order.
14860
14861  - Made it compile smoothly on AIX.
14862
14863  Gilbert Ramirez Jr. (18 Dec 1998)
14864  - Brought an MVS patch: -3/--mvs, for ftp upload to the MVS ftp server.
14865
14866  Troy Engel (17 Dec 1998)
14867  - Brought a correction that fixes the win32 curl bug.
14868
14869  Daniel Stenberg
14870  - A bug, pointed out to me by Dr H. T. Leung, caused curl to crash on the -A
14871    flag on certain systems. Actually, all systems should've!
14872
14873  - Added a few defines to make directories/file names get build nicer (with _
14874    instead of . and \ instead of / in win32).
14875
14876  - steve <fisk at polar.bowdoin.edu> reported a weird bug that occured if the
14877    ftp server response line had a parenthesis on the line before the (size)
14878    info. I hope it works better now!
14879
14880 Version 5.2.1
14881
14882  Steven G. Johnson (Dec 14, 1998)
14883  - Brought a fix that corrected a crash in 5.2 due to bad treatment of the
14884    environment variables.
14885
14886 Version 5.2
14887
14888  Daniel Stenberg (Dec 14, 1998)
14889  - Rewrote the mkhelp script and now, the mkhelp.pl script generates the
14890    hugehelp.c file from the README *and* the man page file curl.1. By using
14891    both files, I no longer need to have double information in both the man
14892    page and the README as well. So, win32-users will only have the hugehelp.c
14893    file for all info, but then, they download the plain binary most times
14894    anyway.
14895
14896  - gcc2.8.1 with the -Wall flag complaints a lot on subscript has type `char'
14897    if I don't explicitly typecast the argument to isdigit() or isspace() to
14898    int. So I did to compile warning free with that too.
14899
14900  - Added checks for 'long double' and 'long long' in the configure script. I
14901    need those for the mprintf.c source to compile well on non long long
14902    comforming systems!
14903
14904 Version 5.1 (not publicly released)
14905
14906  Daniel Stenberg (Dec 10, 1998)
14907  - I got a request for a pre-compiled NT Alpha version. Anyone?
14908
14909  - Added Lynx/CERN www lib proxy environment variable support. That means curl
14910    now reads and understands the following environment variables:
14911
14912         HTTP_PROXY, HTTPS_PROXY, FTP_PROXY, GOPHER_PROXY
14913
14914    They should be set for protocol-specific proxies. General proxy should be
14915    set with
14916         
14917         ALL_PROXY
14918
14919    And a comma-separated list of host names that shouldn't go through any
14920    proxy is set in (only an asterisk, '*' matches all hosts).
14921
14922         NO_PROXY
14923
14924    The usage of the -x/--proxy flag overrides the environment variables.
14925
14926  - Proxy can now be specified with a procotol:// prefix.
14927
14928  - Wrote the curl.1 man page.
14929
14930  - Introduced a whole new dynamic buffer system for all sprintf()s. It is
14931    based on the *printf() package by yours truly and Bjorn Reese. Hopefully,
14932    there aren't that many buffer overflow risks left now.
14933
14934  - Ah, I should mention I've compiled and built curl successfully under
14935    solaris 2.6 with gcc now, gcc 2.7.2 won't work but 2.8.1 did ok.
14936
14937  Oren Tirosh (Dec 3, 1998)
14938  - Brought two .spec files, to use when creating (Linux) Redhat style RPM
14939    packages. They're named curl.spec and curl-ssl.spec.
14940
14941  Troy Engel
14942  - Supplied the src/Makefile.vc6 for easy compiling with VC++ under Win32.
14943
14944 Version 5.0
14945
14946  Daniel Stenberg (Dec 1, 1998)
14947  - Not a single bug report in ages.
14948  - Corrected getpass.c and main.c to compile warning and error free with the
14949    Win32 VC++ crap.
14950
14951 Version 5.0 beta 24
14952
14953  Daniel Stenberg (Nov 20, 1998)
14954
14955  HOW TO BUILD A RELEASE ARCHIVE:
14956
14957  * Pre-requisite software:
14958    What              To build what             Reads data from
14959    ====              =============             ===============
14960    GNU automake      Makefile.in, aclocal.m4   configure.in
14961      GNU make(1)      - " -
14962      GNU gcc(1)       - " -
14963    GNU autoconf      configure                 configure.in
14964    GNU autoheader(2) config.h.in               configure.in, acconfig.h
14965
14966  * Make sure all files that should be part of the archive are put in FILES.
14967
14968  * Run './maketgz' and enter version number of the new to become archive.
14969
14970    maketgz does:
14971
14972    - Enters the newly created version number in url.h.
14973    - (If you don't have automake, this script will warn about that, but unless
14974      you have changed the Makefile.am files, that is nothing to care about.)
14975      If you have it, it'll run it.
14976    - If you have autoconf, the configure.in will be edited to get the newly
14977      created version number and autoconf will be run.
14978    - Creates a new directory named curl-<version>. (Actually, it uses the base
14979      name of the current directory up to the first '-'.)
14980    - Copies all files mentioned in FILES to the new directory. Saving
14981      permissions and directory structure.
14982    - Uses tar to create an archive of it all, named curl-<version>.tar.gz
14983    - gzips the archive
14984    - Removes the new directory and all its contents.
14985
14986  * When done, you have an archive stored in your directory named
14987    curl-<version>.tar.gz.
14988
14989    Done!
14990
14991    (1) They're required to make automake run properly.
14992    (2) It is distributed as a part of the GNU autoconf archive.
14993
14994  Daniel Stenberg (Nov 18, 1998)
14995  - I changed the TAG-system. If you ever used urlget() from this package in
14996    another product, you need to recompile with the new headers. I did this
14997    new stuff to better deal with different compilers and system with different
14998    variable sizes. I think it makes it a little more portable. This proves
14999    to compile warning free with the problematic IRIX compiler!
15000  - Win32 compiled with a silly error. Corrected now.
15001  - Brian Chaplin reported yet another problem in
15002    multiline FTP responses. I've tried to correct it. I mailed him a new
15003    version and I hope he gets back soon with positive feedback!
15004  - Improved the 'maketgz' to create a temporary directory tree which it makes
15005    an archive from instead of the previous renaming of the current one.
15006  - Mailing list opened (see README).
15007  - Made -v more verbose on the PASV section of ftp transfers. Now it tells
15008    host name and IP of the new host (and port number). I also added a section
15009    about PORT vs PASV in the README.
15010
15011 Version 5.0 beta 21
15012
15013  Angus Mackay (Nov 15, 1998)
15014  - Introduced automake stuff.
15015
15016  Daniel Stenberg (Nov 13, 1998)
15017  - Just made a successful GET of a document from an SSL-server using my own
15018    private certificate for authentication! The certificate has to be in PEM
15019    format. You do that the easiest way (although not *that* easy) by
15020    downloading the SSLyeay PKCS#12-patch by Dr Stephen N. Henson from his site
15021    at: http://www.drh-consultancy.demon.co.uk/. Using his tool, you can
15022    convert any modern Netscape or (even) MSIE certificate to PEM-format.  Use
15023    it with 'curl -E <certificate:password> https://site.com'.  If this isn't a
15024    cool feature, then I don't know what cool features look like! ;-)
15025  - Working slowly on telnet connections. #define TRY_TELNET to try it out.
15026    (curl -u user:passwd "telnet://host.com/cat .login" is one example) I do
15027    have problem to define how it should work. The prime purpose for this must
15028    be to get (8bit clean) files via telnet, and it really isn't that easy to
15029    get files this way. Still having problems with \n being converted to \r\n.
15030
15031  Angus Mackay (Nov 12, 1998)
15032  - Corrected another bug in the long parameter name parser.
15033  - Modified getpass.c (NOTE: see the special licensing in the top of that
15034    source file).
15035
15036  Daniel Stenberg (Nov 12, 1998)
15037  - We may have removed the silly warnings from url.c when compiled under IRIX.
15038    Thanks again to Bjorn Reese and Martin Staael.
15039  - Wrote formfind.pl which is a new perl script intended to help you find out
15040    how a FORM submission should be done. This needs a little more work to get
15041    really good.
15042
15043  Daniel Stenberg (Nov 11, 1998)
15044  - Made the HTTP header-checker accept white spaces before the HTTP/1.? line.
15045    Appearantly some proxies/sites add such at times (my test proxy did when I
15046    downloaded a gopher page with it)!
15047  - Moved the former -h to -M and made -h show the short help text instead. I
15048    had to enable a forced help text option. Now an even shorter help text will
15049    be presented when an unknown option and similar, is used.
15050  - stdcheaders.h didn't work with IRIX 6.4 native cc compiler. I hope my
15051    changes don't make other versions go nuts instead.
15052
15053  Daniel Stenberg (Nov 10, 1998)
15054  - Added a weird check in the configure script to check for the silly AIX
15055    warnings about my #define strcasecmp() stuff. I do that define to prevent
15056    me and other contributors to accidentaly use that function name instead
15057    of strequal()...
15058  - I bugfixed Angus's getpass.c very little.
15059  - Fixed the verbose flag names to getopt-style, i.e 'curl --loc' will be
15060    sufficient instead of --location as "loc" is a unique prefix. Also, anything
15061    after a '--' is treated as an URL. So if you do have a host with a weeeird
15062    name you can do 'curl -- -host.com'.
15063  - Another getopt-adjust; curl now accepts flags after the URL on the command
15064    line. 'curl www.foo.com -O' is perfectly valid.
15065  - Corrected the .curlrc parser so that strtok() is no longer used and I
15066    believe it works better. Even URLs can be specified in it now.
15067
15068  Angus Mackay (Nov 9, 1998)
15069  - Replaced getpass.c with a newly written one, not under GPL license
15070  - Changed OS to a #define in config.h instead of compiler flag
15071  - Makefile now uses -DHAVE_CONFIG_H
15072
15073  Daniel Stenberg (Nov 9, 1998)
15074  - Ok, I expanded the tgz-target to update the version string on each occation
15075    I build a release archive!
15076  - I reacted on Angus Mackay's initiative and remade the parameter parser to
15077    be more getopt compliant. Curl now supports "merged" flags as in 
15078         curl -lsv ftp.site.com
15079    Do note that I had to move three short-names of the options. Parameters
15080    that needs an additional string such as -x must be stand-alone or the
15081    last in a merged sequence:
15082         curl -lsx my-proxy ftp.site.com
15083    is ok, but using the flags in a different order like '-lxs' would cause
15084    unexpected results (as the 's' option would be skipped).
15085  - I've changed the headers in all files that are subject to the MozPL
15086    license, as they are supposed to look like when conforming.
15087  - Made the configure script make the config.h. The former config.h is now
15088    setup.h.
15089  - The RESOURCES and TODO files have been added to the archive.
15090
15091  Angus Mackay (Nov 5, 1998)
15092  - Fixed getpass.c and various configure stuff
15093
15094  Daniel Stenberg (Nov 3, 1998)
15095  - Use -H/--header for custom HTTP-headers. Lets you pass on your own
15096    specified headers to the remote server. I wouldn't recommend trying to use
15097    a header with a defined usage according to standards. Use this flag once
15098    for every custom header you want to add.
15099  - Use -B/--ftp-ascii to force ftp to use ASCII mode when transfering files.
15100  - Corrected the 'getlinks.pl' script, I accidentally left my silly proxy
15101    usage in there! Since the introduction of the .curlrc file, it is easier to
15102    write scripts that use curl since proxies and stuff should be in the
15103    .curlrc file anyway.
15104  - Introducing the new -F flag for HTTP POST. It supports multipart/form-data
15105    which means it is gonna be possible to upload files etc through HTTP POST.
15106    Shiraz Kanga asked for the feature and my brother,
15107    Björn Stenberg helped me design the user
15108    interface for this beast.  This feature requires quite some docs,
15109    since it has turned out not only quite capable, but also complicated! :-)
15110  - A note here, since I've received mail about it. SSLeay versions prior to
15111    0.8 will *not* work with curl!
15112  - Wil Langford reported a bug that occurred since curl
15113    did not properly use CRLF when issuing ftp commands. I fixed it.
15114  - Rearranged the order config files are read. .curlrc is now *always* read
15115    first and before the command line flags. -K config files then act as
15116    additional config items.
15117  - Use -q AS THE FIRST OPTION specified to prevent .curlrc from being read.
15118  - You can now disable a proxy by using -x "". Useful if the .curlrc file
15119    specifies a proxy and you wanna fetch something without going through
15120    that.
15121  - I'm thinking of dropping the -p support. Its really not useful since ports
15122    could (and should?) be specified as :<port> appended on the host name
15123    instead, both in URLs and to proxy host names.
15124  - Martin Staael reports curl -L bugs under Windows NT
15125    (test with URL http://come.to/scsde). This bug is not present in this
15126    version anymore.
15127  - Added support for the weird FTP URL type= thing. You can download a file
15128    using ASCII transfer by appending ";type=A" to the right of it. Other
15129    available types are type=D for dir-list (NLST) and type=I for binary
15130    transfer. I can't say I've ever seen anyone use this kind of URL though!
15131    :-)
15132  - Troy Engel pointed out a bug in my getenv("HOME")
15133    usage for win32 systems. I introduce getenv.c to better cope with
15134    this. Mr Engel helps me with the details around that...
15135  - A little note to myself and others, I should make the win32-binary built
15136    with SSL support...
15137  - Ryan Nelson sent me comments about building curl
15138    with SSL under FreeBSD. See the Makefile for details. Using the configure
15139    script, it should work better and automatically now...
15140  - Cleaned up in the port number mess in the source. No longer stores and uses
15141    proxy port number separate from normal port number.
15142  - 'configure' script working. Confirmed compiles on:
15143     Host         SSL  Compiler
15144     SunOS 5.5    no   gcc
15145     SunOS 5.5.1  yes  gcc
15146     SunOS 5.6    no   cc  (with gcc, it has the "gcc include files" problem)
15147     SunOS 4.1.3  no   gcc (without ANSI C headers)
15148     SunOS 4.1.2  no   gcc (native compiler failed)
15149     Linux 2.0.18 no   gcc
15150     Linux 2.0.32 yes  gcc
15151     Linux 2.0.35 no   gcc (with glibc)
15152     IRIX 6.2     no   gcc (cc compiles generate a few warnings)
15153     IRIX 6.4     no   cc  (generated warnings though)
15154     Win32        no   Borland
15155     OSF4.0       no   ?
15156
15157  - Ooops. The 5beta (and 4.10) under win32 failed if the HOME variable wasn't
15158    set.
15159  - When using a proxy, curl now guesses and uses the protocol part in cases
15160    like:
15161         curl -x proxy:80 www.site.com
15162    Proxies normally go nuts unless http:// is prepended to the host name, so
15163    if curl is used like this, it guesses protocol and appends the protocol
15164    string before passing it to the proxy. It already did this when used
15165    without proxy.
15166  - Better port usage with SSL through proxy now. If you specified a different
15167    https-port when accessing through a proxy, it didn't use that number
15168    correctly. I also rewrote the code that parses the stuff read from the
15169    proxy when you wanna connect through it with SSL.
15170  - Bjorn Reese helped me work around one of the compiler
15171    warnings on IRIX native cc compiles.
15172
15173 Version 4.10 (Oct 26, 1998)
15174  Daniel Stenberg
15175  - John A. Bristor suggested a config file switch,
15176    and since I've been having that idea kind of in the background for a long
15177    time I rewrote the parameter parsing function a little and now I introduce
15178    the -K/--config flag. I also made curl *always* (unless -K is used) try to
15179    load the .curlrc file for command line parameters. The syntax for the
15180    config file is the standard command line argument style. Details in 'curl
15181    -h' or the README.
15182  - I removed the -k option. Keep-alive isn't really anything anyone would
15183    want to enable with curl anyway.
15184  - Martin Staael helped me add the 'irix' target. Now
15185    "make irix" should build curl successfully on non-gcc SGI machines.
15186  - Single switches now toggle behaviours. I.e if you use -v -v the second
15187    will switch off the verbose mode the first one enabled. This is so that
15188    you can disable a default setting a .curlrc file enables etc.
15189
15190 Version 4.9 (Oct 7, 1998)
15191  Daniel Stenberg
15192  - Martin Staael suggested curl would support cookies.
15193    I added -b/--cookie to enable free-text cookie data to be passed. There's
15194    also a little blurb about general cookie stuff in the README/help text.
15195  - dmh <dmh at jet.es> suggested HTTP resume capabilities. Although you could
15196    manually get curl to resume HTTP documents, I made the -c resume flag work
15197    for HTTP too (unless -r is used too, which would be very odd anyway).
15198  - Added checklinks.pl to the archive. It is a still experimental perl script
15199    that checks all links of a web page by using curl.
15200  - Rearranged the archive hierarchy a little. Build the executable in the
15201    src/ dir from now on!
15202  - Version 4.9 and hereafter, is no longer released under the GPL license.
15203    I have now updated the LEGAL file etc and now this is released using the
15204    Mozilla Public License to avoid the plague known as "the GPL virus". You
15205    must make the source available if you decide to change and/or redistribute
15206    curl, but if you decide to use curl within something else you do not need
15207    to offer the world the source to that too.
15208  - Curl did not like HTTP servers that sent no headers at all on a GET
15209    request.  It is a violation of RFC2068 but appearantly some servers do
15210    that anyway.  Thanks to Gordon Beaton for the report!
15211  - -L/--location was added after a suggestion from Martin Staael. This makes
15212    curl ATTEMPT to follow the Location: redirect if one is present in the HTTP
15213    headers. If -i or -I is used with this flag, you will see headers from all
15214    sites the Location: points to. Do note that the first server can point to a
15215    second that points to a third etc. It seems the Location: parameter (said
15216    to be an AbsoluteURI in RFC2068) isn't always absolute.. :-/ Anyway, I've
15217    made curl ATTEMPT to do the best it can to deal with the reality.
15218  - Added getlinks.pl to the archive. getlinks.pl selectively downloads
15219    files that a web page links to.
15220
15221 Version 4.8.4
15222  Daniel Stenberg
15223  - As Julian Romero Nieto reported, curl reported wrong version number.
15224  - As Teemu Yli-Elsila pointed out, the win32 version of 4.8 (and probably all
15225    other versions for win32) didn't work with binary files since I'm too used
15226    to the UNIX style fopen() where binary and text don't differ...
15227  - Ralph Beckmann brought me some changes that lets curl compile error and
15228    warning free with -Wall -pedantic with g++. I also took the opportunity to
15229    clean off some unused variables and similar.
15230  - Ralph Beckmann made me aware of a really odd bug now corrected. When curl
15231    read a set of headers from a HTTP server, divided into more than one read
15232    and the first read showed a full line *exactly* (i.e ending with a
15233    newline), curl did not behave well.
15234
15235 Version 4.8.3
15236  Daniel Stenberg
15237  - I was too quick to release 4.8.2 with too little testing. One of the
15238    changes is now reverted slightly to the 4.8.1 way since 4.8.2 couldn't
15239    upload files. I still think both problems corrected in 4.8.2 remain
15240    corrected.  Reported by Julian Romero Nieto.
15241
15242 Version 4.8.2
15243  Daniel Stenberg
15244  - Bernhard Iselborn reported two FTP protocol errors curl did. They're now
15245    corrected. Both appeared when getting files from a MS FTP server! :-)
15246
15247 Version 4.8.1
15248  Daniel Stenberg
15249  - Added a last update of the progress meter when the transfer is done. The
15250    final output on the screen didn't have to be the final size transfered
15251    which made it sometimes look odd.
15252  - Thanks to David Long I got rid of a silly bug that happened if a HTTP-page
15253    had nothing but header. Appearantly Solaris deals with negative sizes in
15254    fwrite() calls a lot better than Linux does... =B-]
15255
15256 Version 4.8 (Aug 31, 1998)
15257  Daniel Stenberg
15258  - Continue FTP file transfer. -c is the switch. Note that you need to
15259    specify a file name if you wanna resume a download (you can't resume a
15260    download sent to stdout). Resuming upload may be limited by the server
15261    since curl is then using the non-RFC959 command SIZE to get the size of
15262    the target file before upload begins (to figure out which offset to
15263    use). Use -C to specify the offset yourself! -C is handy if you're doing
15264    the output to something else but a plain file or when you just want to get
15265    the end of a file.
15266  - recursiveftpget.pl now features a maximum recursive level argument.
15267
15268 Version 4.7
15269  Daniel Stenberg
15270  - Added support to abort a download if the speed is below a certain amount
15271    (speed-limit) bytes per second for a certain (speed-time) time.
15272  - Wrote a perl script 'recursiveftpget.pl' to recursively use curl to get a
15273    whole ftp directory tree. It is meant as an example of how curl can be
15274    used.  I agree it isn't the wisest thing to do to make a separate new
15275    connection for each file and directory for this.
15276
15277 Version 4.6
15278  Daniel Stenberg
15279  - Added a first attempt to optionally parse the .netrc file for login user
15280    and password. If used with http, it enables user authentication. -n is
15281    the new switch.
15282  - Removed the extra newlines on the default user-agent string.
15283  - Corrected the missing ftp upload error messages when it failed without the
15284    verbose flag set. Gary W. Swearingen found it.
15285  - Now using alarm() to enable second-precision timeout even on the name
15286    resolving/connecting phase. The timeout is although reset after that first
15287    sequence. (This should be corrected.) Gary W. Swearingen reported.
15288  - Now spells "Unknown" properly, as in "Unknown option 'z'"... :-)
15289  - Added bug report email address in the README.
15290  - Added a "current speed" field to the progress meter. It shows the average
15291    speed the last 5 seconds. The other speed field shows the average speed of
15292    the entire transfer so far.
15293
15294 Version 4.5.1
15295  Linas Vepstas
15296  - SSL through proxy fix
15297  - Added -A to allow User-Agent: changes
15298
15299  Daniel Stenberg 
15300  - Made the -A work when SSL-through-proxy.
15301
15302 Version 4.5
15303  Linas Vepstas
15304  - More SSL corrections
15305  - I've added a port to AIX.
15306  - running SSL through a proxy causes a chunk of code to be executred twice.
15307    one of those blocks needs to be deleted.
15308
15309  Daniel Stenberg
15310  - Made -i and -I work again
15311
15312 Version 4.4
15313  Linas Vepstas
15314  - -x can now also specify proxyport when used as in 'proxyhost:proxyport'
15315  - SSL fixes
15316
15317 Version 4.3
15318  Daniel Stenberg
15319  - Adjusted to compile under win32 (VisualC++ 5). The -P switch does not
15320    support network interface names in win32. I couldn't figure out how!
15321
15322 Version 4.2
15323  Linas Vepstas / Sampo Kellomaki
15324  - Added SSL / SSLeay support (https://)
15325  - Added the -T usage for HTTP POST.
15326
15327  Daniel Stenberg
15328  - Bugfixed the SSL implementation.
15329  - Made -P a lot better to use other IP addresses. It now accepts a following
15330    parameter that can be either
15331         interface - i.e "eth0" to specify which interface's IP address you
15332                     want to use
15333         IP address - i.e "192.168.10.1" to specify exact IP number
15334         host name - i.e "my.host.domain" to specify machine
15335         "-"       - (any single-letter string) to make it pick the machine's
15336                     default
15337  - The Makefile is now ready to compile for solaris, sunos4 and linux right
15338    out of the box.
15339  - Better generated version string seen with 'curl -V'
15340
15341 Version 4.1
15342  Daniel Stenberg
15343  - The IP number returned by the ftp server as a reply to PASV does no longer
15344    have to DNS resolve. In fact, no IP-number-only addresses have to anymore.
15345  - Binds better to available port when -P is used.
15346  - Now LISTs ./ instead of / when used as in ftp://ftp.funet.fi/. The reason
15347    for this is that exactly that site, ftp.funet.fi, does not allow LIST /
15348    while LIST ./ is fine. Any objections?
15349
15350 Version 4 (1998-03-20)
15351  Daniel Stenberg
15352  - I took another huge step and changed both version number and project name!
15353    The reason for the new name is that there are just one too many programs
15354    named urlget already and this program already can a lot more than merely
15355    getting URLs, and the reason for the version number is that I did add the
15356    pretty big change in -P and since I changed name I wanted to start with
15357    something fresh!
15358  - The --style flags are working better now.
15359  - Listing directories with FTP often reported that the file transfer was
15360    incomplete. Wrong assumptions were too common for directories, why no
15361    size will be attempted to get compared on them from now on.
15362  - Implemented the -P flag that let's the ftp control issue a PORT command
15363    instead of the standard PASV.
15364  - -a for appending FTP uploads works.
15365
15366 ***************************************************************************
15367
15368 Version 3.12 (14 March 1998)
15369  Daniel Stenberg
15370  - End-of-header tracking still lacked support for \r\n or just \n at the
15371    end of the last header line.
15372  Sergio Barresi
15373  - Added PROXY authentication.
15374  Rafael Sagula
15375  - Fixed some little bugs.
15376
15377 Version 3.11
15378  Daniel Stenberg
15379  - The header parsing was still not correct since the 3.2 modification...
15380
15381 Version 3.10
15382  Daniel Stenberg
15383  - 3.7 and 3.9 were simultaneously developed and merged into this version.
15384  - FTP upload did not work correctly since 3.2.
15385
15386 Version 3.9
15387  Rafael Sagula
15388  - Added the "-e <url> / --referer <url>" option where we can specify
15389    the referer page. Obviously, this is necessary only to fool the
15390    server, but...
15391
15392 Version 3.7
15393  Daniel Stenberg
15394  - Now checks the last error code sent from the ftp server after a file has
15395    been received or uploaded. Wasn't done previously.
15396  - When 'urlget <host>' is used without a 'protocol://' first in the host part,
15397    it now checks for host names starting with ftp or gopher and if it does,
15398    it uses that protocol by default instead of http.
15399
15400 Version 3.6
15401  Daniel Stenberg
15402  - Silly mistake made the POST bug. This has now also been tested to work with
15403    proxy.
15404
15405 Version 3.5
15406  Daniel Stenberg
15407  - Highly inspired by Rafael Sagula's changes to the 3.1 that added an almost
15408    functional POST, I applied his changes into this version and made them work.
15409    (It seems POST requires the Content-Type and Content-Length headers.) It is
15410    now usable with the -d switch.
15411
15412 Version 3.3 - 3.4
15413  Passed to avoid confusions
15414
15415 Version 3.2
15416  Daniel Stenberg
15417  - Major rewrite of two crucial parts of this code: upload and download.
15418    They are both now using a select() switch, that allows much better
15419    progress meter and time control. 
15420  - alarm() usage removed completely
15421  - FTP get can now list directory contents if the path ends with a slash '/'.
15422    Urlget on a ftp-path that doesn't end with a slash means urlget will
15423    attempt getting it as a file name.
15424  - FTP directory view supports -l for "list-only" which lists the file names
15425    only.
15426  - All operations support -m for max time usage in seconds allowed.
15427  - FTP upload now allows the size of the uploaded file to be provided, and
15428    thus it can better check it actually uploaded the whole file. It also
15429    makes the progress meter for uploads much better!
15430  - Made the parameter parsing fail in cases like 'urlget -r 900' which
15431    previously tried to connect to the host named '900'.
15432
15433 Version 3.1
15434  Kjell Ericson
15435  - Pointed out how to correct the 3 warnings in win32-compiles.
15436
15437  Daniel Stenberg
15438  - Removed all calls to exit().
15439  - Made the short help text get written to stdout instead of stderr.
15440  - Made this file instead of keeping these comments in the source.
15441  - Made two callback hooks, that enable external programs to use urlget()
15442    easier and to grab the output/offer the input easier.
15443  - It is evident that Win32-compiles are painful. I watched the output from
15444    the Borland C++ v5 and it was awful. Just ignore all those warnings.
15445
15446 Version 3.0
15447  Daniel Stenberg
15448  - Added FTP upload capabilities. The name urlget gets a bit silly now
15449    when we can put too... =)
15450  - Restructured the source quite a lot.
15451    Changed the urlget() interface. This way, we will survive changes much
15452    better. New features can come and old can be removed without us needing
15453    to change the interface. I've written a small explanation in urlget.h
15454    that explains it.
15455  - New flags include -t, -T, -O and -h. The -h text is generated by the new
15456    mkhelp script.
15457
15458 Version 2.9
15459  Remco van Hooff
15460  - Added a fix to make it compile smoothly on Amiga using the SAS/C
15461    compiler.
15462   
15463  Daniel Stenberg
15464  - Believe it or not, but the STUPID Novell web server seems to require
15465    that the Host: keyword is used, so well I use it and I (re-introduce) the
15466    urlget User-Agent:. I still have to check that this Host: usage works with
15467    proxies... 'Host:' is required for HTTP/1.1 GET according to RFC2068.
15468
15469 Version 2.8
15470  Rafael Sagula
15471  - some little modifications
15472
15473 Version 2.7
15474  Daniel Stenberg
15475  - Removed the -l option and introduced the -f option instead. Now I'll
15476    rewrite the former -l kludge in an external script that'll use urlget to
15477    fetch multipart files like that.
15478  - '-f' is introduced, it means Fail without output in case of HTTP server
15479    errors (return code >=300).
15480  - Added support for -r, ranges. Specify which part of a document you 
15481    want, and only that part is returned. Only with HTTP/1.1-servers.
15482  - Split up the source in 3 parts. Now all pure URL functions are in
15483    urlget.c and stuff that deals with the stand-alone program is in main.c.
15484  - I took a few minutes and wrote an embryo of a README file to explain
15485    a few things.
15486
15487 Version 2.6
15488  Daniel Stenberg
15489  - Made the -l (loop) thing use the new CONF_FAILONERROR which makes
15490    urlget() return error code if non-successful. It also won't output anything
15491    then. Now finally removed the HTTP 1.0 and error 404 dependencies.
15492  - Added -I which uses the HEAD request to get the header only from a
15493    http-server.
15494
15495 Version 2.5
15496  Rafael Sagula
15497  - Made the progress meter use HHH:MM:SS instead of only seconds.
15498
15499 Version 2.4
15500  Daniel Stenberg
15501  - Added progress meter. It appears when downloading > BUFFER SIZE and
15502    mute is not selected. I found out that when downloading large files from
15503    really really slow sites, it is desirable to know the status of the
15504    download. Do note that some downloads are done unawaring of the size, which
15505    makes the progress meter less thrilling ;) If the output is sent to a tty,
15506    the progress meter is shut off.
15507  - Increased buffer size used for reading.
15508  - Added length checks in the user+passwd parsing.
15509  - Made it grok user+passwd for HTTP fetches. The trick is to base64
15510    encode the user+passwd and send an extra header line. Read chapter 11.1 in
15511    RFC2068 for details. I added it to be used just like the ftp one.  To get a
15512    http document from a place that requires user and password, use an URL
15513    like:
15514
15515         http://user:passwd@www.site.to.leach/doc.html
15516
15517    I also added the -u flag, since WHEN USING A PROXY YOU CAN'T SPECIFY THE
15518    USER AND PASSWORD WITH HTTP LIKE THAT. The -u flag works for ftp too, but
15519    not if used with proxy. To do the same as the above one, you can invoke:
15520
15521         urlget -u user:passwd http://www.site.to.leach/doc.html
15522
15523 Version 2.3
15524  Rafael Sagula
15525  - Added "-o" option (output file)
15526  - Added URG_HTTP_NOT_FOUND return code.
15527    (Daniel's note:)
15528    Perhaps we should detect all kinds of errors and instead of writing that
15529    custom string for the particular 404-error, use the error text we actually
15530    get from the server. See further details in RFC2068 (HTTP 1.1
15531    definition). The current way also relies on a HTTP/1.0 reply, which newer
15532    servers might not do.
15533  - Looping mode ("-l" option). It's easier to get various split files.
15534    (Daniel's note:)
15535    Use it like 'urlget -l 1 http://from.this.site/file%d.html', which will
15536    make urlget to attempt to fetch all files named file1.html, file2.html etc
15537    until no more files are found. This is only a modification of the
15538    STAND_ALONE part, nothing in the urlget() function was modfified for this.
15539  Daniel Stenberg
15540  - Changed the -h to be -i instead. -h should be preserved to help use.
15541  - Bjorn Reese indicated that Borland _might_ use '_WIN32' instead of the
15542    VC++ WIN32 define and therefore I added a little fix for that.
15543
15544 Version 2.2
15545  Johan Andersson
15546  - The urlget function didn't set the path to url when using proxy.
15547  - Fixed bug with IMC proxy. Now using (almost) complete GET command.
15548   
15549  Daniel Stenberg
15550  - Made it compile on Solaris. Had to reorganize the includes a bit.
15551    (so Win32, Linux, SunOS 4 and Solaris 2 compile fine.)
15552  - Made Johan's keepalive keyword optional with the -k flag (since it
15553    makes a lot of urlgets take a lot longer time).
15554  - Made a '-h' switch in case you want the HTTP-header in the output.
15555
15556 Version 2.1
15557  Daniel Stenberg and Kjell Ericson
15558  - Win32-compilable
15559  - No more global variables
15560  - Mute option (no output at all to stderr)
15561  - Full range of return codes from urlget(), which is now written to be a
15562    function for easy-to-use in [other] programs.
15563  - Define STAND_ALONE to compile the stand alone urlget program
15564  - Now compiles with gcc options -ansi -Wall -pedantic ;)
15565
15566 Version 2.0
15567  - Introducing ftp GET support. The FTP URL type is recognized and used.
15568  - Renamed the project to 'urlget'.
15569  - Supports the user+passwd in the FTP URL (otherwise it tries anonymous
15570    login with a weird email address as password).
15571
15572 Version 1.5
15573  Daniel Stenberg
15574  - The skip_header() crap messed it up big-time. By simply removing that
15575    one we can all of a sudden download anything ;)
15576  - No longer requires a trailing slash on the URLs.
15577  - If the given URL isn't prefixed with 'http://', HTTP is assumed and
15578    given a try!
15579  - 'void main()' is history.
15580
15581 Version 1.4
15582  Daniel Stenberg
15583  - The gopher source used the ppath variable instead of path which could
15584    lead to disaster.
15585
15586 Version 1.3
15587  Daniel Stenberg
15588  - Well, I added a lame text about the time it took to get the data. I also
15589    fought against Johan to prevent his -f option (to specify a file name
15590    that should be written instead of stdout)! =)
15591  - Made it write 'connection refused' for that particular connect()
15592    problem.
15593  - Renumbered the version. Let's not make silly 1.0.X versions, this is
15594    a plain 1.3 instead.
15595
15596 Version 1.2
15597  Johan Andersson
15598  - Discovered and fixed the problem with getting binary files. puts() is
15599    now replaced with fwrite(). (Daniel's note: this also fixed the buffer
15600    overwrite problem I found in the previous version.)
15601
15602  Rafael Sagula
15603  - Let "-p" before "-x".
15604
15605  Daniel Stenberg
15606  - Bugfixed the proxy usage. It should *NOT* use nor strip the port number
15607    from the URL but simply pass that information to the proxy. This also
15608    made the user/password fields possible to use in proxy [ftp-] URLs.
15609    (like in ftp://user:password@ftp.my.site:8021/README)
15610
15611  Johan Andersson
15612  - Implemented HTTP proxy support.
15613  - Receive byte counter added.
15614
15615  Bjorn Reese
15616  - Implemented URLs (and skipped the old syntax).
15617  - Output is written to stdout, so to achieve the above example, do:
15618    httpget http://143.54.10.6/info_logo.gif > test.gif
15619
15620 Version 1.1
15621  Daniel Stenberg
15622  - Adjusted it slightly to accept named hosts on the command line. We
15623    wouldn't wanna use IP numbers for the rest of our lifes, would we?
15624
15625 Version 1.0
15626   Rafael Sagula
15627   - Wrote the initial httpget, which started all this!