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