52f685888e87c5f54b106f7b9c44caa03dda4552
[platform/upstream/curl.git] / CHANGES
1                                   _   _ ____  _
2                               ___| | | |  _ \| |
3                              / __| | | | |_) | |
4                             | (__| |_| |  _ <| |___
5                              \___|\___/|_| \_\_____|
6
7                                   Changelog
8
9 Yang Tse (5 Aug 2008)
10 - Changes done to buildconf script. Validate that autom4te and autoconf, as
11   well as aclocal and automake, versions match. Improve removal of previous
12   run generated files. Remove verbose debug logging of aclocal on Solaris.
13
14 Daniel Stenberg (5 Aug 2008)
15 - Yehoshua Hershberg found a problem that would make libcurl re-use a
16   connection with the multi interface even if a previous use of it caused a
17   CURLE_PEER_FAILED_VERIFICATION to get returned. I now make sure that failed
18   SSL connections properly close the connections.
19
20 Daniel Stenberg (4 Aug 2008)
21 - Test cases 1051, 1052 and 1055 were added by Daniel Fandrich on July 30 and
22   proved how PUT and POST with a redirect could lead to a "hang" due to the
23   data stream not being rewound properly when it had to in order to get sent
24   properly (again) to the subsequent URL. This is now fixed and these test
25   cases are no longer disabled.
26
27 Yang Tse (4 Aug 2008)
28 - Autoconf 2.62 has changed the behaviour of the AC_AIX macro which we use.
29   Prior versions of autoconf defined _ALL_SOURCE if _AIX was defined. 2.62
30   version of AC_AIX defines _ALL_SOURCE and other four preprocessor symbols
31   no matter if the system is AIX or not. To keep the traditional behaviour,
32   and an uniform one across autoconf versions AC_AIX is replaced with our
33   own internal macro CURL_CHECK_AIX_ALL_SOURCE.
34
35 Daniel Stenberg (4 Aug 2008)
36 - Test case 1041 (added by Daniel Fandrich July 14th) proved a bug where PUT
37   with -C - sent garbage in the Content-Range: header. I fixed this problem by
38   making sure libcurl always sets the size of the _entire_ upload if an app
39   attemps to do resumed uploads since libcurl simply cannot know the size of
40   what is currently at the server end. Test 1041 is no longer disabled.
41
42 Yang Tse (2 Aug 2008)
43 - No longer test availability of the gdi32 library, nor use it for linking, even
44   when we have been doing this since revision 1.47 of configure.ac 4 years and
45   5 months ago when cross-compiling a Windows target. We actually don't use any
46   function from the Windows GDI (Graphics Device Interface) related with drawing
47   or graphics-related operations.
48
49 Daniel Fandrich (1 Aug 2008)
50 - Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't
51   support this so it goes untested.
52
53 Yang Tse (1 Aug 2008)
54 - Configure process now checks if the preprocessor _REENTRANT symbol is already
55   defined. If it isn't currently defined a set of checks are performed to test
56   if its definition is required to make visible to the compiler a set of *_r
57   functions. Finally, if _REENTRANT is already defined or needed it takes care
58   of making adjustments necessary to ensure that it is defined equally for the
59   configure process tests and generated config file.
60
61 - Removed definition of CURL_CHECK_WORKING_RESOLVER from acinclude.m4 it has
62   not been in use since revision 1.81 of configure.in 6 years, 9 months ago.
63
64 Daniel Fandrich (31 Jul 2008)
65 - Fixed parsing of an IPv6 proxy address to support a scope identifier,
66   as well as IPv4 addresses in IPv6 format. Also, better handle the case
67   of a malformatted IPv6 address (avoid empty and NULL strings).
68
69 - Fixed a problem with any FTP URL or any URLs containing an IPv6 address
70   being mangled when passed to proxies when CURLOPT_PORT is also set
71   (reported by Pramod Sharma).
72
73 - User names embedded in proxy URLs without a password were parsed
74   incorrectly--the host name is treated as part of the user name and the
75   port number becomes the password.  This can be observed in test 279
76   (was KNOWN_ISSUE #54).
77
78 Daniel Stenberg (30 Jul 2008)
79 - Phil Blundell added the CURLOPT_ADDRESS_SCOPE option, as well as adjusted
80   the URL parser to allow numerical IPv6-addresses to be specified with the
81   scope given, as per RFC4007 - with a percent letter that itself needs to be
82   URL escaped. For example, for an address of fe80::1234%1 the HTTP URL is:
83   "http://[fe80::1234%251]/"
84
85 - PHP's bug report #43158 (http://bugs.php.net/bug.php?id=43158) identifies a
86   true bug in libcurl built with OpenSSL. It made curl_easy_getinfo() more or
87   less always return 0 for CURLINFO_SSL_VERIFYRESULT because the function that
88   would set it to something non-zero would return before the assign in almost
89   all error cases. The internal variable is now set to non-zero from the start
90   of the function only to get cleared later on if things work out fine.
91
92 - Made the curl tool's -w option support the %{ssl_verify_result} variable
93
94 Daniel Fandrich (30 Jul 2008)
95 - Added test cases 1052 through 1055 to test uploading data from files
96   during redirects.  Test cases 1052 and 1055 show problems (maybe the same
97   root cause as 1051) and are disabled.
98
99 - Fixed a couple of buffer overflows in the MS-DOS port of the curl tool.
100
101 Daniel Fandrich (29 Jul 2008)
102 - Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS
103   and OS/2.
104
105 - Added test case 1051 to test Location: following with PUT, as reported
106   by Ben Sutcliffe.  The test when run manually shows a problem in curl
107   so it's disabled.
108
109 Daniel Fandrich (28 Jul 2008)
110 - Fixed display of the interface bind address in the trace output when it's
111   an IPv6 address.
112
113 - Added test cases 1045 through 1049 as simple tests of --interface using the
114   localhost interface.
115
116 - Added test case 1050 to test --ftp-port with an IPv6 address
117
118 Daniel Stenberg (26 Jul 2008)
119 - David Bau filed bug report #2026240 "CURL_READFUNC_PAUSE leads to buffer
120   overrun" (http://curl.haxx.se/bug/view.cgi?id=2026240) identifying two
121   problems, and providing the fix for them:
122
123   - CURL_READFUNC_PAUSE did in fact not pause the _sending_ of data that it is
124     designed for but paused _receiving_ of data!
125
126   - libcurl didn't internally set the read counter to zero when this return
127     code was detected, which would potentially lead to junk getting sent to
128     the server.
129
130 Daniel Fandrich (26 Jul 2008)
131 - Added test 1044 to test large file support in ftp with -I.
132
133 - Eliminate a unnecessary socket creation in Curl_getaddrinfo for an IPv4
134   address in an IPv6 capable libcurl.
135
136 - Added feature in runtests.pl to select tests based on key word.
137
138 Daniel Fandrich (23 Jul 2008)
139 - Changed the long logfile elision code in runtests.pl to properly handle
140   lines ending in \r.
141
142 - Changed references to TRUE and FALSE in the curl_easy_setopt man page to
143   1 and zero, respectively, since TRUE and FALSE aren't part of the
144   libcurl API.
145
146 Daniel Stenberg (23 Jul 2008)
147 - I went over the curl_easy_setopt man page and replaced most references to
148   non-zero with the fixed value of 1. We should strive at making options
149   support '1' for enabling them mentioned explicitly, as that then will allow
150   us for to extend them in the future without breaking older programs.
151
152   Possibly we should even introduce a fancy define to use instead of '1' all
153   over...
154
155 Yang Tse (21 Jul 2008)
156 - Use the sreadfrom() wrapper to replace recvfrom() in our code.
157
158 Yang Tse (20 Jul 2008)
159 - when recvfrom prototype uses a void pointer for arguments 2, 5 or 6 this will
160   now cause the definition, as appropriate, of RECVFROM_TYPE_ARG2_IS_VOID,
161   RECVFROM_TYPE_ARG5_IS_VOID or RECVFROM_TYPE_ARG6_IS_VOID.
162
163 Yang Tse (17 Jul 2008)
164 - RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
165   to the data type pointed by its respective argument and not the pointer type.
166
167 Yang Tse (16 Jul 2008)
168 - Configure process now checks availability of recvfrom() socket function and
169   finds out its return type and the types of its arguments. Added definitions
170   for non-configure systems config files, and introduced macro sreadfrom which
171   will be used on udp sockets as a recvfrom() wrapper.
172
173 Yang Tse (15 Jul 2008)
174 - Added description/comment to include paths used in several Makefile.am files.
175   Added automake option nostdinc to test servers makefile and modified libcurl
176   external headers include path for libtest programs.
177
178 Daniel Fandrich (14 Jul 2008)
179 - Added test1040 through test1043 to test -C - on HTTP. Test 1041 failed so
180   it's added to DISABLED.
181
182 Yang Tse (14 Jul 2008)
183 - HTTP_ONLY definition check in lib/setup.h is now done once that configuration
184   file has been included. In this way if symbol is defined in the config file
185   it will no longer be ignored.  Removed inclusion of remaining system header
186   files from configuration files. Moved _REENTRANT definition up/earlier in
187   lib/setup.h
188
189 Yang Tse (11 Jul 2008)
190 - Added missing multiple header inclusion prevention definition for header
191   file content_encoding.h
192
193 Daniel Fandrich (11 Jul 2008)
194 - Fixed test 553 to pass the torture test.
195
196 Daniel Stenberg (11 Jul 2008)
197 - Daniel Fandrich found out we didn't pass on the user-agent properly when
198   doing "proxy-tunnels" with non-HTTP prototols and that was simply because
199   the code assumed the user-agent was only needed for HTTP.
200
201 Daniel Fandrich (10 Jul 2008)
202 - Changed slightly the SFTP quote commands chmod, chown and chgrp to only
203   set the attribute that has changed instead of all possible ones. Hopefully,
204   this will solve the "Permission denied" problem that Nagarajan Sreenivasan
205   reported when setting some modes, but regardless, it saves a protocol
206   round trip in the chmod case.
207
208 - Added test cases 1038 and 1039 to test Adrian Kreher's report that ftp
209   uploads with -C - didn't resume properly, but the tests pass.
210
211 Yang Tse (10 Jul 2008)
212 - Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI
213   is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which
214   exactly pinpointed the problem only triggered on Windows Vista, provided
215   reference to docs and also a fix. There is much work behind Peter Lamberg's
216   excellent bug report. Thank You!
217
218 Daniel Fandrich (9 Jul 2008)
219 - Added tests 1036 and 1037 to verify resumed ftp downloads with -C -
220
221 Daniel Stenberg (9 Jul 2008)
222 - Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I
223   edited it slightly. Now you should be able to use IPv6 addresses fine even
224   with libcurl built to use c-ares.
225
226 Daniel Fandrich (9 Jul 2008)
227 - Fixed an OOM handling problem that cause test 11 to fail the torture test.
228
229 Daniel Fandrich (8 Jul 2008)
230 - Fixed test 554 to pass the torture test.
231
232 Daniel Fandrich (7 Jul 2008)
233 - Added test cases 1034 & 1035 to test IDN name conversion failures.
234
235 Daniel Stenberg (7 Jul 2008)
236 - Scott Barrett provided a test case for a segfault in the FTP code and the
237   fix for it. It occured when you did a FTP transfer using
238   CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but
239   switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being
240   cleared properly.  Scott's test case is now known as test 539 and it
241   verifies the fix.
242
243 Daniel Stenberg (3 Jul 2008)
244 - Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx
245   response codes. Previously libcurl would hang on such occurances. I added
246   test case 1033 to verify.
247
248 - Introcuding a new timestamp for curl_easy_getinfo():
249   CURLINFO_APPCONNECT_TIME. This is set with the "application layer"
250   handshake/connection is completed. Which typically is SSL, TLS or SSH and by
251   using this you can figure out the application layer's own connect time. You
252   can extract the time stamp using curl's -w option and the new variable named
253   'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar.
254
255 Daniel Fandrich (2 Jul 2008)
256 - Support Open Watcom C on Linux (as well as Windows).
257
258 Yang Tse (2 Jul 2008)
259 - The previously committed fix for bug report #1999181 prevented using the
260   monotonic clock on any system without an always supported POSIX compliant
261   implementation. Now the POSIX compliant configuration check is removed and
262   will fallback to gettimeofday when the monotonic clock is unavailable at
263   run-time.
264
265 - The configure process will now halt when sed, grep, egrep or ar programs
266   can not be found among the directories in PATH variable.
267
268 Daniel Stenberg (1 Jul 2008)
269 - Rolland Dudemaine provided fixes to get libcurl to build for the INTEGRITY
270   operating system.
271
272 Daniel Stenberg (30 Jun 2008)
273 - Made the internal printf() support %llu properly to print unsigned long longs.
274
275 - Stephen Collyer and Tor Arntsen helped identify a flaw in the range code
276   which output the range using a signed variable where it should rather use
277   unsigned.
278
279 Yang Tse (29 Jun 2008)
280 - John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on
281   some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was
282   that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test
283   macro when checking monotonic clock availability. This is now fixed and the
284   monotonic clock will not be used unless the feature test macro is defined
285   with a value greater than zero indicating always supported.
286
287 Daniel Fandrich (25 Jun 2008)
288 - Honour --stderr with the -v option.
289
290 - Fixed a file handle leak in the command line client if more than one
291   --stderr option was given.
292
293 Daniel Stenberg (22 Jun 2008)
294 - Eduard Bloch filed the debian bug report #487567
295   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
296   libcurl used Content-Range: instead of Range when doing a range request with
297   --head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
298   verify.
299   
300 Daniel Fandrich (21 Jun 2008)
301 - Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that
302   is not ANSI C, just a common extension.  This caused problems on
303   at least Open Watcom C.
304
305 Yang Tse (20 Jun 2008)
306 - Modified configuration script to actually verify if the compiler is good
307   enough at detecting compilation errors or at least it has been properly
308   configured to do so. Configuration heavily depends on this capability, so
309   if this compiler sanity check fails the configuration process will now fail.
310
311 Daniel Stenberg (20 Jun 2008)
312 - Phil Pellouchoud found a case where libcurl built with NSS failed to
313   handshake with a SSLv2 server, and it turned out to be because it didn't
314   recognize the cipher named "rc4-md5". In our list that cipher was named
315   plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported
316   that it made things work for him again.
317
318 - Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy
319   crashed libcurl. This is now addressed by making sure we use "plain send"
320   internally when doing the socks handshake instead of the Curl_write()
321   function which is designed to use the "target" protocol. That's then SCP or
322   SFTP in this case. I also took the opportunity and cleaned up some ssh-
323   related #ifdefs in the code for readability.
324
325 Daniel Stenberg (19 Jun 2008)
326 - Christopher Palow fixed a curl_multi_socket() issue which previously caused
327   libcurl to not tell the app properly when a socket was closed (when the name
328   resolve done by c-ares is completed) and then immediately re-created and put
329   to use again (for the actual connection). Since the closure will make the
330   "watch status" get lost in several event-based systems libcurl will need to
331   tell the app about this close/re-create case.
332
333 - Dengminwen found a bug in the connection re-use function when using the
334   multi interface with pipelining enabled as it would wrongly check for,
335   detect and close "dead connections" even though that connection was already
336   in use!
337
338 Daniel Fandrich (18 Jun 2008)
339 - Added SSH failure test cases 628-632
340
341 - Fixed a memory leak in the command-line tool that caused a valgrind error.
342
343 Daniel Stenberg (18 Jun 2008)
344 - Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer
345   always fire up a new connection rather than using the existing one when the
346   multi interface is used. Original bug report:
347   https://bugzilla.redhat.com/show_bug.cgi?id=450140
348
349 Yang Tse (18 Jun 2008)
350 - Internal configure script improvement. No longer break out of shell "for"
351   statements from inside AC_FOO_IFELSE macros, otherwise temporary macro files
352   are not properly removed.
353
354 Daniel Fandrich (12 Jun 2008)
355 - Fixed curl-config --ca which wasn't being exported by configure.
356
357 Daniel Stenberg (11 Jun 2008)
358 - I did a cleanup of the internal generic SSL layer and how the various SSL
359   libraries are supported. Starting now, each underlying SSL library support
360   code does a set of defines for the 16 functions the generic layer (sslgen.c)
361   uses (all these new function defines use the prefix "curlssl_"). This
362   greatly simplified the generic layer in readability by involving much less
363   #ifdefs and other preprocessor stuff and should make it easier for people to
364   make libcurl work with new SSL libraries.
365
366   Hopefully I can later on document these 16 functions somewhat as well.
367
368   I also made most of the internal SSL-dependent functions (using Curl_ssl_
369   prefix) #defined to nothing when no SSL support is requested - previously
370   they would unnecessarily call mostly empty functions.
371
372   I've built libcurl with OpenSSL and GnuTLS and without SSL to test this and
373   I've also tried building with NSS but the NSS support is a mystery to me and
374   I failed to build libcurl with the NSS libraries I have installed. We really
375   should A) improve our configure script to detect unsuitable NSS versions
376   already at configure time and B) document our requirements better for the
377   SSL libraries.
378
379 Daniel Stenberg (10 Jun 2008)
380 - I made the OpenSSL code build again with OpenSSL 0.9.6. The CRLFILE
381   functionality killed it due to its unconditional use of
382   X509_STORE_set_flags...
383
384 Daniel Stenberg (8 Jun 2008)
385 - Due to the three new libcurl changes and the massive command line option
386   change I decided we'll mark it by bumping the next release number to 7.19.0!
387
388 - curl the tool now deals with its command line options somewhat differently!
389   All boolean options (such as -O, -I, -v etc), both short and long versions,
390   now always switch on/enable the option named. Using the same option multiple
391   times thus make no difference. To switch off one of those options, you need
392   to use the long version of the option and type --no-OPTION. Like to disable
393   verbose mode you use --no-verbose!
394
395 - Added --remote-name-all to curl, which if used changes the default for all
396   given URLs to be dealt with as if -O is used. So if you want to disable that
397   for a specific URL after --remote-name-all has been used, you muse use -o -
398   or --no-remote-name.
399
400 Daniel Stenberg (6 Jun 2008)
401 - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_ISSUERCERT, for
402   OpenSSL, NSS and GnuTLS-built libcurls.
403
404 - Axel Tillequin and Arnaud Ebalard added support for CURLOPT_CRLFILE, for
405   OpenSSL, NSS and GnuTLS-built libcurls.
406
407 - Added CURLINFO_PRIMARY_IP as a new information retrievable with
408   curl_easy_getinfo. It returns a pointer to a string with the most recently
409   used IP address. Modified test case 500 to also verify this feature. The
410   implementing of this feature was sponsored by Lenny Rachitsky at NeuStar.
411
412 Version 7.18.2 (4 June 2008)
413
414 Daniel Fandrich (3 Jun 2008)
415 - Fixed a problem where telnet data would be lost if an EWOULDBLOCK
416   condition were encountered.
417
418 Marty Kuhrt (1 Jun 2008)
419 - Updated main.c to return CURLE_OK if PARAM_HELP_REQUESTED was returned
420   from getparameter instead of CURLE_FAILED_INIT.  No point in returning
421   an error if --help or --version were requested.
422
423 Daniel Stenberg (28 May 2008)
424 - Emil Romanus found a problem and helped me repeat it. It occured when using
425   the curl_multi_socket() API with HTTP pipelining enabled and could lead to
426   the pipeline basically stalling for a very long period of time until it took
427   off again.
428
429 - Jeff Weber reported memory leaks with aborted SCP and SFTP transfers and
430   provided excellent repeat recipes. I fixed the cases I managed to reproduce
431   but Jeff still got some (SCP) problems even after these fixes:
432   http://curl.haxx.se/mail/lib-2008-05/0342.html
433
434 Daniel Stenberg (26 May 2008)
435 - Bug report #1973352 (http://curl.haxx.se/bug/view.cgi?id=1973352) identified
436   how the HTTP redirect following code didn't properly follow to a new URL if
437   the new url was but a query string such as "Location: ?moo=foo". Test case
438   1031 was added to verify this fix.
439
440 - Andreas Faerber and Scott McCreary made (lib)curl build for the Haiku OS. 
441
442 Yang Tse (26 May 2008)
443 - David Rosenstrauch reported that header files spnegohelp.h and
444   openssl/objects.h were needed to compile SPNEGO support.
445
446 Daniel Fandrich (22 May 2008)
447 - Made sure to pass longs in to curl_easy_setopt where necessary in the
448   example programs and libtest code.
449
450 Daniel Stenberg (19 May 2008)
451 - When trying to repeat a multi interface problem I fell over a few multi
452   interface problems:
453
454   o with pipelining disabled, the state should never be set to WAITDO but
455     rather go straight to DO
456
457   o we had multiple states for which the internal function returned no socket
458     at all to wait for, with the effect that libcurl calls the socket callback
459     (when curl_multi_socket() is used) with REMOVE prematurely (as it would be
460     added again within very shortly)
461
462   o when in DO and DOING states, the HTTP and HTTPS protocol handler functions
463     didn't return that the socket should be waited for writing, but instead it
464     was treated as if no socket was needing monitoring so again REMOVE was
465     called prematurely.
466
467 Daniel Stenberg (13 May 2008)
468 - Added test case 556 that uses curl_easy_send() and curl_easy_recv()
469
470 Daniel Stenberg (9 May 2008)
471 - Introducing curl_easy_send() and curl_easy_recv(). They can be used to send
472   and receive data over a connection previously setup with curl_easy_perform()
473   and its CURLOPT_CONNECT_ONLY option. The sendrecv.c example was added to
474   show how they can be used.
475
476 Yang Tse (9 May 2008)
477 - Internal time differences now use monotonic time source if available.
478   This also implies the removal of the winmm.lib dependency for WIN32.
479
480 Daniel Stenberg (9 May 2008)
481 - Stefan Krause reported a busy-looping case when using the multi interface
482   and doing CONNECT to a proxy. The app would then busy-loop until the proxy
483   completed its response.
484
485 Michal Marek (9 May 2008)
486 - Make Curl_write and it's callees accept a const pointer, in preparation
487   of tetetest's patch for curl_easy_send()
488
489 Daniel Stenberg (7 May 2008)
490 - Liam Healy filed the debian bug report #480044
491   (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=480044) identifying a
492   segfault when using krb5 ftp, but the krb4 code had the same problem.
493
494 Yang Tse (7 May 2008)
495 - Christopher Palow provided the patch (edited by me) that introduces the
496   use of microsecond resolution keys for internal splay trees.
497
498 Daniel Stenberg (4 May 2008)
499 - Yuriy Sosov pointed out a configure fix for detecting c-ares when that is
500   built debug-enabled.
501
502 Daniel Stenberg (3 May 2008)
503 - Ben Van Hof filed bug report #1945240: "libcurl sometimes sends body twice
504   when using CURL_AUTH_ANY" (http://curl.haxx.se/bug/view.cgi?id=1945240).
505   The problem was that when libcurl rewound a stream meant for upload when it
506   would prepare for a second request, it could accidentally continue the
507   sending of the rewound data on the first request instead of on the second.
508   Ben also provided test case 1030 that verifies this fix.
509
510 Daniel Stenberg (3 May 2008)
511 - Jean-Francois Bertrand reported a libcurl crash with CURLOPT_TCP_NODELAY
512   since libcurl used getprotobyname() and that isn't thread-safe. We now
513   switched to use IPPROTO_TCP unconditionally, but perhaps the proper fix is
514   to detect the thread-safe version of the function and use that.
515   http://curl.haxx.se/mail/lib-2008-05/0011.html
516
517 Daniel Stenberg (1 May 2008)
518 - Bart Whiteley provided a patch that made libcurl work properly when an app
519   uses the CURLOPT_OPENSOCKETFUNCTION callback to create a unix domain socket
520   to a http server.
521
522 Daniel Stenberg (29 Apr 2008)
523 - To make it easier for applications that want lots of magic stuff done on
524   redirections and thus cannot use CURLOPT_FOLLOWLOCATION easily, we now
525   introduce the new CURLINFO_REDIRECT_URL option that lets applications
526   extract the URL libcurl would've redirected to if it had been told to. This
527   then enables the application to continue to that URL as it thinks is
528   suitable, without having to re-implement the magic of creating the new URL
529   from the Location: header etc. Test 1029 verifies it.
530
531 Yang Tse (29 Apr 2008)
532 - Improved easy interface resolving timeout handling in c-ares enabled builds
533
534 Daniel Fandrich (28 Apr 2008)
535 - Added test 1028 to test an HTTP redirect to a FTP URL.
536
537 Daniel Stenberg (28 Apr 2008)
538 - Norbert Frese filed bug report #1951588: "Problem with curlftpfs and
539   libcurl" (http://curl.haxx.se/bug/view.cgi?id=1951588) which seems to be an
540   identical report to what Denis Golovan reported in
541   http://curl.haxx.se/mail/lib-2008-02/0108.html The FTP code didn't reset the
542   user/password pointers properly even though there might've been a new
543   struct/cconnection getting used.
544
545 Daniel Stenberg (26 Apr 2008)
546 - Reverted back to use automake 1.9.6 in the next release (from automake
547   1.10.1) since it *still* suffers from Solaris-related bugs. Our previous
548   automake 1.10 problem was reported in bug #1701360
549   (http://curl.haxx.se/bug/view.cgi?id=1701360) and this recent problem was
550   bug #1944825 (http://curl.haxx.se/bug/view.cgi?id=1944825). I have not
551   personally approached the automake team about either one of these but I
552   figure we need a Solaris 10 guy to do it!
553   
554 Yang Tse (25 Apr 2008)
555 - Added 'timeout' and 'delay' attributes support for the test harness
556   <command> subsection.
557
558 Daniel Fandrich (24 Apr 2008)
559 - Made --stderr able to redirect all stderr messages.
560
561 Yang Tse (23 Apr 2008)
562 - Improve synchronization between test harness runtests.pl script
563   and test harness servers to minimize risk of false test failures.
564
565 Daniel Fandrich (22 Apr 2008)
566 - Added support for running on Symbian OS.
567
568 Daniel Fandrich (18 Apr 2008)
569 - Added test cases 1026 and 1027 to do some rudimentary tests on the --manual
570   and --help options.
571
572 Michal Marek (14 Apr 2008)
573 - allow disabling the typechecker by defining CURL_DISABLE_TYPECHECK, as
574   discussed in http://curl.haxx.se/mail/lib-2008-04/0291.html
575
576 Daniel Stenberg (14 Apr 2008)
577 - Stefan Krause reported a case where the OpenSSL handshake phase wasn't
578   properly acknowledging the timeout values, like if you pulled the network
579   plug in the midst of it.
580
581 - Andre Guibert de Bruet fixed a second case of not checking the malloc()
582   return code in the Negotiate code.
583
584 - Sandor Feldi reported bug #1942022
585   (http://curl.haxx.se/bug/view.cgi?id=1942022) pointing out a mistake in the
586   lib/Makefile.vc[68] makefiles' release-ssl-dll target.
587
588 - Brock Noland reported that curl behaved differently depending on which order
589   you used -i and -I.
590
591 Daniel Stenberg (12 Apr 2008)
592 - Andre Guibert de Bruet found and fixed a case where malloc() was called but
593   was not checked for a NULL return, in the Negotiate code.
594
595 Daniel Fandrich (9 Apr 2008)
596 - Added test cases 1024 & 1025 to test a scenario similar to the one reported
597   by Ben Combee where libcurl would send the wrong cookie to a redirected
598   server.  libcurl was doing the right thing in these test cases.
599
600 Michal Marek (7 Apr 2008)
601 - Fix the MIT / Heimdal check for good:
602   Define HAVE_GSSMIT if <gssapi/{gssapi.h,gssapi_generic.h,gssapi_krb5.h}> are
603   available, otherwise define HAVE_GSSHEIMDAL if <gssapi.h> is available.
604   
605   Only define GSS_C_NT_HOSTBASED_SERVICE to gss_nt_service_name if
606   GSS_C_NT_HOSTBASED_SERVICE isn't declared by the gssapi headers. This should
607   avoid breakage in case we wrongly recognize Heimdal as MIT again.
608
609 Daniel Stenberg (5 Apr 2008)
610 - Alexey Simak fixed curl_easy_reset() to reset the max redirect limit properly
611
612 - Based on the Debian bug report #474224 that complained about the FTP error
613   message when libcurl doesn't get a 220 back immediately on connect, I now
614   changed it to be more specific on what the problem is. Also worth noticing:
615   while the bug report contains an example where the response is:
616
617     421 There are too many connected users, please try again later
618
619   we cannot assume that the error message will always be this readable nor
620   that it fits within a particular boundary etc.
621
622 Daniel Fandrich (3 Apr 2008)
623 - Added test627 to test SFTP with CURLOPT_NOBODY
624
625 Daniel Stenberg (3 Apr 2008)
626 - Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to
627   GET simply because previously when you set CURLOPT_NOBODY to TRUE first and
628   then FALSE you'd end up in a broken state where a HTTP request would do a
629   HEAD by still act a lot like for a GET and hang waiting for the content etc.
630
631 - Scott Barrett added support for CURLOPT_NOBODY over SFTP
632
633 Daniel Fandrich (3 Apr 2008)
634 - Made sure that curl_global_init is called in all the multithreaded
635   example programs.
636
637 Michal Marek (31 Mar 2008)
638 - Removed the generated ca-bundle.h file. The verbatim value of $ca and
639   $capath is known to configure, so it can be defined in config.h instead.
640
641 Daniel Stenberg (31 Mar 2008)
642 - Added CURLFORM_STREAM as a supported option to curl_formadd() to allow an
643   application to provide data for a multipart with the read callback. Note
644   that the size needs to be provided with CURLFORM_CONTENTSLENGTH when the
645   stream option is used. This feature is verified by the new test case
646   554. This feature was sponsored by Xponaut.
647
648 Daniel Fandrich (30 Mar 2008)
649 - Changed the makefile so the doc/examples/ programs are never built in a
650   normal build/install (only with the 'make check' target), so that a
651   build failure in the examples isn't fatal.
652
653 Version 7.18.1 (30 March 2008)
654
655 Daniel Stenberg (28 Mar 2008)
656 - Stephen Collyer pointed out that configure --with-libssh2 without a given
657   path didn't work properly.
658
659 Daniel Stenberg (27 Mar 2008)
660 - As found out and reported by Dan Petitt, libcurl didn't show progress/call
661   the progress callback for the first (potentially huge) piece of body data
662   sent together with the POST request headers in the initial send().
663
664 Daniel Stenberg (25 Mar 2008)
665 - Made setting the CURLOPT_SSL_CTX_FUNCTION option return a failure in case
666   libcurl wasn't built to use OpenSSL as that is a prerequisite for this
667   option to function!
668
669 Daniel Stenberg (22 Mar 2008)
670 - Fixed the problem with doing a zero byte SCP transfer, verified with test
671   case 617 (which was added by Daniel Fandrich 5 Mar 2008).
672
673 Daniel Fandrich (20 Mar 2008)
674 - Fixed a problem where curl-config --protocols could erroneously show LDAPS
675   support when curl didn't even have regular LDAP support.  It looks like
676   this could happen when the --enable-ldaps configure switch is given but
677   configure couldn't find the LDAP headers or libraries.
678
679 Michal Marek (20 Mar 2008)
680 - Added --with-ca-path=DIRECTORY configure option to use an openSSL CApath by
681   default instead of a ca bundle. The configure script will also look for a
682   ca path if no ca bundle is found and no option given.
683
684 - Fixed detection of previously installed curl-ca-bundle.crt
685
686 Daniel Fandrich (18 Mar 2008)
687 - Added test 626 to reproduce an infinite loop when given an invalid
688   SFTP quote command reported by Vincent Le Normand, and fixed it.
689
690 Michal Marek (18 Mar 2008)
691 - Added curl_easy_getinfo typechecker.
692
693 - Added macros for curl_share_setopt and curl_multi_setopt to check at least
694   the correct number of arguments.
695
696 Daniel Fandrich (13 Mar 2008)
697 - Added tests 622-625 to test SFTP/SCP uploads. Test 625 was an attempt to
698   reproduce the --ftp-create-dirs problem reported by Brian Ulm, but that
699   seems to need a call curl_easy_reset() which this test case doesn't do.
700
701 Daniel Stenberg (13 Mar 2008)
702 - Brian Ulm figured out that if you did an SFTP upload with
703   CURLOPT_FTP_CREATE_MISSING_DIRS to create a directory, and then re-used the
704   handle and uploaded another file to another directory that needed to be
705   created, the second upload would fail. Another case of a state variable that
706   wasn't properly reset between requests.
707
708 - I rewrote the 100-continue code to use a single state variable instead of
709   the previous two ones. I think it made the logic somewhat clearer.
710
711 Daniel Stenberg (11 Mar 2008)
712 - Dmitry Popov filed bug report #1911069
713   (http://curl.haxx.se/bug/view.cgi?id=1911069) that identified a race
714   condition in the name resolver code when the DNS cache is shared between
715   multiple easy handles, each running in simultaneous threads that could cause
716   crashes.
717
718 - Added a macro for curl_easy_setopt() that accepts three arguments and simply
719   does nothing with them, just to make sure libcurl users always use three
720   arguments to this function. Due to its use of ... for the third argument, it
721   is otherwise hard to detect abuse.
722
723 Michal Marek (11 Mar 2008)
724 - Added a type checking macro for curl_easy_setopt(), needs gcc-4.3 and only
725   works in C mode atm (http://curl.haxx.se/mail/lib-2008-02/0267.html ,
726   http://curl.haxx.se/mail/lib-2008-02/0292.html )
727
728 Daniel Fandrich (10 Mar 2008)
729 - Added tests 618-621 to test SFTP/SCP transfers of more than one file
730   (test 620 tests the just-fixed problem reported by Brian Ulm).
731
732 Daniel Stenberg (9 Mar 2008)
733 - Brian Ulm reported a crash when doing a second SFTP transfer on a re-used
734   easy handle if curl_easy_reset() was used between them. I fixed it and Brian
735   verified that it cured his problem.
736
737 - Brian Ulm reported that if you first tried to download a non-existing SFTP
738   file and then fetched an existing one and re-used the handle, libcurl would
739   still report the second one as non-existing as well! I fixed it and Brian
740   verified that it cured his problem.
741
742 Michal Marek (6 Mar 2008)
743 - Fix the gssapi configure check to detect newer MIT Kerberos (patch by
744   Michael Calmer)
745
746 Yang Tse (6 Mar 2008)
747 - Fix regression on Curl_socket_ready() and Curl_poll() so that these will
748   again fail on select/poll errors different than EINTR.
749
750 Daniel Fandrich (5 Mar 2008)
751 - Fixed the test harness so it will write out zero-length data files.
752
753 - Added tests 616 and 617 to see how SFTP and SCP cope with zero-length
754   files, as questioned by Mike Protts. SFTP does for me but SCP doesn't
755   so test 617 is disabled for now.
756
757 Daniel S (4 Mar 2008)
758 - Mike Protts brought a patch that makes resumed transfers work with SFTP.
759
760 Daniel S (1 Mar 2008)
761 - Anatoli Tubman found and fixed a crash with Negotiate authentication used on
762   a re-used connection where both requests used Negotiate.
763
764 Guenter Knauf (26 Feb 2008)
765 - Kaspar Brand provided a patch to support server name indication (RFC 4366).
766
767 Daniel S (25 Feb 2008)
768 - Kaspar Brand made GnuTLS-built libcurl properly acknowledge the option that
769   forces it to prefer SSLv3.
770
771 Daniel S (23 Feb 2008)
772 - Sam Listopad provided a patch in feature-request #1900014
773   http://curl.haxx.se/bug/feature.cgi?id=1900014 that makes libcurl (built to
774   use OpenSSL) support a full chain of certificates in a given PKCS12
775   certificate.
776
777 Daniel S (22 Feb 2008)
778 - Georg Lippitsch made the src/Makefile.vc6 makefile use the same memory model
779   options as the lib/Makefile.vc6 already did.
780
781 Daniel S (21 Feb 2008)
782 - Zmey Petroff found a crash when libcurl accessed a NULL pointer, which
783   happened if you set the connection cache size to 1 and for example failed to
784   login to an FTP site. Bug report #1896698
785   (http://curl.haxx.se/bug/view.cgi?id=1896698)
786
787 Daniel S (20 Feb 2008)
788 - Fixed test case 405 to not fail when libcurl is built with GnuTLS
789
790 - Based on initial work done by Gautam Kachroo to address a bug, we now keep
791   better control at the exact state of the connection's SSL status so that we
792   know exactly when it has completed the SSL negotiation or not so that there
793   won't be accidental re-uses of connections that are wrongly believed to be
794   in SSL-completed-negotiate state.
795
796 - We no longer support setting the CURLOPT_URL option from inside a callback
797   such as the CURLOPT_SSL_CTX_FUNCTION one treat that as if it was a Location:
798   following. The patch that introduced this feature was done for 7.11.0, but
799   this code and functionality has been broken since about 7.15.4 (March 2006)
800   with the introduction of non-blocking OpenSSL "connects".
801
802   It was a hack to begin with and since it doesn't work and hasn't worked
803   correctly for a long time and nobody has even noticed, I consider it a very
804   suitable subject for plain removal. And so it was done.
805
806 Guenter Knauf (19 Feb 2008)
807 - We do no longer support SSLv2 by default since it has known flaws.
808   Kaspar Brand provided a patch for all supported SSL toolkits.
809  
810 Daniel Fandrich (19 Feb 2008)
811 - Added test309 to test HTTP redirect to HTTPS URL
812
813 Daniel S (18 Feb 2008)
814 - We're no longer providing a very old ca-bundle in the curl tarball. You can
815   get a fresh one downloaded and created with 'make ca-bundle' or you can get
816   one from here => http://curl.haxx.se/docs/caextract.html if you want a fresh
817   new one extracted from Mozilla's recent list of ca certs.
818
819   The configure option --with-ca-bundle now lets you specify what file to use
820   as default ca bundle for your build. If not specified, the configure script
821   will check a few known standard places for a global ca cert to use.
822
823 Daniel S (17 Feb 2008)
824 - Jerome Muffat-Meridol helped me fix Curl_done() to close the current
825   connection by force when it was called before the entire request is
826   completed, simply because we can't know if the connection really can be
827   re-used safely at that point.
828
829 - Based on the same debugging logic, I've also made Curl_http_done() not
830   return CURLE_GOT_NOTHING if called "prematurely". This should have no real
831   effect to anything but the code makes more sense like this.
832   
833 Daniel S (15 Feb 2008)
834 - Made the gnutls code path not even try to get the server cert if no peer
835   verification is requested. Previously it would even return failure if gnutls
836   failed to get the server cert even though no verification was asked for.
837   Public server showing the problem: https://www.net222.caisse-epargne.fr
838
839 - Fix my Curl_timeleft() leftover mistake in the gnutls code
840
841 - Pooyan McSporran found and fixed a flaw where you first would do a normal
842   http request and then you'd reuse the handle and replace the Accept: header,
843   as then libcurl would send two Accept: headers!
844
845 Daniel S (11 Feb 2008)
846 - Yang Tse pointed out a few remaining quirks from my timeout refactoring from
847   Feb 7 that didn't abort properly on timeouts. These are actually old
848   problems but now they should be fixed.
849
850 Yang Tse (10 Feb 2008)
851 - Bug report #1888932 (http://curl.haxx.se/bug/view.cgi?id=1888932) points out
852   and provides test program that demonstrates that libcurl might not set error
853   description message for error CURLE_COULDNT_RESOLVE_HOST for Windows threaded
854   name resolver builds. Fixed now.
855
856 Daniel Fandrich (8 Feb 2008)
857 - Added key words to all SSL-using tests so they can be skipped if necessary.
858   Removed a few unnecessary requires SSL statements.
859
860 Daniel S (8 Feb 2008)
861 - Mike Hommey filed and fixed bug report #1889856
862   (http://curl.haxx.se/bug/view.cgi?id=1889856): When using the gnutls ssl
863   layer, cleaning-up and reinitializing curl ends up with https requests
864   failing with "ASN1 parser: Element was not found" errors. Obviously a
865   regression added in 7.16.3.
866
867 Yang Tse (8 Feb 2008)
868 - Improved test harness SCP/SFTP start up server verification, doing a real
869   connection to the sftp server, authenticating and running a simple sftp
870   pwd command using the test harness generated configuration and key files.
871
872 Daniel S (8 Feb 2008)
873 - Günter Knauf added lib/mk-ca-bundle.pl which gets the Firefox ca bundle and
874   creates a suitable ca-bundle.crt file in PEM format for use with curl. The
875   recommended way to run it is to use 'make ca-bundle' in the build tree root.
876
877 Daniel Fandrich (7 Feb 2008)
878 - Added tests 1022 and 1023 to validate output of curl-config --version and
879   --vernum
880
881 Daniel S (7 Feb 2008)
882 - Refactored a lot of timeout code into a few functions in an attempt to make
883   them all use the same (hopefully correct) logic to make it less error-prone
884   and easier to introduce library-wide where it should be used.
885
886 Yang Tse (6 Feb 2008)
887 - Fix an issue in strdup replacement function when dealing with absolutely
888   huge strings. Only systems without a standard strdup would be affected.
889
890 Daniel S (3 Feb 2008)
891 - Dmitry Kurochkin cleaned up the pipelining code and removed the need for and
892   use of the "is_in_pipeline" struct field.
893
894 - I wrote up and added the threaded-ssl.c example source code that shows how
895   to do multi-threaded downloads of HTTPS files with a libcurl that is built
896   with OpenSSL. It uses pthreads for the threading.
897
898 Daniel S (31 Jan 2008)
899 - Niklas Angebrand made the cookie support in libcurl properly deal with the
900   "HttpOnly" feature introduced by Microsoft and apparently also supported by
901   Firefox: http://msdn2.microsoft.com/en-us/library/ms533046.aspx . HttpOnly
902   is now supported when received from servers in HTTP headers, when written to
903   cookie jars and when read from existing cookie jars.
904
905   I modified test case 31 and 46 to also do some basic HttpOnly testing.
906
907 - Dmitry Kurochkin moved several struct fields from the connectdata struct to
908   the SingleRequest one to make pipelining better. It is a bit tricky to keep
909   them in the right place, to keep things related to the actual request or to
910   the actual connection in the right place.
911
912 Daniel S (29 Jan 2008)
913 - Dmitry Kurochkin fixed Curl_done() for pipelining, as it could previously
914   crash!
915
916 - Michal Marek fixed minor mistake in test case 553 that prevented it from
917   working on other IP-addresses or port numbers.
918
919 Version 7.18.0 (28 January 2008)
920
921 Daniel S (27 Jan 2008)
922 - Dmitry Kurochkin: In "real world" testing I found more bugs in
923   pipelining. Broken connection is not restored and we get into infinite
924   loop. It happens because of wrong is_in_pipeline values.
925
926 Daniel S (26 Jan 2008)
927 - Kevin Reed filed bug report #1879375
928   (http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
929   got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
930   proxy authentication and the proxy replies with an auth (like NTLM) and then
931   closes the connection after that initial informational response.
932
933   libcurl would not properly re-initialize the connection to the proxy and
934   continue the auth negotiation like supposed. It does now however, as it will
935   now detect if one or more authentication methods were available and asked
936   for, and will thus retry the connection and continue from there.
937
938 - I made the progress callback get called properly during proxy CONNECT.
939
940 Daniel S (23 Jan 2008)
941 - Igor Franchuk pointed out that CURLOPT_COOKIELIST set to "ALL" leaked
942   memory, and so did "SESS". Fixed now.
943
944 Yang Tse (22 Jan 2008)
945 - Check poll.h at configuration time, and use it when sys/poll.h unavailable
946
947 Daniel S (22 Jan 2008)
948 - Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
949   that it is bad anyway. Starting now, removing a handle that is in used in a
950   pipeline will break the pipeline - it'll be set back up again but still...
951
952 Yang Tse (21 Jan 2008)
953 - Disable ldap support for cygwin builds, since it breaks whole build process.
954   Fixing it will affect other platforms, so it is postponed for another release.
955
956 Daniel S (18 Jan 2008)
957 - Lau Hang Kin found and fixed a problem with the multi interface when doing
958   CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
959   properly during that state, due to a missing case in the switch in the
960   multi_getsock() function.
961
962 Yang Tse (17 Jan 2008)
963 - Don't abort tests 518 and 537 when unable to raise the open-file soft limit.
964
965 Daniel S (16 Jan 2008)
966 - Nathan Coulter's patch that makes runtests.pl respect the PATH when figuring
967   out what valgrind to run.
968
969 Yang Tse (16 Jan 2008)
970 - Improved handling of out of memory in the command line tool that afected
971   data url encoded HTTP POSTs when reading it from a file.
972
973 Daniel S (16 Jan 2008)
974 - Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
975   previously had a number of flaws, perhaps most notably when an application
976   fired up N transfers at once as then they wouldn't pipeline at all that
977   nicely as anyone would think... Test case 530 was also updated to take the
978   improved functionality into account.
979
980 - Calls to Curl_failf() are not supposed to provide a trailing newline as the
981   function itself adds that. Fixed on 50 or something strings!
982
983 Daniel S (15 Jan 2008)
984 - I made the torture test on test 530 go through. This was actually due to
985   silly code left from when we switched to let the multi handle "hold" the dns
986   cache when using the multi interface... Of course this only triggered when a
987   certain function call returned error at the correct moment.
988
989 Daniel S (14 Jan 2008)
990 - Joe Malicki filed bug report #1871269
991   (http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
992   problem that occurred when doing a large HTTP POST request with the
993   response-body read from a callback.
994
995 Daniel S (12 Jan 2008)
996 - I re-arranged the curl --help output. All the options are now sorted on
997   their long option names and all descriptions are one-liners.
998
999 - Eric Landes provided the patch (edited by me) that introduces the
1000   --keepalive-time to curl to set the keepalive probe interval. I also took
1001   the opportunity to rename the recently added no-keep-alive option to
1002   no-keepalive to keep a consistent naming and to avoid getting two dashes in
1003   these option names. Eric also provided an update to the man page for the new
1004   option.
1005
1006 Daniel S (11 Jan 2008)
1007 - Daniel Egger made CURLOPT_RANGE work on file:// URLs the very same way it
1008   already worked for FTP:// URLs.
1009
1010 - I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
1011   spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
1012   performance for the upload resume cases where you want to upload the last
1013   few bytes of a very large file. To implement this decently, I had to switch
1014   the client code for uploading from fopen()/fread() to plain open()/read() so
1015   that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
1016   on systems that offer support for that.
1017
1018 Daniel S (10 Jan 2008)
1019 - Michal Marek made curl-config --libs not include /usr/lib64 in the output
1020   (it already before skipped /usr/lib).  /usr/lib64 is the default library
1021   directory on many 64bit systems and it's unlikely that anyone would use the
1022   path privately on systems where it's not.
1023
1024 - Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
1025   libcurl to seek in a given input stream. This is particularly important when
1026   doing upload resumes when there's already a huge part of the file present
1027   remotely. Before, and still if this callback isn't used, libcurl will read
1028   and through away the entire file up to the point to where the resuming
1029   begins (which of course can be a slow opereration depending on file size,
1030   I/O bandwidth and more). This new function will also be preferred to get
1031   used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when
1032   doing multi-stage HTTP auth with POST/PUT.
1033
1034 - Nikitinskit Dmitriy filed bug report #1868255
1035   (http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
1036   and fixes a problem with parsing WWW-Authenticate: headers with additional
1037   spaces in the line that the parser wasn't written to deal with.
1038
1039 Daniel S (8 Jan 2008)
1040 - Introducing curl_easy_pause() and new magic return codes for both the read
1041   and the write callbacks that now can make a connection's reading and/or
1042   writing get paused.
1043
1044 Daniel S (6 Jan 2008)
1045 - Jeff Johnson filed bug report #1863171
1046   (http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
1047   libcurl's date parser didn't accept a +1300 time zone which actually is used
1048   fairly often (like New Zealand's Dailight Savings Time), so I modified the
1049   parser to now accept up to and including -1400 to +1400.
1050
1051 Daniel S (5 Jan 2008)
1052 - Based on further discussion on curl-library, I reverted yesterday's SOCKS5
1053   code to instead introduce support for a new proxy type called
1054   CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy
1055   instead of IP address and there's thus no longer any need for a new
1056   curl_easy_setopt() option.
1057
1058   The default SOCKS5 proxy is again back to sending the IP address to the
1059   proxy.  The new curl command line option for enabling sending host name to a
1060   SOCKS5 proxy is now --socks5-hostname.
1061
1062 Daniel S (4 Jan 2008)
1063 - Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
1064   proxy do the host name resolving and only if --socks5ip (or
1065   CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and
1066   pass on the IP address only to the proxy.
1067
1068 Yang Tse (3 Jan 2008)
1069 - Modified test harness to allow SCP, SFTP and SOCKS4 tests to run with
1070   OpenSSH 2.9.9, SunSSH 1.0 or later versions. SOCKS5 tests need OpenSSH
1071   3.7, SunSSH 1.0 or later.
1072
1073 Daniel S (2 Jan 2008)
1074 - I fixed two cases of missing return code checks when handling chunked
1075   decoding where a write error (or abort return from a callback) didn't stop
1076   libcurl's processing.
1077
1078 - I removed the socklen_t use from the public curl/curl.h header and instead
1079   made it an unsigned int. The type was only used in the curl_sockaddr struct
1080   definition (only used by the curl_opensocket_callback). On all platforms I
1081   could find information about, socklen_t is 32 unsigned bits large so I don't
1082   think this will break the API or ABI. The main reason for this change is of
1083   course for all the platforms that don't have a socklen_t definition in their
1084   headers to build fine again. Providing our own configure magic and custom
1085   definition of socklen_t on those systems proved to work but was a lot of
1086   cruft, code and extra magic needed - when this very small change of type
1087   seems harmless and still solves the missing socklen_t problem.
1088
1089 - Richard Atterer brought a patch that added support for SOCKS4a proxies,
1090   which is an inofficial PROXY4 variant that sends the hostname to the proxy
1091   instead of the resolved address (which is already supported by SOCKS5).
1092   --socks4a is the curl command line option for it and CURLOPT_PROXYTYPE can
1093   now be set to CURLPROXY_SOCKS4A as well.
1094
1095 Daniel S (1 Jan 2008)
1096 - Mohun Biswas pointed out that --libcurl generated a source code with an int
1097   function but without a return statement. While fixing that, I also took care
1098   about adding some better comments for the generated code.
1099