5 \___|\___/|_| \_\_____|
9 Daniel Stenberg (15 Dec 2010)
10 - RELEASE-NOTES: synced with a865bd9fbaaa43e5c
12 - IsPipeliningPossible: only for HTTP
14 The function that checks if pipelining is possible now requires the HTTP
15 bit to be set so that it doesn't mistakenly tries to do it for other
18 Bug: http://curl.haxx.se/mail/lib-2010-12/0152.html
19 Reported by: Dmitri Shubin
21 - multi_runsingle: don't timeout completed handles
23 The generic timeout code must not check easy handles that are already
24 completed. Going to completed (again) within there risked decreasing the
25 number of alive handles again and thus it could go negative.
27 This regression bug was added in 7.21.2 in commit ca10e28f06f1
29 - symbols-in-versions: CURLOPT_KEYPASSWD fixed
31 It was added in 7.17.0 and is not deprecated
33 - RELEASE-NOTES: synced with c28443c551825
35 Dan Fandrich (8 Dec 2010)
36 - Mention that using other libraries can affect app licensing
39 - easy: fix compiler warning: end-of-loop code not reached
41 Daniel Stenberg (6 Dec 2010)
42 - disconnect: pass on the dead_connection argument
44 Cleanup fix after Kamil's commit 5c7c9a768d0093
47 - sws: fix compier warning: external definition with no prior declaration
49 Daniel Stenberg (6 Dec 2010)
50 - [Heinrich Ko brought this change]
52 ossl_connect_common: detect connection re-use
54 ossl_connect_common() now checks whether or not 'struct
55 connectdata->state' is equal 'ssl_connection_complete' and if so, will
56 return CURLE_OK with 'done' set to 'TRUE'. This check prevents
57 ossl_connect_common() from creating a new ssl connection on an existing
58 ssl session which causes openssl to fail when it tries to parse an
59 encrypted TLS packet since the cipher data was effectively thrown away
60 when the new ssl connection was created.
62 Bug: http://curl.haxx.se/mail/lib-2010-11/0169.html
64 Kamil Dudka (6 Dec 2010)
65 - url: provide dead_connection flag in Curl_handler::disconnect
67 It helps to prevent a hangup with some FTP servers in case idle session
68 timeout has exceeded. But it may be useful also for other protocols
69 that send any quit message on disconnect. Currently used by FTP, POP3,
73 - ssh: fix a download resume point calculation
75 Daniel Stenberg (5 Dec 2010)
76 - Curl_wait_for_resolv: correct timeout
78 When looping in this function and checking for the timeout being
79 expired, it was not updating the reference time when calculating the
80 timediff since previous round which made it think each subsequent loop
81 to have taken longer than it actually did.
83 I also modified the function to use the generic Curl_timeleft() function
84 instead of the custom logic.
86 Bug: http://curl.haxx.se/bug/view.cgi?id=3112579
88 - Curl_send/recv_plain: return errno on failure
90 When send() and recv() fail, we now store the errno value to allow the
93 Bug: http://curl.haxx.se/bug/view.cgi?id=3128121
96 Guenter Knauf (5 Dec 2010)
97 - Updated OpenSSL version.
100 - fix compiler warning: conversion may lose significant bits
102 - fix compiler warning: assignment within conditional expression
104 - fix getinfo CURLINFO_LOCAL* for reused connections (take 2) follow-up
106 - Show address string from proper buffer in case of connection failure.
108 - Try next address when inet_ntop() fails.
110 Daniel Stenberg (3 Dec 2010)
111 - version-check: added brief documentation
113 and the traditional source header
115 Yang Tse (3 Dec 2010)
116 - build: provide SIZEOF_SIZE_T DOS definition
118 - build: lib/config.dos renamed to lib/config-dos.h
120 - build: provide SIZEOF_SIZE_T VMS definition
122 - build: move config-vms.h from subdir 'packages/vms' into 'lib'
124 - build: provide SIZEOF_SIZE_T definition for non-configure builds
126 - build: provide SIZEOF_SIZE_T netware definition
128 - configure: undo using autobuilds to temporarily verify strict aliasing warnings.
130 - fix compiler warning: rounding, sign extension, or loss of accuracy may result
132 - fix compiler warning: statement is not reachable
134 - fix compiler warning: conversion may lose significant bits
136 - connect: fix compiler warning: unused variable
138 - fix getinfo CURLINFO_LOCAL* for reused connections (take 2)
140 - fix getinfo CURLINFO_LOCAL* for reused connections follow-up
142 Reinstate IPV6 build variable that got removed.
144 - fix getinfo CURLINFO_LOCAL* for reused connections
146 Failed to commit this file changes along with the others.
148 - fix getinfo CURLINFO_LOCAL* for reused connections
150 - atoi: remove atoi usage
152 - multi: fix compiler warning: conversion may lose significant bits follow-up
154 - ftp: fix 'bool' data type implementation dependant usage
156 - multi: fix compiler warning: conversion may lose significant bits
158 - multi: fix compiler warning: enumerated type mixed with another type
160 - hostip: edit comment
162 - xattr: fix compiler warning: enumerated type mixed with another type
166 - symbol-scan: use configure script knowledge about how to run the C preprocessor
168 - ignore file generated by configure
170 - curl_multi_info_read: fix compiler warning: conversion may lose significant bits
172 - inet_pton: fix compiler warning
174 warning C4146: unary minus operator applied to unsigned type, result still unsigned
176 - Curl_getaddrinfo_ex: sanitize function results follow-up.
178 - Curl_getaddrinfo_ex: sanitize function results.
180 Ensure that spurious results from system's getaddrinfo() ares not propagated
181 by Curl_getaddrinfo_ex() into the library.
183 Also ensure that the ai_addrlen member of Curl_getaddrinfo_ex()'s output linked
184 list of Curl_addrinfo structures has appropriate family-specific address size.
186 Kamil Dudka (22 Nov 2010)
187 - openldap: use remote port in URL passed to ldap_init_fd()
189 ... not the proxy port. It makes no difference unless a proxy is used.
191 Yang Tse (20 Nov 2010)
192 - gtls: define and use gtls_EAGAIN, gtls_EINTR and gtls_EIO.
194 Winsock builds clobber some errno.h defines in setup_once.
196 Dan Fandrich (19 Nov 2010)
197 - Added a couple examples that were missing from the tar ball
199 - Check for errors while preprocessing curl.h in test 1119
201 This showed a problem when running the test out-of-tree, so
202 an include path is now being added to pick up the generated
205 - Use the 3-argument open for compatibility with older perls
207 - [Matthias Bolte brought this change]
209 Detect socket errors in GnuTLS on Windows
211 On Windows, translate WSAGetLastError() to errno values as GNU
212 TLS does it internally, too. This is necessary because send() and
213 recv() on Windows don't set errno when they fail but GNU TLS
214 expects a proper errno value.
216 Bug: http://curl.haxx.se/bug/view.cgi?id=3110991
218 Yang Tse (19 Nov 2010)
219 - test servers: fix strict aliasing compiler warnings
221 - configure: use autobuilds to temporarily verify strict aliasing warnings.
223 Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing
224 rules and warnings. Given that cross-compiled targets autobuilds do not run the
226 Julien Chaffraix (17 Nov 2010)
227 - configure: Prevent link errors with --librtmp.
229 If --librtmp was specified but pkg-config could not find the librtmp
230 file, we would have undefined symbols when linking curl.
232 We prevent this error by disabling this case as suggested on the mailing
235 Daniel Stenberg (15 Nov 2010)
236 - RELEASE-NOTES: synced with cbf4961bf3e4
238 - gnutls->handshake: improved timeout handling
240 When no timeout is set, we call the socket_ready function with a timeout
241 value of 0 during handshake, which makes it loop too much/fast in this
242 function. It also made this function return CURLE_OPERATION_TIMEDOUT
243 wrongly on a slow handshake.
245 However, the particular bug report that highlighted this problem is not
246 solved by this fix, as this fix only makes the more proper error get
249 Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594150
250 Reported by: Johannes Ernst
252 Julien Chaffraix (13 Nov 2010)
253 - urldata: Capitalize enum protect_level values.
255 This makes it easier to spot the enum values from the variables.
256 Removed some unneeded DEBUGASSERT added in the previous commit.
258 - security: tighten enum protection_level usage.
260 While changing Curl_sec_read_msg to accept an enum protection_level
261 instead of an int, I went ahead and fixed the usage of the associated
264 Some code was assuming that prot_clear == 0. Fixed those to use the
265 proper value. Added assertions prior to any code that would set the
268 Yang Tse (13 Nov 2010)
269 - configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body
271 Daniel Stenberg (12 Nov 2010)
272 - curl.1: "a file", not an
274 - version-check.pl: display version number for symbols
276 This script is the start of a helper tool that scans a source code and
277 outputs the most recent libcurl version it finds symbols for. Meaning
278 that if there's no conditions in the code, that's the earliest libcurl
279 version the scanned code requires.
281 It is not added to the Makefile.am yet as it is still a bit crude, but
282 I'm committing it to keep it and allow us to work on it.
284 - [Adam Light brought this change]
286 Makefile.vc6: fixed the xattr.c compile
288 Julien Chaffraix (12 Nov 2010)
289 - krb5: Use GSS_ERROR to check for error.
291 This is the advised way of checking for errors in the GSS-API RFC.
292 Also added some '\n' to the error message so that they are not mixed
295 - security: Pass the right parameter to init.
297 init is expecting app_data. Passing it the struct connecdata would make
300 Daniel Stenberg (11 Nov 2010)
301 - HTTP Auth: Add CURLAUTH_ONLY
303 This is a meta symbol. OR this value together with a single specific
304 auth value to force libcurl to probe for un-restricted auth and if not,
305 only that single auth algorithm is acceptable.
307 For example you can use CURLAUTH_DIGEST|CURLAUTH_ONLY to make libcurl
308 first probe for what method to use, but yet only consider Digest to be
311 Using _only_ CURLAUTH_DIGEST without the CURLAUTH_ONLY field, will make
312 libcurl explicitly use Digest right away and not do any probing.
314 - ip_version: moved to connection struct
316 The IP version choice was previously only in the UserDefined struct
317 within the SessionHandle, but since we sometimes alter that option
318 during a request we need to have it on a per-connection basis.
320 I also moved more "init conn" code into the allocate_conn() function
321 which is designed for that purpose more or less.
323 Yang Tse (11 Nov 2010)
324 - buildconf: MAC OS X requires libtool version 1.5.26 or newer
326 MAC OS X requires libtool version 1.5.26 or newer, otherwise
327 configure will mishandle *.dSYM directories when it runs.
329 - configure: remove temporary autobuilds exercising of xattr function tests
331 - configure: use autobuilds to temporarily exercise xattr function tests
333 - xattr: portability fix
335 - curl-functions: provide xattr function tests that also check number of arguments
337 Daniel Stenberg (10 Nov 2010)
338 - test1120: verify FTP response 421
340 curl mustn't try to use the control connection after the 421 is received
342 - ftpserver.pl: spellfix comment
344 - [Rutger Hofman brought this change]
346 TFTP: resend the correct data
348 I found a bug in tftp_tx() in tftp.c. If a data resend is done after
349 reception of an ACK/OACK, the call to sendto is wrong.
351 - [Stefan Tomanek brought this change]
353 write extended attributes by using fsetxattr
355 Instead of reopening the downloaded file, fsetxattr uses the (already
356 open) file descriptor to attach extended attributes. This makes the
357 procedure more robust against errors caused by moved or deleted files.
359 Dan Fandrich (9 Nov 2010)
360 - Check for getinfo errors before setting attributes
362 Kamil Dudka (9 Nov 2010)
363 - ftp: treat server's response 421 as CURLE_OPERATION_TIMEDOUT
365 Bug: https://bugzilla.redhat.com/650255
366 Reported by: Simon H.
368 Daniel Stenberg (9 Nov 2010)
369 - symbols-in-version: add CURL_SOCKET_BAD
371 I also documented the filtering logic in the symbol-scan.pl function to
372 clarify why not all CURL_* symbols are included.
374 Yang Tse (9 Nov 2010)
377 Kamil Dudka (8 Nov 2010)
378 - ftp: close connection as soon as ABOR has been sent
380 ... and do not send ABOR unless really necessary.
382 Bug: https://bugzilla.redhat.com/649347
383 Reported by: Simon H.
385 Daniel Stenberg (8 Nov 2010)
386 - RELEASE-NOTES: synced with fc6c4c10f9faab08
388 I also recounted and updated the command line and libcurl options.
390 - help: indent the --xattr option like the others
392 - curl.1: --resolve documented
394 - CURLOPT_RESOLVE: documented
396 - CURLOPT_USE_SSL: move from FTP options to connection options
398 - xattr-check: correct the comment as well
400 - xattr: use const char * for const strings
402 - setxattr: fix the checks
404 My copy and paste job was a little too much copy and I missed to adjust
405 it properly to sys/xattr.h all over and this is a fix to cure that.
407 - CURLOPT_RESOLVE: added
409 CURLOPT_RESOLVE is a new option that sends along a curl_slist with
410 name:port:address sets that will populate the DNS cache with entries so
411 that request can be "fooled" to use another host than what otherwise
412 would've been used. Previously we've encouraged the use of Host: for
413 that when dealing with HTTP, but this new feature has the added bonus
414 that it allows the name from the URL to be used for TLS SNI and server
415 certificate name checks as well.
417 This is a first change. Surely more will follow to make it decent.
419 Yang Tse (8 Nov 2010)
420 - fix compiler warning
422 Dan Fandrich (7 Nov 2010)
423 - Added os-specific.c and xattr.c to the Symbian build files
425 Yang Tse (7 Nov 2010)
426 - xattr: fix VisualStudio builds
428 - fix snapshot generation
430 Daniel Stenberg (5 Nov 2010)
431 - --libcurl: simplify output
433 Removed the code that was needed for libcurl before 7.19.0 which now is
434 more than two years old.
436 Simplified the top comment and corrected the URL.
438 - [Alfred Gebert brought this change]
440 LDAP: detect non-binary attributes properly
442 If the query result has a binary attribute, the binary attribute is
443 base64 encoded. But all following non binary attributes are also base64
444 encoded which is wrong.
446 This is a test (LDAP server is public).
449 ldap://x500.bund.de:389/o=Bund,c=DE?userCertificate,certificateSerialNumber?sub
452 - xattr: add configure check and #ifdefs
454 setxattr is a glibc call to set extended attributes, so configure now
455 checks for it and the code is adapted to only build when the
456 functionality is present.
458 - [Stefan Tomanek brought this change]
460 save metadata to extended file attributes
462 It is often convinient to track back the source of a once downloaded
463 file; this patch makes curl store the source URL and other metadata
464 alongside the retrieved file by using the extended attributes (if
465 supported by the file system and enabled by --xattr).
467 - test: remove test 580
469 Test 580 is removed again for two reasons:
471 1) Some compilers aren't satisfied by just a data variable called 'test'
472 when first.o wants a function called 'test'. The Solaris compiler says
473 "ld: warning: symbol `test' has differing types:" while the AIX compiler
474 downright rejects it.
476 2) Test case 1119 that was added after this test is way more complete
477 and cover everything test 580 does and more without introducing the same
480 - Revert: use Host: name for SNI and cert name checks
482 This reverts commit b0fd03f5b8d4520dd232a9d13567d16bd0ad8951,
483 4b2fbe1e97891f, afecd1aa13b4f, 68cde058f66b3
485 - TODO-RELEASE: "TLS SNI use Host:" is done
487 262 - Manual setting of TLS Server Name Indication - use Host:
489 - RELEASE-NOTES: synced with 7b823badbcab9d330
491 - curl.1: added a few missing exit codes
493 - certcheck: use the custom Host: name for checks
495 If you use a custom Host: name in a request to a SSL server, libcurl
496 will now use that given name when it verifies the server certificate to
497 be correct rather than using the host name used in the actual URL.
499 - SNI: simplify the custom host name use
501 The redirect check is already done at the position where the customhost
502 field is assigned so there's no point in doing that a second time.
504 - host: get the custom Host: name more genericly
506 When given a custom host name in a Host: header, we can use it for
507 several different purposes other than just cookies, so we rename it and
508 use it for SSL SNI etc.
510 - [Hongli Lai (Phusion) brought this change]
512 SNI: set name to custom Host header
514 OpenSSL SNI host name should be set to the custom Host header, if the
517 - fopen.c: re-indented, fixed previous mistake
519 I've made the code intended using curl-style now to look more like other
522 My previous "fix" was a bit too invasive but is now fixed again.
524 - multi use: call multi_perform even on select() timeouts
526 - example: add smtp-multi.c
528 An example application source code sending SMTP mail with the multi
529 interface. It is based on the code Alona Rossen provided, which in turn
530 is based on existing example/test code, and I converted it even more
531 into a decent example with a fair multi API use, put the info required
532 to edit at the top and I added some comments.
534 - CURLOPT_NOSIGNAL: add blurb about SIGPIPE
536 Dan Fandrich (3 Nov 2010)
537 - Allow building test 580 out of tree
539 Daniel Stenberg (3 Nov 2010)
540 - dist: add symbol-scan.pl to the tarball
542 - test1119: verify symbols-in-versions
544 - runtests: allow tests written as perl scripts
546 If a command is set type="perl", it can now specify a perl program that will
547 be run instead of an ordinary curl or built tool.
549 A perl test automatically disables memory and valgrind debugging.
551 - symbol-scan: verifies symbols-in-versions
553 This new script scans for all enums and #defines used by the curl/curl.h
554 and curl/multi.h headers. Then it reads all symbols mentioned in
555 symbols-in-vesions and make sure that there's no entries missing in
556 there. It then proceeds to verify that the entries that
557 symbols-in-vesions mentions but aren't found in the sources are truly
558 documented as removed.
560 This script is used in the new test case 1119
562 - symbols-in-versions: added 119 missing symbols
564 I've developed a script I call symbol-scan.pl that scans the curl.h and
565 multi.h header files and compare the symbols it finds in there with the
566 symbols symbols-in-versions documents and outputs a report on the
567 differences. Using this I've dug through the history to fill up
568 symbols-in-versions with all the symbols my script found mismatches for.
570 I will commit symbol-scan.pl separatly and think of a way to put it to
571 use in the build/tests so that we from now on will get this in-sync
574 Dan Fandrich (2 Nov 2010)
575 - Added mk580.pl to the tar ball
577 Daniel Stenberg (2 Nov 2010)
578 - symbols-in-versions: added missing symbols
580 - ignore: lib580.c is generated by mk580.pl
582 - test: added test 580 - verifies symbols-in-versions
584 The new perl script mk580.pl generates a C table in a fresh source file
585 named lib580.c and if that compiles fine we know that the file
586 docs/libcurl/symbols-in-versions at least doesn't include any symbols
589 An additional feature would be to somehow scan curl/curl.h and compare
590 with symbols-in-versions to see if there are symbols missing.
592 - spellfix: CURLOPT_TFTP_BLKSIZE it is
594 Kamil Dudka (29 Oct 2010)
595 - ftp: prevent server from hanging on closed data connection
597 Some FTP servers (e.g. Pure-ftpd) end up hanging if we close the data
598 connection before transferring all the requested data. If we send ABOR
599 in that case, it prevents the server from hanging.
601 Bug: https://bugzilla.redhat.com/643656
602 Reported by: Pasi Karkkainen, Patrick Monnerat
604 Dan Fandrich (28 Oct 2010)
605 - Removed a leftover mention of FTP in an error message
607 - Removed the native Makefile.riscos files
609 These haven't worked in at least 8 years due to missing source
610 files, and most active RiscOS developers these days apparently
611 cross-compile anyway.
613 Signed-off-by: James Bursa <james@zamez.org>
615 - Lightened the stack in wc_statemach to permit deeper recursion
617 Also, added a few hints to help compilers to perform tail call
618 recursion optimization.
620 Daniel Stenberg (20 Oct 2010)
621 - SSH: use libssh2_session_handshake()
623 In libssh2 1.2.8, libssh2_session_handshake() replaces
624 libssh2_session_startup() to fix the previous portability problem with
625 the socket type that was too small for win64 and thus easily could cause
628 - SSH: avoid using the libssh2_ prefix
630 It is a bad idea to use the public prefix used by another library and
631 now we realize that libssh2 introduces a symbol in the upcoming version
632 1.2.8 that conflicts with our static function named libssh2_free.
634 - formdata: provide error message
636 When failing to build form post due to an error, the code now does a
637 proper failf(). Previously libcurl would report an error like "failed
638 creating formpost data" when a file wasn't possible to open which was
639 not easy for users to figure out.
641 I also lower cased a function name to be named more curl-style and
642 removed some unnecessary code.
644 - URL-parsing: consider ? a divider
646 The URL parser got a little stricter as it now considers a ? to be a
647 host name divider so that the slightly sloppier URLs work too. The
648 problem that made me do this change was the reported problem with an URL
649 like: www.example.com?email=name@example.com This form of URL is not
650 really a legal URL (due to the missing slash after the host name) but is
651 widely accepted by all major browsers and libcurl also already accepted
652 it, it was just the '@' letter that triggered the problem now.
654 The side-effect of this change is that now libcurl no longer accepts the
655 ? letter as part of user-name or password when given in the URL, which
656 it used to accept (and is tested in test 191). That letter is however
657 mentioned in RFC3986 to be required to be percent encoded since it is
660 Bug: http://curl.haxx.se/bug/view.cgi?id=3090268
662 - curl_easy_setopt.3: spellfix
664 - curl_easy_setopt.3: CURLOPT_USE_SSL is not just for FTP
666 It is for FTP, SMTP, POP3, IMAP at least.
668 - krb4.h: removed unused prototypes
670 - krb4: make a few functions static
672 - TODO-RELEASE: cleanup for 7.21.3 works
674 "SFTP resume with 4GB file does not work" is now removed as I'm sure
675 this is really a libssh2 bug and not a libcurl bug.
677 7.21.2 is released already
679 - RELEASE-NOTES: sync with 09a2d93a0f17ca
681 - http_chunks: remove debug output
683 Accidentally left in there during my previous debugging of this
685 - Curl_setopt: disallow CURLOPT_USE_SSL without SSL support
687 In order to avoid for example the pingpong protocols to issue STARTTLS
688 (or equivalent) even though there's no SSL support built-in.
690 Reported by: Sune Ahlgren
691 Bug: http://curl.haxx.se/mail/archive-2010-10/0045.html
693 - options: check for features for some options
695 Some options, such as the automatic decompression and some SSL related
696 ones now will bail out if the underlying libcurl doesn't have support
697 for the particular feature needed.
699 Dan Fandrich (14 Oct 2010)
700 - Fixed the IPv6 host address in test1203
702 Reported by: Christian Weisgerber
703 Bug: http://curl.haxx.se/bug/view.cgi?id=3087479
705 Daniel Stenberg (14 Oct 2010)
706 - curl_easy_setopt.3: clarify CURLOPT_CRLF
708 The option takes a parameter that should be 1 or 0 to enable or disable
711 URL: http://curl.haxx.se/bug/view.cgi?id=3086428
713 Guenter Knauf (14 Oct 2010)
714 - Some more small Watcom makefile fixes.
716 - Added --noconfigure switch to testcurl.pl.
718 - Modified Watcom makefiles to work on Linux too.
720 - Added MingW32 rtmp target; changed Watcom targets.
722 Modified Watcom targets to avoid backslashs so that they can
725 Daniel Stenberg (13 Oct 2010)
726 - gitignore: ignore Makefile.vc10.dist made by maketgz
728 - curlver.h: start over at 7.21.3
730 - RELEASE-NOTES: start over towards 7.21.3
732 - THANKS: added contributors from 7.21.2
734 Version 7.21.2 (12 Oct 2010)
736 Daniel Stenberg (12 Oct 2010)
737 - RELEASE-NOTES: synced with ecd624b8e774a85
739 - [Julien Chaffraix brought this change]
743 Do not match the trailing '\n' in the regular expression as this would
744 make us dump a ) parenthesis on a new line.
746 This fixes the following error:
748 would get transformed into:
752 Bug: http://curl.haxx.se/mail/lib-2010-10/0065.html
753 Reported by: Dimitre Dimitrov
755 - header_callback: strip off file path separated with backslashes
757 If the filename contains a backslash, only use filename portion. The
758 idea is that even systems that don't handle backslashes as path
759 separators probably want that path removed for convenience.
761 This flaw is considered a security problem, see the curl security
762 vulnerability http://curl.haxx.se/docs/adv_20101013.html
764 Dan Fandrich (12 Oct 2010)
765 - Get the curl source files for Amiga from Makefile.inc
767 This is similar to how it's done in the lib directory.
768 The Amiga build appears to have been broken for a year because
769 of a missing homedir.c
771 - Added section on server-supplied names to security considerations
773 Guenter Knauf (12 Oct 2010)
774 - Fixed Watcom makefile.
776 - Added build bits for librtmp / libssh2 to Watcom makefiles.
778 - Added build bits for librtmp to NetWare makefiles.
780 Daniel Stenberg (12 Oct 2010)
781 - SFTP: more ignoring negative file sizes
783 As the change in 5f0ae7a0626cbe709 added a precaution against negative
784 file sizes that for some reason managed to get returned, this change now
785 introduces the same check at the second place in the code where the file
786 size from the libssh2 stat call is used.
788 This check might not be suitable for a 32 bit curl_off_t, but libssh2.h
789 assumes long long to work and to be 64 bit so I believe such a small
790 curl_off_t will be very unlikely to occur in the wild.
792 - SMTP: debug output for no known auth mechanisms supported
794 ... and some minor source code whitespace edits
796 - test: urlglob error messages have no extra newline anymore
798 Guenter Knauf (11 Oct 2010)
799 - Added build bits for librtmp to MingW32 makefiles.
801 Daniel Stenberg (8 Oct 2010)
802 - RELEASE-NOTES: synced with 61f4cdb73ae4
804 - globbing: fix crash on unballanced open brace
806 Having an open brace without a closing brace caused a segfault.
808 Having a closing brace too many caused a silent error to occur, which
809 caused curl to bail out and return an error code but no error message
810 was shown. It does now!
812 All error message outputs no longer wrongly get _two_ newlines written
813 after the error message.
815 Reported by: Vlad Ureche
816 Bug: http://curl.haxx.se/bug/view.cgi?id=3083942
818 - [Dan Locks brought this change]
820 libcurl.m4: AC_PATH_PROG fixes
822 The invocation of autoconf's AC_PATH_PROG( ) is not quite right for
823 finding curl-config. This fix corrects the negative case (where
824 curl-config is not found).
826 - FAQ: added "How do I submit my patch?"
828 - examples: use example.com in example URLs
830 - TODO-RELEASE: libidn problem not repeatable
832 "261 - configure and libidn" is removed from the list since Julien
833 Chaffraix tried to repeat it but failed and the reporter did not return
834 to provide further details.
836 Reported by: Lyndon Hill
837 Bug: http://curl.haxx.se/mail/lib-2010-07/0029.html
839 - libcurl.m4: mention argument is PREFIX
841 The macro provides a --with-libcurl option that expects a PREFIX to be
842 specified and not actually a "directory" in which libcurl will be found.
843 This now spells that out more clearly.
845 Reported by: Dan Locks
846 Bug: http://curl.haxx.se/bug/view.cgi?id=3079891
848 Guenter Knauf (3 Oct 2010)
849 - Some NetWare makefile tweaks.
851 Renamed SDK_* to NDK_*; made NDK_* defines overwriteable from
852 environment; removed now obsolete YACC macro;
853 moved some curl_config.h defines to IPv6 section since they
854 are only needed when IPv6 is enabled - this makes libcurl compile
855 with older NDKs too which were not IPv6-aware.
857 Daniel Stenberg (2 Oct 2010)
858 - TODO-RELEASE: 416 error fixed
860 "3076808 Requests fail silently following a 416 error" done
862 Julien Chaffraix (2 Oct 2010)
863 - krb5-gssapi: Removed a memory leak in krb5_auth.
865 We forgot to release the buffer passed to gss_init_sec_context.
867 The previous logic was difficult to read as we were reusing the same
868 variable (gssbuf) for both input buffer and output buffer. Splitted the
869 logic in 2 variables to better underline who needs to be released.
870 Also made the code break at 80 lines.
872 - krb5-gssapi: Made the function always return a value.
874 kr5_auth missed a final 'return' statement. This is not an error in
875 gcc but can lead to potential bugs.
877 - krb5-gssapi: Delete the GSS-API context.
879 This fixes a memory leak related to the GSS-API code.
881 Added a krb5_init and krb5_end functions. Also removed a work-around
882 the lack of proper initialization of the GSS-API context.
884 Daniel Stenberg (2 Oct 2010)
885 - HTTP: remove special case for 416
887 It was pointed out that the special case libcurl did for 416 was
888 incorrect and wrong. 416 is not really different to other errors so the
889 response body must be handled like for other errors/http responses.
891 Reported by: Chris Smowton
892 Bug: http://curl.haxx.se/bug/view.cgi?id=3076808
894 - [Dan Fandrich brought this change]
896 sws: Added writedelay HTTP server command
898 This delays between write operations, hopefully making it easier
899 to spot problems where libcurl doesn't flush the socket properly
900 before waiting for the next response.
902 - TODO-RELEASE: no bug in ftp_nextconnect
904 The issue named "266 - Bug in ftp_nextconnect?" was deemed to not be a
905 bug and instead resulted in clarified docs.
907 - curl_easy_setopt.3: CURLOPT_DIRLISTONLY implies dir list
909 Make it explicit that setting CURLOPT_DIRLISTONLY to 1 will make libcurl
910 to list the directory.
912 - RELEASE-NOTES: synced up to 588402585bae
914 - TODO-RELEASE: move new features to next release
916 - README.ares: we know require c-ares 1.6.0
918 - SFTP: avoid downloading negative sizes!
920 It is still not clarified exactly why this happens, but libssh2
921 sometimes report a negative file size for the remote SFTP file and that
922 deeply confuses libcurl (or crashes it) so this precaution is added to
925 Reported by: Ernest Beinrohr
926 Bug: http://curl.haxx.se/bug/view.cgi?id=3076430
928 - TODO-RELEASE: drop curl_easy_setoptv
930 I haven't read any really convincing arguments for adding it
932 - [Dirk Manske brought this change]
934 multi & hiper examples: updates and cleanups
936 all multi and hiper examples:
938 * don't loop curl_multi_perform calls, that was <7.20.0 style, currently
939 the exported multi functions will not return CURLM_CALL_MULTI_PERFORM
942 * renamed check_run_count to check_multi_info
943 * don't compare current running handle count with previous value, this
944 was the wrong way to check for finished requests, simply call
946 * it's also safe to call curl_multi_remove_handle inside the
947 curl_multi_info_read loop.
950 * replaced curl_multi_socket (that function is marked as obsolete) calls
951 with curl_multi_socket_action calls (as in hiperfifo.c and
954 ghiper.c and evhiperfifo.c:
955 * be smart as hiperfifo.c, don't do uncessary curl_multi_* calls in
958 - TODO-RELEASE: one fixed, one postponed, one added
960 As we're already in feature freeze, I pushed the feature onwards.
962 Dan Fandrich (29 Sep 2010)
963 - Renamed test1204 to test1117 to move it into the normal range
965 Patrick Monnerat (29 Sep 2010)
966 - Add gopher protocol definition to ILE/RPG binding.
967 OS400 compile script in test dir updated for chkhostname.
969 Julien Chaffraix (28 Sep 2010)
970 - krb5-gssapi: Remove several memory leaks.
972 Remove a leak seen on Kerberos/MIT (gss_OID is copied internally and
973 we were leaking it). Now we just pass NULL as advised in RFC2744.
975 |tmp| was never set back to buf->data.
977 Cleaned up Curl_sec_end to take into account failure in Curl_sec_login
978 (where conn->mech would be NULL but not conn->app_data or
979 conn->in_buffer->data).
981 - security.c: Remove Curl_sec_fflush_fd.
983 The current implementation would make us send wrong data on a closed
984 socket. We don't buffer our data so the method can be safely removed.
986 - security.c: We should always register the socket handler.
988 Following a change in the way socket handler are registered, the custom
989 recv and send method were conditionaly registered.
990 We need to register them everytime to handle the ftp security
993 Re-added the clear text handling in sec_recv.
995 - security.c: Fix Curl_sec_login after rewrite.
997 Curl_sec_login was returning the opposite result that the code in ftp.c
998 was expecting. Simplified the return code (using a CURLcode) so to see
999 more clearly what is going on.
1001 - security.c: Readd the '\n' to the infof() calls.
1003 They are not automatically added and make the output of the verbose
1004 mode a lot more readable.
1006 - security.c: Fix typo (PSBZ -> PBSZ)
1008 - security.c: Fix ftp_send_command.
1010 My use of va_args was completely wrong. Fixed the usage so that
1011 we send the right commands!
1013 Daniel Stenberg (28 Sep 2010)
1014 - curl_easy_escape: don't escape "unreserved" characters
1016 According to RFC3986 section 2.3 the letters -, ., _ and ~ should not be
1019 Reported by: Miguel Diaz
1020 Bug: http://curl.haxx.se/mail/lib-2010-09/0227.html
1022 - multi: don't expire timeouts at disonnect or done
1024 The functions Curl_disconnect() and Curl_done() are both used within the
1025 scope of a single request so they cannot be allowed to use
1026 Curl_expire(... 0) to kill all timeouts as there are some timeouts that
1027 are set before a request that are supposed to remain until the request
1030 The timeouts are now instead cleared at curl_easy_cleanup() and when the
1031 multi state machine changes a handle to the complete state.
1033 Dan Fandrich (27 Sep 2010)
1034 - Changed the TPF make file to get source files from Makefile.inc
1036 Patch was fixed and validated by David McCreedy.
1038 - Added test case 1204 to test HTTP range failure
1040 This is an attempt to reproduce bug #3076808
1042 Daniel Stenberg (27 Sep 2010)
1043 - [Dirk Manske brought this change]
1045 multi_runsingle: set timeout error messages
1047 With the latest changes to fix the timeout handling with multi interface
1048 we lost the timeout error messages. This patch brings them back.
1050 - TODO-RELEASE: updated list of issues to work on
1052 - parsedate: allow time specified without seconds
1054 The date format in RFC822 allows that the seconds part of HH:MM:SS is
1055 left out, but this function didn't allow it. This change also includes a
1056 modified test case that makes sure that this now works.
1058 Reported by: Matt Ford
1059 Bug: http://curl.haxx.se/bug/view.cgi?id=3076529
1061 - TFTP: re-indented the source code
1063 Just made sure that the good old curl indentation style is used all over
1066 - [Tim Newsome brought this change]
1068 TFTP: Work around tftpd-hpa upload bug
1070 tftpd-hpa has a bug where it will send an incorrect ack when the block
1071 counter wraps and tftp options have been sent. Work around that by
1072 accepting an ack for 65535 when we're expecting one for 0.
1074 - Revert "security.c: buffer_read various fixes."
1076 This reverts commit fbb38de415b7bb7d743e53a7b4b887ffb12b3e5b.
1078 - security.c: removed superfluous parentheses
1080 And also removed the FIXME where memory was zeroed just before freed,
1081 and some other minor whitespace changes.
1083 - [Julien Chaffraix brought this change]
1085 security.c: Update the #include statements after the rewrite.
1087 - [Julien Chaffraix brought this change]
1089 security.c: sec_write tweaks
1091 - |fd| is now a curl_socket_t and |len| a size_t to avoid conversions.
1092 - Added 2 FIXMEs about the 2 unsigned -> signed conversions.
1093 - Included 2 minor changes to Curl_sec_end.
1095 - [Julien Chaffraix brought this change]
1097 security.c: _sec_send tweaks
1099 - Renamed the method to sec_send now that we
1100 renamed sec_send to do_sec_send.
1101 - Some more variable renaming.
1103 - [Julien Chaffraix brought this change]
1105 security.c: sec_read tweaks
1107 - Renamed the function to sec_recv.
1108 - Renamed the parameters and variable to match the rest of the code.
1110 - [Julien Chaffraix brought this change]
1112 security.c: Curl_sec_fflush_fd tweaks
1114 - Use an early return as it makes the code more readable.
1115 - Added a FIXME about a conversion.
1117 - [Julien Chaffraix brought this change]
1119 security.c: sec_send tweaks
1121 - Renamed it to do_sec_send as it is the function doing the actual
1123 - Do not return any values as no one was checking it and it never
1124 reported a failure (added a FIXME about checking for errors).
1125 - Renamed the variables to make their use more specific.
1126 - Removed some casts (int -> curl_socket_t, ...)
1127 - Avoid doing the htnl <-> nthl twice by caching the 2 results.
1129 - [Julien Chaffraix brought this change]
1131 security.c: Curl_sec_read_msg tweaks
1133 - Renamed the variables name to better match their intend.
1134 - Unified the |decoded_len| checks.
1135 - Added some FIXMEs to flag some improvement that did not go in this
1138 - [Julien Chaffraix brought this change]
1140 security.c: Curl_sec_set_protection_level tweaking
1142 - Removed sec_prot_internal as it is now inlined in the function (this removed
1144 - Changed the prototype to return an error code.
1145 - Updated the method to use the new ftp_send_command function.
1146 - Added a level_to_char helper method to avoid relying on the compiler's
1147 bound checks. This default to the maximum security we have in case of a
1150 - [Julien Chaffraix brought this change]
1152 security.c: factored the logic from Curl_sec_login into a dedicated method that better reflect its intent.
1154 Introduced a helper method ftp_send_command that synchronously send
1157 - [Julien Chaffraix brought this change]
1159 security.c: Remove out_buffer as it was never written into.
1161 - [Julien Chaffraix brought this change]
1163 security.c: buffer_read various fixes.
1165 Tighten the type of the |data| parameter to avoid a cast. Also made
1166 it const as we should not modify it.
1168 Added a DEBUGASSERT on the size to be written while changing it.
1170 - [Julien Chaffraix brought this change]
1172 security.c: Made block_write return a CURLcode.
1174 While doing so, renamed it to socket_write to better match its
1177 - [Julien Chaffraix brought this change]
1179 security.c: Made block_read and sec_get_data return CURLcode.
1181 To do so, made block_read call Curl_read_plain instead of read.
1183 While changing them renamed block_read to socket_read and sec_get_data
1184 to read_data to better match their function.
1186 Also fixed a potential memory leak in block_read.
1188 - [Julien Chaffraix brought this change]
1190 Security.c: Fix headers guard to match the rest of the code.
1192 - [Julien Chaffraix brought this change]
1194 configure: Fix the LDAPS disable message
1196 ... for example when LDAP is not compiled.
1198 Fixed the logic to match the rest of the options' message that is we
1199 update the default message only if the option is not disabled after the
1202 Reported by: Guenter Knauf
1204 - RELEASE-NOTES: sync with 8665d4e5 and c-ares >= 1.6.0 note
1206 - parse_remote_port: ignore colons without port number
1208 Obviously, browsers ignore a colon without a following port number. Both
1209 Firefox and Chrome just removes the colon for such URLs. This change
1210 does not remove the colon for URLs sent over a HTTP proxy, so we should
1211 consider doing that change as well.
1213 Reported by: github user 'kreshano'
1215 - RELEASE-NOTES: in sync with 19f45eaa799
1217 - duphandle: use ares_dup()
1219 curl_easy_duphandle() was not properly duping the ares channel. The
1220 ares_dup() function was introduced in c-ares 1.6.0 so by starting to use
1221 this function we also raise the bar and require c-ares >= 1.6.0
1222 (released Dec 9, 2008) for such builds.
1224 Reported by: Ning Dong
1225 Bug: http://curl.haxx.se/mail/lib-2010-08/0318.html
1227 - [Hendrik Visage brought this change]
1229 MacOSX-Framework: updates for Snowleopard
1231 1) PPC64 appears to be an 10.5 only supported architecture, so I
1232 forced 10.5 for 64bit if there is a need for PPC64, else 64bit only
1235 2) proper "make clean" after every ./configure. fixes a bug where
1236 subsequent runs the 32bit do not get compiled
1238 3) Added a version numbering curl-$VERSION} rather than the "stock standard" A
1240 - RELEASE-NOTES: synced with 5fcc4332d62fe
1242 Removed the duplicate entry of Kamil in the credits.
1244 - configure: don't enable RTMP if the lib detect fails
1246 librtmp is often statically linked and using sub dependencies like
1247 OpenSSL, so we need to make sure we can actually link with it properly
1248 before enabling it. Otherwise we easily end up trying to link with a
1249 RTMP lib that fails.
1251 - TODO: added 8.4 non-gcrypt under GnuTLS
1253 We must not assume gcrypt just because of GnuTLS
1255 - configure: check for gcrypt if using GnuTLS
1257 1 - libcurl assumes that there are gcrypt functions available when
1260 2 - GnuTLS can be built to use libnettle instead as crypto library,
1261 which breaks assumption (1)
1263 This change makes configure make sure that if GnuTLS is requested and
1264 detected, it also makes sure that gcrypt is present or it errors
1265 out. This is mostly a way to make the user more aware of this flaw, the
1266 correct fix would be to detect which crypto layer that is in use and
1267 adapt our code to use that instead of blindly assuming gcrypt.
1269 Reported by: Michal Gorny
1270 Bug: http://curl.haxx.se/bug/view.cgi?id=3071038
1272 - RELEASE-NOTES: sync from d2a7fd2fe65b to HEAD
1274 - FTP: fix bad check of Curl_timeleft() return code
1276 When it returns 0 it means no timeout. Only a negative value means that
1279 - LDAP: moved variable declaration to avoid compiler warn
1281 If built without HTTP or proxy support it would cause a compiler warning
1282 due to the unused variable. I moved the declaration of it into the only
1285 Tor Arntsen (18 Sep 2010)
1286 - LDAP: Use FALSE instead of bool_false when setting bits.close
1288 bool_false is the internal name used in the setup_once.h definition
1289 we fall back to for non-C99 non-stdbool systems, it's not the actual
1290 name to use in assignments (we use bool_false, bool_true there to
1291 avoid global namespace problems, see comment in setup_once.h).
1292 The correct C99 value to use is 'false', but let's use FALSE as
1293 used elsewhere when assigning to bits.close. FALSE is set equal
1294 to 'false' in setup_once.h when possible.
1296 This fixes a build problem on C99 targets.
1298 - LDAP: Add missing declaration for 'result'
1300 Daniel Stenberg (18 Sep 2010)
1301 - [Mauro Iorio brought this change]
1303 LDAP: Support for tunnelling queries through HTTP proxy
1305 As of curl-7.21.1 tunnelling ldap queries through HTTP Proxies is not
1306 supported. Actually if --proxytunnel command-line option (or equivalent
1307 CURLOPT_HTTPPROXYTUNNEL) is used for ldap queries like
1308 ldap://ldap.my.server.com/... You are unable to successfully execute the
1309 query. In facts ldap_*_bind is executed directly against the ldap server
1310 and proxy is totally ignored. This is true for both openLDAP and
1313 Step to reproduce the error:
1314 Just launch "curl --proxytunnel --proxy 192.168.1.1:8080
1315 ldap://ldap.my.server.com/dc=... "
1317 This fix adds an invocation to Curl_proxyCONNECT against the provided
1318 proxy address and on successful "CONNECT" it tunnels ldap query to the
1319 final ldap server through the HTTP proxy. As far as I know Microsoft
1320 LDAP APIs don't permit tunnelling in any way so the patch provided is
1321 for OpenLDAP only. The patch has been developed against OpenLDAP 2.4.23
1322 and has been tested with Microsoft ISA Server 2006 and works properly
1323 with basic, digest and NTLM authentication.
1325 - timeout: use the correct start value as offset
1327 Rodric provide an awesome recipe that proved libcurl didn't timeout at
1328 the requested time - it instead often timed out at [connect time] +
1329 [timeout time] instead of the documented and intended [timeout time]
1330 only. This bug was due to the code using the wrong base offset when
1331 comparing against "now". I could also take the oppurtinity to simplify
1332 the code by properly using of the generic help function for this:
1335 Reported by: Rodric Glaser
1336 Bug: http://curl.haxx.se/bug/view.cgi?id=3061535
1338 - Curl_timeleft: avoid returning "no timeout" by mistake
1340 As this function uses return code 0 to mean that there is no timeout, it
1341 needs to check that it doesn't return a time left value that is exactly
1342 zero. It could lead to libcurl doing an extra 1000 ms select() call and
1343 thus not timing out as accurately as it should.
1345 I fell over this bug when working on the bug 3061535 but this fix does
1346 not correct that problem alone, although this is a problem that needs to
1349 Reported by: Rodric Glaser
1350 Bug: http://curl.haxx.se/bug/view.cgi?id=3061535
1352 - whitespace: unified source
1357 and some other changes in the similar spirit, trying to make the
1358 whole file use the same style
1360 - remote-header-name: don't output filename when NULL
1362 - [James Bursa brought this change]
1364 TheArtOfHttpScripting: use long options
1366 - [James Bursa brought this change]
1368 getinmemory: make the example easier to follow
1370 1. Remove the comment warning that it's "not been verified to work". It
1371 works with no problems in my testing.
1373 2. Remove 2 unnecessary includes.
1375 3. Remove the myrealloc(). Initialize chunk.memory with malloc() instead
1376 of NULL. The comments for these two parts contradicted each other.
1378 4. Handle out of memory from realloc() instead of continuing.
1380 5. Print a brief status message at the end.
1382 - multi: don't do extra expire calls for the connection
1384 The timeout is set for the connect phase already at the start of the
1385 request so we should not add a new one, and we MUST not set expire to 0
1386 as that will remove any other potentially existing timeouts.
1388 - [Peter Pentchev brought this change]
1390 Fix a bashism: test a = b is more portable than ==.
1392 - glob_word: remove a check that is always false
1394 - inflate_stream: remove redundant check that is always true
1396 - digest: make it clear the condition is always true
1398 - ssluse: removed redundant check that is always true
1400 Dan Fandrich (11 Sep 2010)
1401 - Link curl and the test apps with -lrt explicitly when necessary
1403 When curl calls a function from that library then it needs to
1404 explicitly link to the library instead of piggybacking on
1405 libcurl's own dependency. Without this, GNU ld with the
1406 --no-add-needed flag fails when linking (which Fedora now does
1409 Reported by: Quanah Gibson-Mount
1410 Bug: http://curl.haxx.se/mail/lib-2010-09/0085.html
1412 - Mention the Debian Popularity Contest
1414 Tor Arntsen (9 Sep 2010)
1415 - test565: Don't hardcode IP:PORT
1417 Use %HOSTIP:%HTTPPORT instead of 127.0.0.1:8990 so that
1418 verification works if the baseport change option is used
1419 when executing runtests.pl.
1421 Daniel Stenberg (9 Sep 2010)
1422 - curl.1: updated protocols and polished language
1424 - FAQ: CURL_STATICLIB for visual studio users
1426 Clarified as it isn't used with a -D option for them.
1428 Reported by: Artfunkel
1429 Bug: http://curl.haxx.se/bug/view.cgi?id=3060381
1431 - FAQ: updated and added host with custom IP question
1433 Added "3.19 How do I get HTTP from a host using a specific IP address?"
1434 and updated some stuff about certs etc.
1436 - chunky parser: only rewind if needed
1438 The code reading chunked encoding attempts to rewind the code if it had
1439 read more data than the chunky parser consumes. The rewinding can fail
1440 and it will then cause an error. This change now makes the rewinding
1441 only happen if pipelining is in use - as that's the only time it really
1444 Bug: http://curl.haxx.se/mail/lib-2010-08/0297.html
1445 Reported by: Ron Parker
1447 Kamil Dudka (6 Sep 2010)
1448 - rtsp: avoid SIGSEGV on malformed header
1450 - rtsp: avoid SIGSEGV on malformed header
1452 Daniel Stenberg (6 Sep 2010)
1453 - warning: fix conversion to 'int' from 'size_t'
1455 - portabilty: use proper variable type to hold sockets
1457 Curl_getconnectinfo() is changed to return a proper curl_socket_t for
1458 the last socket so that it'll work more portably (and cause less
1461 Guenter Knauf (3 Sep 2010)
1462 - Trial to fix another compiler warning with braces.
1464 Dan Fandrich (2 Sep 2010)
1465 - Use checkprefix() to compare protocol-specific strings
1467 Otherwise, there could be problems running in certain locales.
1469 Guenter Knauf (2 Sep 2010)
1470 - Moved S_ISREG define to setup as suggested by Dan.
1472 - Use own typedef as workaround for broken sspi.h header (f.e. Watcom).
1474 - Added some hacks in order to build with VC from git.
1476 Adam Light posted this patch to the list which enables builds from
1477 git with VC versions other than vc6; also he added a vc10 target.
1479 - Added S_ISREG define for Win32.
1481 Daniel Stenberg (1 Sep 2010)
1482 - multi: fixes for timing out handles
1484 Add a timeout check for handles in the state machine so that they will
1485 timeout in all states disregarding what actions that may or may not
1488 Fixed a bug in socket_action introduced recently when looping over timed
1489 out handles: it wouldn't assign the 'data' variable and thus it wouldn't
1490 properly take care of handles.
1492 In the update_timer function, the code now checks if the timeout has
1493 been removed and then it tells the application. Previously it would
1494 always let the remaining timeout(s) just linger to expire later on.
1496 - threaded resolver: no more expire 0 calls
1498 Curl_expire() set to 0 expires ALL timeouts so it should only be called
1499 if we truly and really want to remove all timeouts for the handle.
1501 - resolve_server: simplify code
1503 Make use of the helper function Curl_timeleft() instead of duplicating
1506 - multi: make sure the next timeout is used when one expires
1508 Each easy handle has a list of timeouts, so as soon as the main timeout
1509 for a handle expires, we must make sure to get the next entry from the
1510 list and re-add the handle to the splay tree.
1512 This was attempted previously but was done poorly in my commit
1515 Dan Fandrich (30 Aug 2010)
1516 - Added proxy keyword to allow skipping test in proxyless configs
1518 Daniel Stenberg (29 Aug 2010)
1519 - multi: set timeouts when transfer begins
1521 When a new transfer is about to start we now set the proper timeouts to
1522 expire for the multi interface if they are set for the handle. This is a
1523 follow-up bugfix to make sure that easy handles timeout properly when
1524 the times expire and the multi interface is used. This also improves
1525 curl_multi_timeout().
1527 - CURLOPT_DIRLISTONLY: don't use with CURLOPT_WILDCARDMATCH
1529 - FAQ: update list of supported protocols
1531 - [Fabian Keil brought this change]
1533 In the m4 detection line, factor out the 2>dev/null
1535 - [Fabian Keil brought this change]
1537 If m4 doesn't support --version, try if gm4 does.
1539 - [Fabian Keil brought this change]
1541 If the m4 version isn't recognized at all, just say so
1543 'm4 version found. You need a GNU m4 installed!' is a bit confusing.
1545 - HISTORY: mention the gopher story
1547 Dan Fandrich (25 Aug 2010)
1548 - Tweaked some test data files
1550 Fixed some issues that caused xmllint failures, added features
1551 and keywords, fixed some quotes and removed some <strip> sections
1552 that unnecessarily limited test checking.
1554 - Added new source files to Symbian and TPF makefiles
1556 Daniel Stenberg (25 Aug 2010)
1557 - RELEASE-NOTES: sync from b980c9a02 to HEAD
1559 - Makefile: add gopher.c file to build
1561 As the VC and RISCOS makefiles don't use the .inc file
1563 - runtests: fix uninitialized variable warning
1565 - gopher tests: revert parts of gopher in the pingpong server
1567 Introduced in the initial gopher commits, there was added logic to do
1568 GOPHER test serving in the pingpong server but as it resembles HTTP much
1569 more than FTP or SMTP, the gopher testing has been moved over to instead
1570 use the sws (HTTP) server. This change simply removes unused code.
1572 - gopher tests: use sws and adjusted to more standard style
1574 - sws: added basic gopher support
1576 - gopher: enable the header callback/verbosity
1578 - gopher: fix test case line endings
1580 Patches over email very easily lose CRLF line endings in files otherwise
1581 LF-only so I had to put them back where needed.
1583 - gopher: fix memory leak and busyloop
1585 The fix for the busyloop really only is a temporary work-around. It
1586 causes a BLOCKING behavior which is a NO-NO. This function should rather
1587 be split up in a do and a doing piece where the pieces that aren't
1588 possible to send now will be sent in the doing function repeatedly until
1589 the entire request is sent.
1591 - [Cameron Kaiser brought this change]
1593 Gopher using Curl_write; test suite (4 tests)
1595 - [Cameron Kaiser brought this change]
1599 - [Cameron Kaiser brought this change]
1601 Forgot gopher.h in Makefile.inc
1603 - [Cameron Kaiser brought this change]
1605 Gopher protocol support (initial release)
1607 - http: handle trailer headers in all chunked responses
1609 HTTP allows that a server sends trailing headers after all the chunks
1610 have been sent WITHOUT signalling their presence in the first response
1611 headers. The "Trailer:" header is only a SHOULD there and as we need to
1612 handle the situation even without that header I made libcurl ignore
1613 Trailer: completely.
1615 Test case 1116 was added to verify this and to make sure we handle more
1616 than one trailer header properly.
1618 Reported by: Patrick McManus
1619 Bug: http://curl.haxx.se/bug/view.cgi?id=3052450
1621 - TODO: we now support RTMP
1623 - TODO: done "NTLM with other crypto functions"
1625 Since NTLM was made to work with the NSS API as well, the primary SSL
1626 alternatives will be built with NTLM support in libcurl.
1628 - TODO: fixed "Make curl_multi_info_read faster"
1630 It is really fast now
1632 Dan Fandrich (24 Aug 2010)
1633 - Fixed a NULL pointer dereference in form posting
1635 It was introduced in commit eeb2cb05 along with the -F type=
1636 change. Also fixed a typo in the name of the magic filename=
1637 parameter. Tweaked tests 39 and 173 to better test this path.
1639 Daniel Stenberg (24 Aug 2010)
1640 - [Ben Greear brought this change]
1642 multi: Fix compile warning on 64-bit systems
1644 Dan Fandrich (23 Aug 2010)
1645 - Mention PolarSSL in tutorial & add some URLs to INSTALL
1647 Daniel Stenberg (23 Aug 2010)
1648 - RESUME_FROM: clarify what ftp uploads do
1650 The numerical value passed to CURLOPT_RESUME_FROM for FTP uploads is
1651 interpreted and used as position where to resume the _reading_ of the
1652 local file and it will "blindly" append that data on the remote
1653 file. This was certainly not clear in the docs previously.
1655 Reported by: catalin
1656 Bug: http://curl.haxx.se/bug/view.cgi?id=3048174
1658 - [Dirk Manske brought this change]
1660 Curl_is_connected: use correct errno
1662 The correctly extracted errno contents were mistakenly overwritten by a newer
1663 value that wasn't the correct error value.
1665 Bug: http://curl.haxx.se/mail/lib-2010-08/0242.html
1667 - cmdline: make -F type= accept ;charset=
1669 The -F option allows some custom parameters within the given string, and
1670 those strings are separated with semicolons. You can for example specify
1671 "name=daniel;type=text/plain" to set content-type for the
1672 field. However, the use of semicolons like that made it not work fine if
1673 you specified one within the content-type, like for:
1674 "name=daniel;type=text/plain;charset=UTF-8"
1675 ... as the second one would be seen as a separator and "charset" is no
1676 parameter curl knows anything about so it was just silently discarded.
1678 The new logic now checks if the semicolon and following keyword looks
1679 like a parameter it knows about and if it isn't it is assumed to be
1680 meant to be used within the content-type string itself.
1682 I modified test case 186 to verify that this works as intended.
1684 Reported by: Larry Stone
1685 Bug: http://curl.haxx.se/bug/view.cgi?id=3048988
1687 Guenter Knauf (20 Aug 2010)
1688 - Added mk-ca-bundle.vbs script.
1690 The script works exactly same as the Perl one except for one thing:
1691 when the text descriptions generated with openssl are included then
1692 the md5 fingerprints are missing; seems openssl has either a bug or
1693 a feature which prints the md5 fingerprint output to stdout instead
1694 of writing them to specified file; this script could here do the same
1695 as what the Perl scripr does (redirect stdout into file) but this
1696 makes the script take up double the time because it needs to launch
1697 cmd.exe 140 times (fo each openssl call). So I think for now we just
1698 ommit the md5 fingerprints, and see if openssl will be fixed.
1700 - Trial to fix win32 autobuilds.
1702 It seems that its time to look at some better ideas for the win32
1703 non-configure builds; probably a prebuild target which copies
1704 config-win32.h to curl_config.h and appends also then feature
1705 defines like USE_ARES.
1707 Dan Fandrich (19 Aug 2010)
1708 - Use the S_ISREG macro to determine what is a regular file
1710 Kamil Dudka (19 Aug 2010)
1711 - AC_INIT: avoid a warning with autoconf 2.66
1713 It was complaining about the '=>' operator, introduced in e3fc0d5.
1715 Dan Fandrich (18 Aug 2010)
1716 - Fixed a memory leak during OOM in the multi timeout code
1718 - Removed a C99ism & made an array const
1720 Daniel Stenberg (19 Aug 2010)
1721 - [Julien Chaffraix brought this change]
1723 test: added test 579 to verify progress callback for chunked post
1725 The 66 bytes checked are those 38 bytes with the chunked encoding
1726 headers added: 8+8+10+35+5 = 66
1728 The three-letter words become 8 bytes on the wire because they are sent
1729 like: "3\r\none\r\n"
1731 ... and there's the trailing 5 bytes write after the four lines since
1732 the final chunk is sent (which is "0\r\n\r\n").
1734 - multi: avoid sending multiple complete messages
1736 I fell over this bug report that mentioned that libcurl could wrongly
1737 send more than one complete messages at the end of a transfer. Reading
1738 the code confirmed this, so I've added a new multi state to make it not
1739 happen. The mentioned bug report was made by Brad Jorsch but is (oddly
1740 enough) filed in Debian's bug tracker for the "wmweather+" tool.
1742 Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593390
1744 - FAQ: update the list of supported protocols
1746 - FAQ: added blurb about ECCN
1748 "1.13 curl's ECCN number" is a new section mostly made up from
1749 Alessandro Vesely's very informative ML post on the subject:
1750 http://curl.haxx.se/mail/lib-2008-03/0251.html
1752 Guenter Knauf (18 Aug 2010)
1753 - It is sufficient to pipe stderr to NUL to get rid of the nasty messages.
1755 - Added SSPI build to Watcom makefile.
1757 Daniel Stenberg (16 Aug 2010)
1758 - [Julien Chaffraix brought this change]
1760 progress: callback for POSTs less than MAX_INITIAL_POST_SIZE
1762 Add a call to Curl_pgrsSetUploadSize in this case valided by a test
1765 Reported by: Никита Дорохин.
1766 Bug: http://curl.haxx.se/mail/lib-2010-04/0173.html
1768 Dan Fandrich (16 Aug 2010)
1769 - Make the LD_PRELOAD path absolute in the tests that use it
1771 In some situations, libtool will change directories and perform
1772 a link step before executing the libtest test app. Since
1773 LD_PRELOAD is in effect for this entire process, the path to the
1774 binary must be absolute so it will be valid no matter in which
1775 directory the app is running.
1777 Daniel Stenberg (16 Aug 2010)
1778 - negotiation: Wrong proxy authorization
1780 There's an error in http_negotiation.c where a mistake is using only
1781 userpwd even for proxy requests. Ludek provided a patch, but I decided
1782 to write the fix slightly different using his patch as inspiration.
1784 Reported by: Ludek Finstrle
1785 Bug: http://curl.haxx.se/bug/view.cgi?id=3046066
1787 Dan Fandrich (16 Aug 2010)
1788 - Clear stdout and stderr files on each test run
1790 This allows a test to be run several times in the same test
1791 session even when the -k option is given.
1793 Guenter Knauf (15 Aug 2010)
1794 - Syncroniszed vclean target; fixed some comments.
1796 Daniel Stenberg (15 Aug 2010)
1797 - THANKS: added contributors from 7.21.1
1799 - multi: two fixes done
1801 - multi: use timeouts properly for MAX_RECV/SEND_SPEED
1803 When detecting that the send or recv speed, the multi interface changes
1804 state to TOOFAST and previously there was no timeout set that would
1805 force a recheck but it would rely on the application to somehow call
1806 libcurl anyway. This now sets a timeout for a suitable future time to
1807 check again if the average transfer speed is then below the threshold
1810 - multi: support timeouts
1812 Curl_expire() is now expanded to hold a list of timeouts for each easy
1813 handle. Only the closest in time will be the one used as the primary
1814 timeout for the handle and will be used for the splay tree (which sorts
1815 and lists all handles within the multi handle).
1817 When the main timeout has triggered/expired, the next timeout in time
1818 that is kept in the list will be moved to the main timeout position and
1819 used as the key to splay with. This way, all timeouts that are set with
1820 Curl_expire() internally will end up as a proper timeout. Previously any
1821 Curl_expire() that set a _later_ timeout than what was already set was
1822 just silently ignored and thus missed.
1824 Setting Curl_expire() with timeout 0 (zero) will cancel all previously
1827 Corrects known bug #62.
1829 - Curl_llist_insert_next: allow insertion first in the list
1831 When we specify the "insert after" entry as NULL, this function now
1832 inserts the new entry first in the list.
1834 - multi: make curl_multi_info_read perform O(1)
1836 Instead of looping over all attached easy handles, this now keeps a list
1837 of messages in the multi handle. It allows curl_multi_info_read() to
1838 perform O(1) no matter how many easy handles that are handled. This is
1839 of importance since this function may be polled very frequently by apps
1840 using the multi interface.
1842 Kamil Dudka (15 Aug 2010)
1843 - curl -T: ignore file size of special files
1845 original bug report at https://bugzilla.redhat.com/622520
1847 Dan Fandrich (13 Aug 2010)
1848 - Reset environment variables before starting servers
1850 Otherwise, variables from tests could affect the servers
1853 Kamil Dudka (12 Aug 2010)
1854 - typecheck-gcc: work around gcc upstream bug #32061
1856 original bug report at https://bugzilla.redhat.com/617757
1858 Daniel Stenberg (11 Aug 2010)
1859 - release cycle loop: start over toward 7.21.2
1861 Version 7.21.1 (11 Aug 2010)
1863 Daniel Stenberg (11 Aug 2010)
1864 - RELEASE-NOTES: mention the runtests fix as well
1866 - runtests: clear old setenv remainders before test
1868 Due to the layout of the singletest function there are situations where
1869 it returns before it clears the environment variables that were
1870 especially set for the single specific test case. That could lead to
1871 subsequent tests getting executed with environment variables sticking
1872 around from a previous test which could lead to badness.
1874 This change makes sure to clear all custom variables that may be laying
1875 around from a previous round, before running a test case.
1877 Reported by: Kamil Dudka
1878 Bug: http://curl.haxx.se/mail/lib-2010-08/0141.html
1880 Guenter Knauf (11 Aug 2010)
1881 - Added OpenSSL builds to Watcom makefiles.
1883 Yang Tse (11 Aug 2010)
1884 - configure: werror related adjustments
1886 Daniel Stenberg (11 Aug 2010)
1887 - FAQ: s/libcurl.so.3/libcurl.so.X
1889 Dan Fandrich (10 Aug 2010)
1890 - KNOWN_BUG #59 is fixed. Clarify support of IPv6 zone IDs.
1892 - Fixed typo in Android configure command
1894 Daniel Stenberg (11 Aug 2010)
1895 - HISTORY: added stuff from recent years
1897 - warning: silence the compiler
1899 warning: conversion to 'long int' from 'time_t' may alter its value
1901 ... on win64 when time_t is 64bit and long is 32bit.
1903 - RELEASE-NOTES: synced, 3 additional bugfixes
1905 - multi_socket_action: clarify how to kickstart it
1907 The callbacks are called when curl_multi_socket_action() is called, not
1908 when handles are added. This is now mentioned in the "TYPICAL USAGE"
1911 - callbacks: acknowledge progress callback error returns
1913 When the progress callback is called during the TCP connection, an error
1914 return would accidentally not abort the operation as intended but would
1915 instead be counted as a failure to connect to that particular IP and
1916 libcurl would just continue to try the next. I made singleipconnect()
1917 and trynextip() return CURLcode properly.
1919 Added bonus: it corrected the error code for bad --interface usages,
1920 like tested in test 1084 and test 1085.
1922 Reported by: Adam Light
1923 Bug: http://curl.haxx.se/mail/lib-2010-08/0105.html
1925 Guenter Knauf (10 Aug 2010)
1926 - More Watcom makefile fixes ...
1928 Final fix (hopefully!) for dll wlink loader;
1929 prefer faster internal rm if available.
1931 - Fixed my wrong edit.
1933 - More Watcom makefile fixes.
1935 Added the -br switch to dynamic builds which fixes the issue I saw
1936 with curl's --version output. Added debug info and symfile for debug
1937 builds to linker opts. Added DLL loader for wlink back, but this time
1938 dependend on wlink version.
1939 Patch posted to the list by malak.jiri AT gmail.com.
1941 - Changed test for -u switch in order to enable other wmake switches.
1943 The var %MAKEFLAGS is only set in 3 cases: if set as environment
1944 var or as macro definition from commandline, and either with the
1945 -u or -ms switch. Since all these cases are unlikely for the average
1946 user it should be safe to only test if %MAKEFLAGS is defined; this
1947 has the benefit that now all other switches can be used again in
1948 addition to the -u which was formerly not possible.
1950 Daniel Stenberg (10 Aug 2010)
1951 - llist: hide Curl_llist_init
1953 Curl_llist_init is never used outside of llist.c and thus it should be
1954 static. I also removed the protos for Curl_llist_insert_prev and
1955 Curl_llist_remove_next which are functions we removed from llist.c ages
1958 Guenter Knauf (10 Aug 2010)
1959 - Added msys Perl since git for Win32 comes with own Perl which identifies as msys.
1961 - Updated lib dependency versions.
1963 - Make testcurl.pl Watcom-aware.
1965 Daniel Stenberg (10 Aug 2010)
1966 - parse_remote_port: fix ;type= URL suffix over HTTP proxy
1968 Test 563 is enabled now and verifies that the combo FTP type=A URL,
1969 CURLOPT_PORT set and proxy work fine. As a bonus I managed to remove the
1970 somewhat odd FTP check in parse_remote_port() and instead converted it
1971 to a better and more generic 'slash_removed' struct field. Checking the
1972 ->protocol field isn't right since when an FTP:// URL is sent over a
1973 HTTP proxy, the protocol is HTTP but the URL was handled by the FTP code
1974 and thus slash_removed is set TRUE for this case.
1976 - indent: white space fixes only
1978 Yang Tse (9 Aug 2010)
1979 - build: fix previous push
1981 - build: don't build libhostname unless shared libcurl is built
1983 - build: libhostname and chkhostname linkage adjustments followup
1985 Daniel Stenberg (8 Aug 2010)
1986 - typo: remove duplicate semicolon
1988 - multi: avoid a malloc() when a transfer is complete
1990 The struct used for storing the message for a completed transfer is now
1991 no longer allocated separatly but is kept within the main struct kept
1992 for each easy handle so that we avoid one malloc (and the subsequent
1995 Yang Tse (8 Aug 2010)
1996 - build: libhostname linkage adjustments followup
1998 Guenter Knauf (7 Aug 2010)
1999 - Fix to overwrite libcurl name.
2001 Yang Tse (7 Aug 2010)
2002 - build: chkhostname build adjustments followup
2004 U-D5B1PQ1J\Administrador (7 Aug 2010)
2005 - build: allow NTLM tests to run on more build configurations
2007 Daniel Stenberg (7 Aug 2010)
2008 - curl_easy_setopt.3: rename stream to userdata
2010 In some places where the name 'stream' has been used for naming a
2011 function argument that is in fact settable with a setopt() option we now
2012 call that argument 'userdata' to make it more obvious that it is in fact
2013 possible to set by the application.
2015 Suggested by: Jeff Pohlmeyer
2017 Guenter Knauf (7 Aug 2010)
2018 - Block created curlbuild.h for NetWare to avoid usage from other platforms.
2020 Daniel Stenberg (7 Aug 2010)
2021 - RELEASE-NOTES: synced with recent changes
2023 Yang Tse (6 Aug 2010)
2024 - build: ensure that libhostname doesn't get installed
2026 Daniel Stenberg (6 Aug 2010)
2027 - multi_socket: set timeout for 100-continue
2029 When libcurl internally decided to wait for a 100-continue header, there
2030 was no call to the timeout function so there was no timeout callback
2031 called when the multi_socket API was used and thus applications became
2032 either completely wrong or at least ineffecient depending on how they
2033 handled the situation. We now set a timeout to get triggered.
2035 Reported by: Ben Darnell
2036 Bug: http://curl.haxx.se/bug/view.cgi?id=3039744
2038 Guenter Knauf (6 Aug 2010)
2039 - Some more Watcom makefile massage ...
2041 For now removed the .autodepend directive until I've figured out
2042 which of my changes broke it again.
2044 Yang Tse (5 Aug 2010)
2045 - build: fix libssh2_scp_send64() availability
2047 - build: remove unneeded cast to (void *)
2049 - build: remove unused file
2051 Daniel Stenberg (4 Aug 2010)
2052 - SCP: send large files properly with new enough libssh2
2054 libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit
2055 architectures and we make sure to use that ability.
2057 Reported by: Mikael Johansson
2058 Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html
2060 Yang Tse (3 Aug 2010)
2061 - build: add missing new files to non-configure target build files
2063 - md4: replace bcopy usage with memcpy
2065 Daniel Stenberg (3 Aug 2010)
2066 - RELEASE-NOTES: synced with recent changes
2068 - TODO-RELEASE: clear, file not really used ATM
2070 - typecheck-gcc: add checks for recently added options
2072 I added all OBJECTPOINT curl_easy_setopt() options from 178 to 202. Left
2073 to add: the five FUNCTIONPOINT (callbacks) options added since:
2081 - .gitignore: ignore all built examples
2083 - example: fix code to build warning-free
2085 - Curl_connected_proxy: skip the bits.tcpconnect check
2087 Simply because the TCP might be connected already we cannot skip the
2088 proxy connect procedure. We need to be careful to not overload more
2089 meaning to the bits.tcpconnect field like this.
2091 With this fix, SOCKS proxies work again when the multi interface is
2092 used. I believe this regression was added with commit 4b351d018e,
2095 Left todo: add a test case that verifies this functionality that
2096 prevents us from breaking it again in the future!
2098 Reported by: Robin Cornelius
2099 Bug: http://curl.haxx.se/bug/view.cgi?id=3033966
2101 - sethostname: provide local prototype for gethostname
2103 This is only to avoid warnings on some systems.
2105 - build: add typecast to avoid warning
2107 There is an implicit conversion from "unsigned long" to "long";
2108 rounding, sign extension, or loss of accuracy may result.
2110 Guenter Knauf (2 Aug 2010)
2111 - Rename CURL_SOURCES macro; revert previous rename of curl_SOURCES macro.
2113 - Removed ugly dependency lists since wmake knows the .autodepend directive.
2115 - Use suffix search path for sources in lib folder.
2117 - Changed src/Makefile.Watcom to use CURL_SOURCES from src/Makefile.inc.
2119 - Renamed curl_SOURCES to CURL_ALLFILES to overcome wmake's case-insensitivity.
2121 - Removed wlink from DLL loader list because it doesnt work with Watcom < 1.8.
2123 - Moved the LDAP API defines from Makefile.Watcom to config-win32.h.
2125 These defines are only needed for older Watcom versions (< 1280).
2127 Daniel Stenberg (2 Aug 2010)
2128 - retry: consider retrying even if -f is used
2130 The --retry logic does retry HTTP when some specific response codes are
2131 returned, but because the -f option sets the CURLOPT_FAILONERROR to
2132 libcurl, the return codes are different for such situations and then the
2133 curl tool failed to consider it for retrying.
2135 Reported by: Mike Power
2136 Bug: http://curl.haxx.se/bug/view.cgi?id=3037362
2138 - multi: fix FTPS connecting the data connection with OpenSSL
2140 Commit 496002ea1cd76af7f (released in 7.20.1) broke FTPS when using the
2141 multi interface and OpenSSL was used. The condition for the non-blocking
2142 connect was incorrect.
2144 Reported by: Georg Lippitsch
2145 Bug: http://curl.haxx.se/mail/lib-2010-07/0270.html
2147 Guenter Knauf (1 Aug 2010)
2148 - Fixed curlbuild.h rule.
2150 - Added rule to create curlbuild.h if not present (for builds from git).
2152 - Added dependend libs for curl static linking.
2154 - Fixed curl.exe static linking.
2156 Daniel Stenberg (30 Jul 2010)
2157 - warning: silence a win64 compiler warning
2159 conversion from 'size_t' to 'curl_socklen_t', possible loss of data
2161 Reported by: Adam Light
2163 - KNOWN_BUG: The SOCKET type in Win64 is 64 bits
2165 The SOCKET type in Win64 is 64 bits large (and thus so is curl_socket_t
2166 on that platform), and long is only 32 bits. It makes it impossible for
2167 curl_easy_getinfo() to return a socket properly with the
2168 CURLINFO_LASTSOCKET option as for all other operating systems.
2170 - smtp_connect: always provide host name buffer
2172 Previously the host name buffer was only used if gethostname() exists,
2173 but since we converted that into a curl private function that function
2174 always exists and will be used so the buffer needs to exist for all
2177 - sethostname: avoid including unistd.h to duck for warnings
2179 - sethostname: ISO C does not allow extra `;' outside of a function
2181 - [Kamil Dudka brought this change]
2183 NTLM tests: boost coverage by forcing the hostname
2185 A shared library tests/libtest/.libs/lihostname.so is preloaded in NTLM
2186 test-cases to override the system implementation of gethostname(). It
2187 makes it possible to test the NTLM authentication for exact match, and
2188 this way test the implementation of MD4 and DES.
2190 If LD_PRELOAD doesn't work, a debug build willl also workk as debug
2191 builds are now made to prefer a specific environment variable and will
2192 then return that content as host name instead of the actual one.
2194 Kamil wrote the bulk of this, Daniel Stenberg polished it.
2196 Guenter Knauf (29 Jul 2010)
2197 - Added a comment with an alternate idea to avoid the backslash line contination character.
2199 - Changed comparison to match size_t var type.
2201 - Removed unused vars to avoid compiler warnings.
2203 - Make Watcom makefiles use Makefile.inc to reduce future maintainance.
2205 lib/Makefile.Watcom works fine already, for src/Makefile.Watcom we
2206 need first to tweak src/Makefile.inc a bit - therefore the handtweaked
2207 list still exists for now.
2209 - Watcom makefiles overhaul.
2211 - make both libcurl and curl makefiles use register calling convention
2212 (previously libcurl had stack calling convention).
2213 - added include paths to the Watcom headers so its no longer required
2214 to set the environment vars for this.
2215 - added -wcd=201 to supress compiler warning about unreachable code.
2216 - use macros for all tools, and removed dependency on GNU tools like rm.
2217 - make ipv6 and debug builds controlable via env vars and so make them
2218 optional instead of default.
2219 - commented WINLDAPAPI and WINBERAPI since they broke with OW 1.8, and
2220 it seems they're not needed (anymore?).
2221 - added rule for hugehelp.c.cvs so that it will be created when not
2222 already exist - this is required for building from a release tarball
2223 since there we have no hugehelp.c.cvs, thus compilation broke.
2224 - removed C_ARG creation from lib/Makefile.Watcom and use CFLAGS
2225 directly as done too in src/Makefile.Watcom - this has the benefit
2226 that we will see all active cflags and defines during compile.
2227 - added LINK-ARG to src/Makefile.Watcom in order to better control
2229 - a couple of other minor makefile tweaks here and there ...
2230 - added largefile support for Watcom builds to config-win32.h. Not yet
2231 tested if it really works, but should since Win32 supports it.
2232 - added loaddll stuff to speed up builds if supported.
2234 - some cosmetic changes.
2236 Dan Fandrich (26 Jul 2010)
2237 - Added md4.c to the Watcom makefile
2239 - Added PolarSSL to the docs
2241 Daniel Stenberg (25 Jul 2010)
2242 - curl-config: --built-shared returns shared info
2244 The curl-config now features a --built-shared command line option that
2245 will output 'yes' or 'no' depending if the build process was asked to
2246 build shared library/libraries or not.
2248 It is primarily made to offer more details to the test suite to know
2249 what kind of stunts it can expect to work.
2251 - add_buffer_send: fix compiler warning
2253 Win64's 32 bit long but 64 bit size_t caused a warning that we avoid
2254 with a typecast. A small whitespace indent fix was also applied.
2256 Reported by: Adam Light
2258 Guenter Knauf (22 Jul 2010)
2259 - Updated library versions.
2261 - Fixed script version which was still based on CVS Revision tag.
2263 Dan Fandrich (21 Jul 2010)
2264 - FAQ: Why doesn't cURL error out when the cable is unplugged?
2266 This one was long overdue to be mentioned in the FAQ. Also, mention the
2267 new ftp wildcard downloading feature.
2269 Daniel Stenberg (21 Jul 2010)
2270 - [Ben Greear brought this change]
2272 ssh: Fix compile error on 64-bit systems.
2274 Signed-off-by: Ben Greear <greearb@candelatech.com>
2276 - [Ben Greear brought this change]
2278 build: Enable configure --enable-werror
2280 This passes -Werror to gcc when building curl and libcurl,
2281 allowing easy dection of compile warnings.
2283 Signed-off-by: Ben Greear <greearb@candelatech.com>
2285 - [Ben Greear brought this change]
2287 pingpong: Fix indentation (whitespace change only)
2289 Signed-off-by: Ben Greear <greearb@candelatech.com>
2291 - [Jan Van Boghout brought this change]
2293 CUSTOMREQUEST: shouldn't be disabled when HTTP is disabled
2295 ... since FTP is using it as well, and potentially other protocols!
2297 Also, an #endif CURL_DISABLE_HTTP was incorrectly marked, as it seems to
2298 end the proxy block instead.
2300 - [Jan Van Boghout brought this change]
2302 pingpong: response_time is milliseconds
2304 Fixed the comment/document for the response_time struct member.
2306 - [Jan Van Boghout brought this change]
2308 ftp: response timeout bug in "quote" sending
2310 The FTP implementation was missing a timestamp reset point, making the
2311 waiting for responses after sending a post-transfer "QUOTE" command not
2312 working as supposedly. This bug was introduced in 7.20.0
2314 - [Jeff Pohlmeyer brought this change]
2316 remote-header-name: chop filename at next semicolon
2318 The --remote-header-name option for the command-line tool assumes that
2319 everything beyond the filename= field is part of the filename, but that
2320 might not always be the case, for example:
2322 Content-Disposition: attachment; filename=file.txt; modification-date=...
2324 This fix chops the filename off at the next semicolon, if there is one.
2326 - --retry: access violation with URL part sets continued
2328 When getting multiple URLs, curl didn't properly reset the byte counter
2329 after a successful transfer so if the subsequent transfer failed it
2330 would wrongly use the previous byte counter and behave badly (segfault)
2331 because of that. The code assumes that the byte counter and the 'stream'
2332 pointer is well in synch.
2334 Reported by: Jon Sargeant
2335 Bug: http://curl.haxx.se/bug/view.cgi?id=3028241
2337 - releasnote: synch up with commit f3b77e5611d
2339 - [Constantine Sapuntzakis brought this change]
2341 examples: add curl_multi_timeout
2343 Make the multi-interface using examples use curl_multi_timeout to
2344 properly educate users how to do things.
2346 - configure: document the STATICLIB variable
2348 - [Constantine Sapuntzakis brought this change]
2350 multi: fix condition that remove timers before trigger
2352 curl_multi perform has two phases: run through every easy handle calling
2353 multi_runsingle and remove expired timers (timer removal).
2355 If a small timer (e.g. 1-10ms) is set during multi_runsingle, then it's
2356 possible that the timer has passed by when the timer removal runs. The
2357 timer which was just added is then removed. This will potentially cause
2358 the timer list to be empty and cause the next call to curl_multi_timeout
2359 to return -1. Ideally, curl_multi_timeout should return 0 in this case.
2361 One way to fix this is to move the struct timeval now = Curl_tvnow(); to
2362 the top of curl_multi_perform. The change does that.
2364 - [Constantine Sapuntzakis brought this change]
2366 threaded resolver: fix timeout issue
2368 Reset old timer first so we can set a new one further in the future.
2370 - configure: allow environments variable to override internals
2372 configure checks for grep, egrep, sed and ar and set the variables GREP,
2373 EGREP, SED and AR accordingly. We now let already set variables override
2374 the internal choices to let users make decisions when they know the
2375 right choice already. This is a regression as our configure script used
2376 to allow this back before commit 0b57c475 (up to 7.18.2).
2378 Reported by: "kdekker"
2379 Bug: http://curl.haxx.se/bug/view.cgi?id=3028318
2381 Dan Fandrich (9 Jul 2010)
2382 - Improved the Android build instructions
2384 Daniel Stenberg (7 Jul 2010)
2385 - [Tor Arntsen brought this change]
2387 upload: Avoid infinite loop when checking for auth bits
2389 The test would loop forever if authtype bit 0 wasn't set.
2391 - upload: warn users trying to upload from stdin with anyauth
2393 Since uploading from stdin is very likely to not work with anyauth and
2394 its multi-phase probing for what authentication to actually use, alert
2395 the user about it. Multi-phase negotiate almost certainly will involve
2396 sending data and thus libcurl will need to rewind the stream to send
2397 again, and it cannot do that with stdin.
2399 - http: don't enable chunked during authentication negotiations
2401 As mentioned in bug report #2956968, the HTTP code wouldn't send the
2402 first empty chunk during the auth negotiation phase of the HTTP request
2403 sending, so the server would wait for data to come and libcurl would
2404 wait for data to arrive... I've made the code not enable chunked
2405 encoding until the auth negotiation is done and thus this scenario
2406 doesn't occur anymore.
2408 Reported by: Sidney San Martín
2409 Bug: http://curl.haxx.se/bug/view.cgi?id=2956968
2411 - --libcurl: list the tricky options instead of using [REMARK]
2413 I think the [REMARK] and commented function calls cluttered the code a
2414 bit too much and made the generated code ugly to read. Now we instead
2415 track the remarks one specially and just lists them at the end of the
2416 generated code more as additional information.
2418 - curl: avoid setting libcurl options to its default
2420 it makes the --libcurl output easier to follow.
2422 - --libcurl: hide setopt() calls setting default options
2424 And additionally, don't show function or object pointers actual value
2425 since they make no sense to anyone. Show 'functionpointer' and
2426 'objectpointer' instead.
2428 - --libcurl: use *_LARGE options with typecasted constants
2430 In the generated code --libcurl makes, all calls to curl_easy_setopt()
2431 that use *_LARGE options now have the value typecasted to curl_off_t, so
2432 that it works correctly for 32bit systems with 64bit curl_off_t type.
2434 - multi: CURLINFO_LASTSOCKET doesn't work after remove_handle
2436 When curl_multi_remove_handle() is called and an easy handle is returned
2437 to the connection cache held in the multi handle, then we cannot allow
2438 CURLINFO_LASTSOCKET to extract it since that will more or less encourage
2439 that the user uses the socket while it can get used by libcurl again.
2441 Without this fix, we'd get a segfault in Curl_getconnectinfo() trying to
2442 dereference the NULL pointer in 'data->state.connc'.
2444 Bug: http://curl.haxx.se/bug/view.cgi?id=3023840
2446 - [Pierre Joye brought this change]
2448 build: add enable IPV6 option for the VC makefiles
2450 - FAQ: the threaded resolver works universally now
2452 Kamil Dudka (30 Jun 2010)
2453 - http_ntlm: add support for NSS
2455 When configured with '--without-ssl --with-nss', NTLM authentication
2456 now uses NSS crypto library for MD5 and DES. For MD4 we have a local
2457 implementation in that case. More details are available at
2458 https://bugzilla.redhat.com/603783
2460 In order to get it working, curl_global_init() must be called with
2461 CURL_GLOBAL_SSL or CURL_GLOBAL_ALL. That's necessary because NSS needs
2462 to be initialized globally and we do so only when the NSS library is
2463 actually required by protocol. The mentioned call of curl_global_init()
2464 is responsible for creating of the initialization mutex.
2466 There was also slightly changed the NSS initialization scenario, in
2467 particular, loading of the NSS PEM module. It used to be loaded always
2468 right after the NSS library was initialized. Now the library is
2469 initialized as soon as any SSL or NTLM is required, while the PEM module
2470 is prevented from being loaded until the SSL is actually required.
2472 Daniel Stenberg (29 Jun 2010)
2473 - glob: backslash escaping bug
2475 curl didn't properly handle escaping characters in a URL with the use of
2476 backslash. It did an attempt, but that failed as reported in bug
2477 3022551. The described example was using the URL
2478 "http://example.com?{AB,C\,D}".
2480 I've now removed the special-handling of letters following the backslash
2481 and I also removed the bad extra check that triggered this particular
2484 Bug: http://curl.haxx.se/bug/view.cgi?id=3022551
2485 Reported by: Jon Sargeant
2487 - release-notes: sync up with recent commits
2489 - CONTRIBUTE: the git commit message line length is 72 columns
2491 - [Pavel Raiskup brought this change]
2493 ftp wildcard: FTP LIST parser FIX
2495 There was a problem when a UNIX-like server returned information
2496 about directory size (total NNNNNN) at the first line of
2499 - [Pavel Raiskup brought this change]
2501 examples: new FTP wildcard showcase
2503 - multi_socket: re-use of same socket without notifying app
2505 When a hostname resolves to multiple IP addresses and the first one
2506 tried doesn't work, the socket for the second attempt may get dropped on
2507 the floor, causing the request to eventually time out. The issue is that
2508 when using kqueue (as on mac and bsd platforms) instead of select, the
2509 kernel removes the first fd from kqueue when it is closed (in trynextip,
2510 connect.c:503). Trynextip() then goes on to open a new socket, which
2511 gets assigned the same number as the one it just closed. Later in
2512 multi.c, socket_cb is not called because the fd is already in
2513 multi->sockhash, so the new socket is never added to kqueue.
2515 The correct fix is to ensure that socket_cb is called to remove the fd
2516 when trynextip() closes the socket, and again to re-add it after
2517 singleipsocket(). I'm not sure how to cleanly do that, but the attached
2518 patch works around the problem in an admittedly kludgy way by delaying
2519 the close to ensure that the newly-opened socket gets a different fd.
2521 Daniel's added comment: I didn't spot a way to easily do a nicer fix so
2522 I've proceeded with Ben's patch.
2524 Bug: http://curl.haxx.se/bug/view.cgi?id=3017819
2525 Patch by: Ben Darnell
2527 Kamil Dudka (24 Jun 2010)
2528 - [Pavel Raiskup brought this change]
2530 ftp-wildcard: avoid tight loop when used without any pattern
2532 It was broken for URLs like "ftp://example.com/".
2534 Daniel Stenberg (21 Jun 2010)
2535 - maketgz: produce CHANGES automatically with the 1000 most recent commits
2537 It passes the git log output through 'log2changes.pl' to produce
2540 - ignore: CHANGES.dist gets generated by maketgz
2542 - CHANGES: move all contents from CHANGES to CHANGES.0
2544 CHANGES is no longer used for manually edited content. It is to
2545 be generated automatically by maketgz when we make release
2548 - log2changes: correct command line, fix tag usage, change Version output
2550 --decorate=full is needed with my git 1.7.1 to get the necessary
2551 output so that the previous edit would work to extract the
2554 ... but I had to edit how the refs/tags was extracted since it
2555 had a little flaw that made it miss the 7.20.1 output.
2557 Finally, I changed so that Version is outputted even more similar
2558 to how CHANGES does it.
2560 Dan Fandrich (21 Jun 2010)
2561 - Make the output of log2changes.pl even more closely match CHANGES
2563 Add the ASCII art header, and list version commits by decoding
2564 the ref tag names, when available (using the git log --decorate
2567 Daniel Stenberg (19 Jun 2010)
2568 - log2changes: first version of the git log to CHANGES conversion script
2570 $ git log --pretty=fuller --no-color --date=short | ./log2changes.pl
2572 Of course, limiting the log output with a range like with
2573 "[tag]..HEAD" appended can be very useful too.
2575 - sendrecv: treat all negative values from send/recv as errors
2577 For example the libssh2 based functions return other negative
2578 values than -1 to signal errors and it is important that we catch
2579 them properly. Right before this, various failures from libssh2
2580 were treated as negative download amounts which caused havoc.
2582 - multi: prevent NULL pointer dereference
2584 My additional call to Curl_pgrsUpdate() would sometimes get
2585 called even though there's no connection (left) so a NULL pointer
2586 would get passed, causing a segfault.
2588 - smtp: fixed a few uses of size_t that seemed to believe it was signed
2590 Reported-by: Steven M. Schweda
2592 Dan Fandrich (17 Jun 2010)
2593 - Fixed an OOM memory leak in the FTP wildcard code
2595 Kamil Dudka (17 Jun 2010)
2596 - test575: do not fail with threaded DNS resolver
2598 Daniel Stenberg (17 Jun 2010)
2599 - [Krister Johansen brought this change]
2601 multi: unmark handle as used when no longer head of pipeline
2603 - multi: call the progress function only once and allow abort
2605 1) no need to call the progress function twice when in the
2606 CURLM_STATE_TOOFAST state.
2608 2) Make sure that the progress callback's return code is
2609 acknowledged when used
2611 - multi: call the progress callback in all states
2613 As long as no error is reported, the progress function can get
2614 called. This may be a little TOO often so we should keep an eye
2615 on this and possibly make this conditional somehow.
2617 - configure: spell --disable-threaded-resolver correctly
2619 Previously we only accepted the option when named
2620 --disable-threaded-resover, which wasn't quite intended.
2622 Reported by: Helwing Lutz
2624 - release: start on 7.21.1, bump contributor count
2626 - version: start working on the 7.21.1-dev version
2628 - THANKS: added contributors from the 7.21.0 release
2630 Version 7.21.0 (16 Jun 2010)
2632 Daniel Stenberg (16 Jun 2010)
2635 Yang Tse (10 Jun 2010)
2636 - remove unused 'tmpdata' and 'backup' ftp_parselist_data struct members
2638 - replace isprint() with ISPRINT()
2640 - ensure that Curl_wildcard_dtor() leaves WildcardData struct zero initialized
2642 Patrick Monnerat (9 Jun 2010)
2643 - ILE/RPG binding updated to current curl.h definitions.
2645 Yang Tse (9 Jun 2010)
2646 - code simplification
2648 - add Curl_ prefix to conform with cURL naming standards
2650 - Merge branch 'master' of git@github.com:bagder/curl
2652 - fix compiler warning using curl_socket_t to store socket descriptor
2654 Daniel Stenberg (8 Jun 2010)
2655 - inet_pton: warnings: use size_t to store pointer deltas
2657 Yang Tse (8 Jun 2010)
2658 - avoid redundant work when reusing same connection
2660 - fix function result checking
2662 Daniel Stenberg (8 Jun 2010)
2663 - transfer: warning: implicit conversion
2665 There is an implicit conversion from "unsigned long" to "long";
2666 rounding, sign extension, or loss of accuracy may result.
2668 Fixed by an added typecast.
2670 - TFTP: fix compiler warning
2672 Curl_fillreadbuffer()'s second argument takes an int, so
2673 typecasting to another is a bad idea.
2675 - TFTP: fix warning for sendto() usage on non-POSIX systems
2677 Older unixes want an 'int' instead of 'size_t' as the 3rd
2678 argumment so before this change it would cause warnings such as:
2680 There is an implicit conversion from "unsigned long" to "int";
2681 rounding, sign extension, or loss of accuracy may result.
2683 Dan Fandrich (7 Jun 2010)
2684 - Include Makefile.inc to get the list of source files for Amiga
2686 Signed-off-by: Diego Casorran <dcasorran@gmail.com>
2688 Yang Tse (7 Jun 2010)
2689 - Curl_updateconninfo() error handling fix
2691 Daniel Stenberg (5 Jun 2010)
2692 - [Constantine Sapuntzakis brought this change]
2694 OpenSSL: fix spurious SSL connection aborts
2696 Was seeing spurious SSL connection aborts using libcurl and
2697 OpenSSL. I tracked it down to uncleared error state on the
2698 OpenSSL error stack - patch attached deals with that.
2700 Rough idea of problem:
2702 Code that uses libcurl calls some library that uses OpenSSL but
2703 don't clear the OpenSSL error stack after an error.
2705 ssluse.c calls SSL_read which eventually gets an EWOULDBLOCK from
2706 the OS. Returns -1 to indicate an error
2708 ssluse.c calls SSL_get_error. First thing, SSL_get_error calls
2709 ERR_get_error to check the OpenSSL error stack, finds an old
2710 error and returns SSL_ERROR_SSL instead of SSL_ERROR_WANT_READ or
2711 SSL_ERROR_WANT_WRITE.
2713 ssluse.c returns an error and aborts the connection
2717 Clear the openssl error stack before calling SSL_* operation if
2718 we're going to call SSL_get_error afterwards.
2722 This is much more likely to happen with multi because it's easier
2723 to intersperse other calls to the OpenSSL library in the same
2726 Yang Tse (5 Jun 2010)
2727 - replace socklen_t with curl_socklen_t
2729 Daniel Stenberg (5 Jun 2010)
2730 - [Frank Meier brought this change]
2732 getinfo: added *_PRIMARY_PORT, *_LOCAL_IP and *_LOCAL_PORT
2734 - RELEASE-NOTES: add contributors not mentioned
2736 Yang Tse (4 Jun 2010)
2737 - Enable OpenLDAP support for cygwin builds.
2739 Enable OpenLDAP support for cygwin builds. This support was disabled back
2740 in 2008 due to incompatibilities between OpenSSL and OpenLDAP headers.
2741 cygwin's OpenSSL 0.9.8l and OpenLDAP 2.3.43 versions on cygwin 1.5.25
2742 allow building an OpenLDAP enabled libcurl supporting back to Windows 95.
2744 Remove non-functional CURL_LDAP_HYBRID code and references.
2746 Kamil Dudka (2 Jun 2010)
2747 - ftplistparser.c: oops, fix typo in the last commit
2749 - ftplistparser.c: avoid some invalid dereferences
2751 - lib: eliminate some dead code
2753 Daniel Stenberg (2 Jun 2010)
2754 - SSH: corrected the inability to respect the timeout
2756 Jason McDonald posted bug report #3006786 when he found that the
2757 SFTP code didn't timeout properly in several places in the code
2758 even if a timeout was set properly.
2760 Based on his suggested patch, I wrote a different implementation
2761 that I think addressed the issue better and also uses the connect
2762 timeout for the initial part of the SSH/SFTP done during the
2763 "protocol connect" phase.
2765 (http://curl.haxx.se/bug/view.cgi?id=3006786)
2767 Yang Tse (2 Jun 2010)
2768 - mention last changes
2770 - add missing new files to non-configure target build files
2772 - include libcurl standard internal headers
2774 Daniel Stenberg (2 Jun 2010)
2775 - TODO: add multi interface improvement remove ldap select
2777 Yang Tse (2 Jun 2010)
2778 - make setup.h first included file
2780 - fix spnego memory leak
2782 - openldap header inclusions fix
2784 Daniel Stenberg (1 Jun 2010)
2785 - multi_socket: handles timer inaccuracy better for timeouts
2787 Igor Novoseltsev reported a problem with the multi socket API and
2788 using timeouts and timers. It boiled down to a problem with
2789 libcurl's use of GetTickCount() interally to figure out the
2790 current time, while Igor's own application code used another
2793 It made his app call the socket API timeout function a bit
2794 _before_ libcurl would consider the timeout to trigger, and that
2795 could easily lead to timeouts or stalls in the app. It seems
2796 GetTickCount() in general often has no better resolution than
2797 16ms and switching to the alternative function
2798 QueryPerformanceCounter has its share of problems:
2799 http://www.virtualdub.org/blog/pivot/entry.php?id=106
2801 We address this problem by simply having libcurl treat timers
2802 that already has occured or will occur within 40ms subject for
2803 treatment. I'm confident that there are other implementations and
2804 operating systems with similarly in accurate timer functions so
2805 it makes sense to have applied generically and I don't believe we
2806 sacrifice much by adding a 40ms inaccuracy on these timeouts.
2808 Yang Tse (1 Jun 2010)
2809 - fix ldaps option issue
2811 - fix ldap related compilation issues
2813 - fix compiler warning: enumerated type mixed with another type
2815 - fix compiler warning: enumerated type mixed with another type
2817 Patrick Monnerat (31 May 2010)
2818 - smtp_authenticate: avoid compiler warnings
2820 Yang Tse (31 May 2010)
2821 - fix compiler warning: enumerated type mixed with another type
2823 - fix compiler warning: enumerated type mixed with another type
2825 - fix compiler warning: enumerated type mixed with another type
2827 - fix compiler warning: external declaration in primary source file
2829 - fix compiler warning: variable was set but never used
2831 - fix compiler warning: enumerated type mixed with another type
2833 - fix compiler warning: external declaration in primary source file
2835 - update year in copyright notice
2837 Kamil Dudka (29 May 2010)
2838 - strtoofft: rename CURL_LLONG_MIN -> CURL_OFF_T_MIN
2840 ... and CURL_LLONG_MAX -> CURL_OFF_T_MAX
2842 - CURL_LLONG_MAX: avoid constant overflow
2844 ... when (CURL_SIZEOF_CURL_OFF_T == 4)
2846 Daniel Stenberg (28 May 2010)
2847 - [Howard Chu brought this change]
2849 LDAPS: list availability depending on SSL's presence
2851 - [Howard Chu brought this change]
2853 LDAP: make it build without SSL if no such support is available
2855 of course it also goes for the case where SSL is explicitly
2858 - TODO: removed fixed items
2860 These two items are now actually implemented:
2862 11.1 Content-Disposition
2863 11.5 ftp wildcard download
2865 Kamil Dudka (28 May 2010)
2866 - lib: eliminate 'statement not reached' warnings
2868 Daniel Stenberg (28 May 2010)
2869 - test1115: verify that unexpected 1xx responses work fine
2871 Kamil Dudka (28 May 2010)
2872 - lib577: avoid redefinition of ERROR
2874 - test313: a new test for CRL support
2876 - tests/certs: re-generated because of lost pass-phrase
2878 - tests/certs/scripts: generate also CRL
2880 ... and make it possible to do so without any user interaction
2882 Daniel Stenberg (27 May 2010)
2883 - [Howard Chu brought this change]
2885 openldap: fix compiler warnings
2887 - indent: some whitespace edits
2889 Kamil Dudka (27 May 2010)
2890 - wildcard.c: add missing include of "setup.h"
2892 - [Tor Arntsen brought this change]
2894 lib573: do not compare double for exact match
2896 - [Pavel Raiskup brought this change]
2898 wildcard.c: add missing include of "curl_memory.h"
2900 - [Tor Arntsen brought this change]
2902 setup_once: use enum type for 'bool' on non-C99 platforms
2904 An enum will catch non-bool assignments to bool on platforms with
2905 a strict compiler, e.g MIPSPro.
2907 Signed-off-by: Kamil Dudka <kdudka@redhat.com>
2909 - url.c: avoid implied cast to bool
2911 - [Tor Arntsen brought this change]
2913 curl_fnmatch: remove use of register keyword
2915 Using the 'register' keyword rarely improves anything with modern
2916 compilers and architectures.
2918 Daniel Stenberg (26 May 2010)
2919 - [Julien Chaffraix brought this change]
2921 RTMP: Fix compiler warnings
2923 - [Julien Chaffraix brought this change]
2925 OOM fixes in http_negociate.c and lib/splay.c
2927 Fix 2 OOM errors: a missing NULL-check in lib/http_negociate.c
2928 and a potential NULL dereferencing in lib/splay.c
2930 - [Howard Chu brought this change]
2932 LDAP: properly implemented as a curl_handler
2934 makes the LDAP code much cleaner, nicer and in general being a
2935 better libcurl citizen. If a new enough OpenLDAP version is
2936 detect, the new and shiny lib/openldap.c code is then used
2937 instead of the old cruft
2939 Code by Howard, minor cleanups by Daniel.
2941 - [Tor Arntsen brought this change]
2943 curl_fnmatch: Use int not bool when function returns int
2945 bool in curl internals is unsigned char and should not be used
2946 to receive return value from functions returning int - this fails
2947 when using IBM VisualAge and Tru64 compilers.
2949 - TFTP: send legal timeout value
2951 Eric Mertens posted bug #3003705: when we made TFTP use the
2952 correct timeout option when sent to the server (fixed May 18th
2953 2010) it became obvious that libcurl used invalid timeout values
2954 (300 by default while the RFC allows nothing above 255). While of
2955 course it is obvious that as TFTP has worked thus far without
2956 being able to set timeout at all, just removing the setting
2957 wouldn't make any difference in behavior. I decided to still keep
2958 it (but fix the problem) as it now actually allows for easier
2959 (future) customization of the timeout.
2961 (http://curl.haxx.se/bug/view.cgi?id=3003705)
2963 - TFTP: don't ack if wrong block num is received
2965 If an unexpected block number was received, break out of the
2968 - TFTP: block id wrap bug fix
2970 In a normal expression, doing [unsigned short] + 1 will not wrap
2971 at 16 bits so the comparisons and outputs were done wrong. I
2972 added a macro do make sure it gets done right.
2974 Douglas Kilpatrick filed bug report #3004787 about it:
2975 http://curl.haxx.se/bug/view.cgi?id=3004787
2977 - [Ben Greear brought this change]
2981 Signed-off-by: Ben Greear <greearb@candelatech.com>
2983 - [Ben Greear brought this change]
2985 setopt: Fix setting of set.is_fwrite_set
2987 Signed-off-by: Ben Greear <greearb@candelatech.com>
2989 - [Tanguy Fautre brought this change]
2991 build: allow curl to build with Microsoft VC10
2993 By undefing a bunch of E* defines that VC10 has started to define
2994 but that we redefine internally to their WSA* alternatives when
2995 building for Windows.
2997 Kamil Dudka (20 May 2010)
2998 - [Tor Arntsen brought this change]
3000 Test 573: Use correct type for CURLINFO_CONNECT_TIME
3002 curl_easy_getinfo() called with a pointer to long instead of double
3003 would sigbus on RISC processors (e.g. MIPS) due to wrong alignment
3006 - [Tor Arntsen brought this change]
3008 lib: Fix AIX build failure
3010 Dan Fandrich (19 May 2010)
3011 - Fixed some memory leaks in the POP3 torture tests
3013 - Fixed a memory leak in the SMTP torture tests
3015 Daniel Stenberg (18 May 2010)
3016 - TFTP: send timeout option correctly
3018 Eric Mertens posted bug report #3003005 pointing out that the
3019 libcurl TFTP code was not sending the timeout option properly to
3020 the server, and suggested a fix.
3022 (http://curl.haxx.se/bug/view.cgi?id=3003005)
3024 Kamil Dudka (16 May 2010)
3025 - [Tor Arntsen brought this change]
3027 lib: Change some CRLF line endings to LF
3029 An update had added a couple of lines with DOS line endings,
3030 and some compilers will choke on that (e.g. the Tru64 compiler).
3032 - ftp wildcard: a new option CURLOPT_FNMATCH_DATA
3034 Daniel Stenberg (15 May 2010)
3035 - [Howard Chu brought this change]
3037 RMTP: the version code is now rtmp aware
3039 - [Howard Chu brought this change]
3041 RTMP: fix wrong #ifdef
3043 - [Pavel Raiskup brought this change]
3045 ftp wildcard: fix int32_t and size/group mixups
3047 Dan Fandrich (14 May 2010)
3048 - Fixed test 577 to work when --enable-hidden-symbols is configured
3050 Daniel Stenberg (14 May 2010)
3051 - OpenSSL: multi interface handshake could hang
3053 John-Mark Bell filed bug #3000052 that identified a problem (with
3054 an associated patch) with the OpenSSL handshake state machine
3055 when the multi interface is used:
3057 Performing an https request using a curl multi handle and using
3058 select or epoll to wait for events results in a hang. It appears
3059 that the cause is the fix for bug #2958179, which makes
3060 ossl_connect_common unconditionally return from the step 2 loop
3061 when fetching from a multi handle.
3063 When ossl_connect_step2 has completed, it updates
3064 connssl->connecting_state to ssl_connect_3. ossl_connect_common
3065 will then return to the caller, as a multi handle is in
3066 use. Eventually, the client code will call curl_multi_fdset to
3067 obtain an updated fdset to select or epoll on. For https
3068 requests, curl_multi_fdset will cause https_getsock to be called.
3069 https_getsock will only return a socket handle if the
3070 connecting_state is ssl_connect_2_reading or
3071 ssl_connect_2_writing. Therefore, the client will never obtain a
3072 valid fdset, and thus not drive the multi handle, resulting in a
3075 (http://curl.haxx.se/bug/view.cgi?id=3000052)
3077 - changelog: add link to bug report
3079 Dan Fandrich (14 May 2010)
3080 - Added directories.pm to the source tar ball
3082 Daniel Stenberg (14 May 2010)
3083 - follow redirect: ignore response-body on redirect even if compressed
3085 Sebastian V reported bug #3000056 identifying a problem with
3086 redirect following. It showed that when curl followed redirects
3087 it didn't properly ignore the response body of the 30X response
3088 if that response was using compressed Content-Encoding!
3090 (http://curl.haxx.se/bug/view.cgi?id=3000056)
3092 - version: we're now going for 7.21.0
3094 - [Hoi-Ho Chan brought this change]
3096 Remove support for BSD version of PolarSSL
3098 "The BSD version of PolarSSL was made for migratory purposes only and is not
3099 maintained. The GPL version of PolarSSL is actually the only actively
3100 developed version, so I would be very reluctant to use the BSD version." /
3101 Paul Bakker, PolarSSL hacker.
3103 Signed-off-by: Hoi-Ho Chan <hoiho.chan@gmail.com>
3105 Dan Fandrich (12 May 2010)
3106 - Added Polar SSL and RTMP files to the non-autoconf build files
3108 I didn't bother with a few that have little hope of running the required
3109 dependent libraries.
3111 - Added the new ftp source files to the non-autoconf build files
3113 - Copy the license file so it's seen by the Android build system
3115 Daniel Stenberg (13 May 2010)
3116 - updated with symbols added in recent commits for 7.21.0
3118 - changelogs: mention RTMP and the FTP wildcard support
3120 - ftp wildcards: mention they're added in 7.21.0
3122 - style: minor whitespace change
3126 - [Pavel Raiskup brought this change]
3128 FTP: WILDCARDMATCH/CHUNKING/FNMATCH added
3130 - [Howard Chu brought this change]
3132 RTMP: initial support added, powered by librtmp
3134 librtmp is found at http://rtmpdump.mplayerhq.hu/
3136 - [Howard Chu brought this change]
3138 sendrecv: make them two pairs of send/recv to properly deal with FTPS
3140 FTP(S) use two connections that can be set to different recv and
3141 send functions independently, so by introducing recv+send pairs
3142 in the same manner we already have sockets/connections we can
3143 work with FTPS fine.
3145 This commit fixes the FTPS regression introduced in change d64bd82.
3147 Kamil Dudka (11 May 2010)
3148 - changelog: fixed CRL support in libcurl-NSS
3150 - nss: make it possible to read ASCII and DER CRL
3152 - nss: add CRL to cache instead of read-only NSS db
3154 Daniel Stenberg (10 May 2010)
3155 - git: how to write a fine commit message
3157 - findtool: file name as a full path requires a slash
3159 Kalle Vahlman's patch applied a while ago broke how the findtool
3160 function searches for tools, as it would always check if "$file"
3161 was present first, which thus made the bad assumption that a file
3162 in the current directory would be a match.
3164 I noticed when it found 'libtool' in the current directory but
3165 libtoolize is not there, which confused the script.
3168 - moved vars into conditional since seems that winsock implementation doesnt use them.
3170 Daniel Stenberg (7 May 2010)
3171 - multi interface: missed storing connection time
3173 Dirk Manske reported a regression. When connecting with the multi
3174 interface, there were situations where libcurl wouldn't store
3175 connect time correctly as it used to (and is documented to) do.
3177 Using his fine sample program we could repeat it, and I wrote up
3178 test case 573 using that code. The problem does not easily show
3179 itself using the local test suite though.
3181 The fix, also as suggested by Dirk, is a bit on the ugly side as
3182 it adds yet another call to Curl_verboseconnect() and setting the
3183 TIMER_CONNECT time. That situation is subject for some closer
3184 inspection in the future.
3186 - verboseconnect: so the verbose checking within the function
3188 As the function is used more than once and libcurl can be built
3189 without it, do the conditional check within the verboseconnect()
3192 - changelogs: split the I/O handling
3194 - [Howard Chu brought this change]
3196 sendrecv: split the I/O handling into private handler
3198 Howard Chu brought the bulk work of this patch that properly
3199 moves out the sending and recving of data to the parts of the
3200 code that are properly responsible for the various ways of doing
3203 Daniel Stenberg assisted with polishing a few bits and fixed some
3204 minor flaws in the original patch.
3206 Another upside of this patch is that we now abuse CURLcodes less
3207 with the "magic" -1 return codes and instead use CURLE_AGAIN more
3210 - changelog: PolarSSL
3212 - [Hoi-Ho Chan brought this change]
3214 PolarSSL: initial support added
3216 This is Hoi-Ho Chan's patch with some minor fixes by me. There
3217 are some potential issues in this, but none worse than we can
3218 sort out on the list and over time.
3220 - TODO: we've done PRET already, consider HOST for the future
3222 ... and GnuTLS connects are non-blocking, TFTP is better
3223 integrated as a "real" protocol and RTSP is supported.
3225 - TODO: GnuTLS connects are now non-blocking
3227 Since commit c288860 by Jerome Vouillon
3229 - INTERNALS: tftp is decent now, ldap is not
3231 It's not quite fair to list TFTP is a "crappy" member of the
3232 libcurl family so I removed its mentioning.
3234 - changelog: mention Ben Greear's telnet work
3236 - [Ben Greear brought this change]
3238 telnet: Allow programatic use of telnet.
3240 The main change is to allow input from user-specified methods,
3241 when they are specified with CURLOPT_READFUNCTION.
3242 All calls to fflush(stdout) in telnet.c were removed, which makes
3243 using 'curl telnet://foo.com' painful since prompts and other data
3244 are not always returned to the user promptly. Use
3245 'curl --no-buffer telnet://foo.com' instead. In general,
3246 the user should have their CURLOPT_WRITEFUNCTION do a fflush
3247 for interactive use.
3249 Also fix assumption that reading from stdin never returns < 0.
3250 Old code could crash in that case.
3252 Call progress functions in telnet main loop.
3254 Signed-off-by: Ben Greear <greearb@candelatech.com>
3256 - test: enable valgrind for 604, seems to work
3258 Kamil Dudka (28 Apr 2010)
3259 - [Paul Howarth brought this change]
3261 add 1s post-command delay to tests 513 and 514
3263 addressing http://curl.haxx.se/mail/lib-2009-12/0031.html
3265 Daniel Stenberg (26 Apr 2010)
3266 - [Kalle Vahlman brought this change]
3268 Allow tools to be defined with full path in buildconf
3270 This is required in Scratchbox where
3271 LIBTOOL=/targets/links/arch_tools/bin/libtool
3272 is set in the environment.
3274 - progress callback: can be called more than once per sec
3276 - SSH: init and cleanup libssh2 in global_init/cleanup
3278 The necessary libssh2 functions require libssh2 1.2.5 or later.
3280 - new configure option --enable-threaded-resolver
3282 - configure: check for libssh2_init and libssh2_exit
3284 Kamil Dudka (24 Apr 2010)
3285 - nss: fix SSL handshake timeout underflow
3287 Guenter Knauf (24 Apr 2010)
3288 - encourage users to take latest lib dependencies.
3290 Daniel Stenberg (24 Apr 2010)
3291 - socks5: please static code analyzer
3293 Make sure we don't call memcpy() if the argument is NULL even
3294 though we also passed a zero length then, as the clang analyzer
3295 whined and we want to limit warnings (even false positives) when
3296 they're this easy to fix.
3298 The change of (char) to (unsigned char) will fix long user names
3299 and passwords on systems that have the char type signed by
3302 - gzip: Value stored to 'data' is never read
3304 - RELEASE-NOTES: update top numbers
3306 - changelog: added the --proto and -proto-redir options
3308 - [Alex Bligh brought this change]
3310 curl: added --proto and --proto-redir
3312 --proto tells curl to use the listed protocols for its initial
3315 --proto-redir tells curl to use the listed protocols after a
3318 Kamil Dudka (24 Apr 2010)
3319 - test536: do not fail with threaded DNS resolver
3321 Also tweaked comments in certain examples using curl_multi_fdset().
3323 Daniel Stenberg (21 Apr 2010)
3324 - curl: -O crash on windows
3326 The -O option caused curl to crash on windows and DOS due to the
3327 tool writing out of boundary memory.
3329 Yang Tse (20 Apr 2010)
3330 - hmac.c related compilation adjustment
3332 - hmac.c related compilation adjustment
3334 monnerat (20 Apr 2010)
3335 - Add compilation directives for hmac in Watcom,riscos and vc6 platform-specific makefiles.
3337 Yang Tse (20 Apr 2010)
3338 - [Ruslan Gazizov brought this change]
3340 replaced wsock32.lib usage with ws2_32.lib in MSVC makefiles
3342 monnerat (19 Apr 2010)
3343 - Merge branch 'master' of github.com:bagder/curl
3345 - Remove null-effect leftover code.
3347 Daniel Stenberg (19 Apr 2010)
3348 - changelog: -J/--remote-header-name strips CRLF
3350 - parse_filename: strip trailing CRs and LFs
3352 The feature that uses the file name given in a
3353 Content-disposition: header didn't properly skip trailing
3354 carriage returns and linefeed characters from the end of the file
3355 name when it was given without quotes.
3357 - Curl_HMAC_MD5: fix the array init to not warn with picky compilers
3359 monnerat (19 Apr 2010)
3360 - Fix GnuTLS compilation problem in md5.c
3362 - Fix compilation problem: declare Curl_HMAC_MD5 as extern in include file.
3364 - Merge branch 'master' of github.com:bagder/curl
3366 - Implement SMTP authentication
3368 Daniel Stenberg (17 Apr 2010)
3369 - parseconfig: Value stored to 'line' is never read
3371 Make the function call with (void) as we don't care about the
3374 - parsedate: Value stored to 'found' is never read
3376 - check_gzip_header: Value stored to 'data' is never read
3378 - dprintf_formatf: Value stored to 'left' is never read
3380 - curl_version: remove superfluous assignments
3382 - FTP PORT: Value stored to 'rc' is never read
3384 - Curl_setup_transfer: no longer returns anything
3386 This function could only return CURLE_OK and by changing it to
3387 a void instead, we can simplify code all over.
3389 - PASV response: Value stored to 'rc' is never read
3391 - Curl_perform: Value stored to 'res2' is never read
3393 - sftp range: remove unnecessary check for NULL pointer
3395 - ftp_range: remove unnecessary check for NULL pointer
3397 - file_range: remove unnecessary check for NULL pointer
3399 - SOCKS4: Value stored to 'rc' is never read
3401 - FTP PASV: Value stored to 'rc' is never read
3403 - ftp_range: Value stored to 'totalsize' is never read
3405 Simplified the code by removing a local variable completely.
3407 - SOCKS5: when name resolves fail return immediately
3409 This makes the code flow more obvious and reacts on the return
3410 code properly, even if the code acted the same way before.
3412 - POP3: when USER command fails, don't even try PASS
3414 - tftp_rx: Value stored to 'sbytes' is never read
3416 - file_range: Value stored to 'totalsize' is never read
3418 - changelog: GnuTLS: SSL handshake phase is non-blocking
3420 - [Jerome Vouillon brought this change]
3422 GnuTLS: make the connection phase non-blocking
3424 When multi interface is used, the SSL handshake is no longer
3425 blocking when GnuTLS is used.
3427 - krb5_auth: fix my previous change to compile
3429 unknown (16 Apr 2010)
3430 - OS400 version V5R2M0 not supported anymore by IBM: default target release changed to V5R3M0.
3432 Daniel Stenberg (16 Apr 2010)
3433 - changelog: GnuTLS fix, no reverse loopkups and fixed GSS detection
3435 - SSL_RECV: EOF is not an error here
3437 The recent overhaul of the SSL recv function made this treat a
3438 zero returned from gnutls_record_recv() as an error, and this
3439 caused our HTTPS test cases to fail. We leave it to upper layer
3440 code to detect if an EOF is a problem or not.
3442 - [Paul Howarth brought this change]
3444 configure: GSSAPI detection on ancient Linux distros
3446 On some ancient distributions such as RHEL-3, <gssapi/gssapi_krb5.h> needs
3447 to be processed after <gssapi/gssapi.h>, but does not include it itself.
3448 This patch checks for <gssapi/gssapi.h> first and then includes it
3449 in the test for <gssapi/gssapi_krb5.h>, resolving the problem.
3451 Without the patch, <gssapi/gssapi_krb5.h> is "present but cannot be
3454 - resolvers: no more using AI_CANONNAME
3456 No resolver anymore needs to use AI_CANONNAME and do reverse
3457 lookups. We should work hard to avoid having code that relies on
3460 - KRB5: use given host name instead of reverse lookup'ed name
3462 This code would previously use dns_entry->addr->ai_canonname
3463 instead of the given host name, which caused us grief and
3464 problems since not all our resolver options do the reverse lookup
3465 and I would also guess that it caused problems with KRB5/GSS with
3466 virtual name-based hosts. Now the host name from the URL is used.
3468 Dan Fandrich (15 Apr 2010)
3469 - Remove redundant conditional
3471 - Eliminated an unlikely race condition in some tests.
3473 Based on a patch from the FreeBSD ports by Peter Pentchev.
3475 Daniel Stenberg (15 Apr 2010)
3476 - changelog: prevent needless reverse name lookups
3478 - Curl_ipv4_resolve_r: only set AI_CANONNAME when needed
3480 As reported in bug report #2987196, the code for ipv6 already did
3481 the setting of this bit correctly so we copied that logic into
3482 the Curl_ipv4_resolve_r() function as well. KRB code is the only
3483 code we know that might need the cannonical name so only resolve
3484 it for such requests!
3486 - IGNORE: files generated by maketgz
3488 - bumped to start the journey towards 7.20.2
3490 - added contributors from the 7.20.1 RELEASE-NOTES
3492 - ignore files generated by 'maketgz'
3494 Version 7.20.1 (14 Apr 2010)
3496 Daniel Stenberg (14 Apr 2010)
3497 - 7.20.1: 14 April 2010
3499 Guenter Knauf (13 Apr 2010)
3500 - Use correct directory for c-ares git pull
3501 Signed-off-by: Tor Arntsen <tor@spacetec.no>
3503 Yang Tse (13 Apr 2010)
3504 - fix compiler warning: variable might be clobbered by longjmp or vfork
3506 Guenter Knauf (13 Apr 2010)
3507 - added last git commit output for c-ares too.
3509 - changed the git update block to take care of c-ares repo if detected.
3511 - updated timestamp of the script.
3513 - removed obsolete var in gitpull() function
3514 no need to create a var - lets just return the status var itself.
3516 - added a cast to silent compiler warning with 64bit systems.
3518 - fixed a path typo in src/Makefile.netware.
3520 Daniel Stenberg (12 Apr 2010)
3521 - Added text for How To Make a Patch with git
3523 - update the section on timeouts
3525 The section that describes how to work with timeouts was
3526 misleading and could easily trick users to use the wrong API.
3528 - update URL and cut out wrong info on ipv6
3530 c-ares has had its own URL for a while and we should point
3531 people to that. It also works with IPv6 since a long time.
3533 - refer to CURLMOPT_TIMERFUNCTION for multi_socket users
3535 curl_multi_timeout(3) is simply the wrong function to use
3536 if you're using the multi_socket API and this document now
3537 states this pretty clearly to help guiding users.
3541 - modified to use the git file, not cvs
3543 I've done this blindly, and the last piece that works with ares
3544 should possibly be done differently now that c-ares isn't a
3545 subtree within the curl tree anymore...
3547 - mention missing test servers for <server>
3549 - FTP quote commands prefixed with '*' now can fail without aborting
3551 Prefixing the FTP quote commands with an asterisk really only
3552 worked for the postquote actions. This is now fixed and test case
3553 227 has been extended to verify.
3555 Kamil Dudka (7 Apr 2010)
3556 - qssl: reflect recent code changes in SSL interface
3558 Reported by Guenter Knauf.
3560 - nss: handle client certificate related errors
3562 - [Ben Greear brought this change]
3564 ssl: Fix build when SSL isn't enabled
3566 Signed-off-by: Ben Greear <greearb@candelatech.com>
3568 - refactorize interface of Curl_ssl_recv/Curl_ssl_send
3570 - simplify code of Curl_resolv_timeout()
3572 - eliminate a race condition in Curl_resolv_timeout()
3574 Daniel Stenberg (2 Apr 2010)
3575 - [Ben Greear brought this change]
3577 fixed compiler warnings
3579 - updated contributor count
3581 - add contributors from the 7.20.0 release notes
3583 - fix SFTP download hang
3585 Matt Wixson found and fixed a bug in the SCP/SFTP area where the
3586 code treated a 0 return code from libssh2 to be the same as
3587 EAGAIN while in reality it isn't. The problem caused a hang in
3588 SFTP transfers from a MessageWay server.
3590 Dan Fandrich (31 Mar 2010)
3591 - Fixed misleading test message
3593 Daniel Stenberg (31 Mar 2010)
3594 - update the generic copyright year range
3596 - removed README.cmake due to the improved situation
3598 Guenter Knauf (31 Mar 2010)
3599 - fix compiler warning with a cast.
3601 - make folks use latest available dependent libraries.
3603 Dan Fandrich (30 Mar 2010)
3604 - Call curl_global_cleanup() in test 560 to avoid a memory leak
3606 - Allow test 538 to run even when proxy support is disabled
3608 Daniel Stenberg (29 Mar 2010)
3609 - use (s)size_t for string lengths to fix compiler warns
3611 - use size_t to hold string length
3613 using int is not fine on 64bit systems
3615 - [Ben Greear brought this change]
3617 Fix compile warnings in ssh.c
3619 strlen() returns size_t, but ssh libraries are wanting 'unsigned int'. Add
3620 explicit casts and use _ex versions of the ssh library calls.
3622 Signed-off-by: Ben Greear <greearb@candelatech.com>
3624 - [Ben Greear brought this change]
3626 fix smtp compile warning
3628 Use ssize_t instead of int for the Curl_smtp_escape_eob nread
3631 Signed-off-by: Ben Greear <greearb@candelatech.com>
3635 - [Ben Greear brought this change]
3637 pop3: Get message listing if no mailbox in URL
3639 If you pass a URL to pop3 that does not contain a message ID as
3640 part of the URL, it will currently ask for 'INBOX' which just
3641 causes the pop3 server to return an error.
3643 The change makes libcurl treat en empty message ID as a request
3644 for LIST (list of pop3 message IDs). User's code could then
3645 parse this and download individual messages as desired.
3647 - [Ben Greear brought this change]
3649 Allow running ./tests/testcurl.pl from within git repo.
3651 My first instinct was to run the test script within the checked out
3652 repository. This small change to the script allows that to work as
3655 Signed-off-by: Ben Greear <greearb@candelatech.com>
3657 - minor language fix
3659 - [Ben Greear brought this change]
3661 allow user+password in the URL for all protocols
3663 Ben Greear brought a patch that from now on allows all protocols
3664 to specify name and user within the URL, in the same manner HTTP
3665 and FTP have been allowed to in the past - although far from all
3666 of the libcurl supported protocols actually have that feature in
3667 their URL definition spec.
3669 - ignore pid files and stunnel.conf
3671 all used while running tests
3673 - make sure git pull is actually done!
3675 - changelogged: smoother rate limiting
3677 - [Ben Greear brought this change]
3679 Make rate-limitation logic smoother
3681 This gives a smoother rate limitation performance by using
3682 sub-second pauses and also taking the buffer sizes into
3685 - remove all .cvsignore files
3687 - PROT_CLOSEACTION should not include TFTP
3689 TFTP is not a protocol that uses close actions so it should
3690 not be set in that bitmask!
3692 - [Tor Arntsen brought this change]
3694 Avoid double newline for the 'last commits' log in testcurl.pl
3696 The backtick command which extracts 'git log' lines come with a
3697 newline, so chomp the newline before calling logit(), as the logit
3698 function adds a newline by itself.
3700 - [Tor Arntsen brought this change]
3702 Change to version-independent git option for 'git log --oneline'
3704 'git log --oneline' is a relatively recent Git function. It is
3705 documented to be the same as 'git log --pretty=oneline --abbrev-commit',
3706 so use that instead. It works all the way back to Git 1.5.0.
3708 - show 5 commits even if no git pull was made
3710 - don't touch ares/aclocal.m4 and show recent git commits
3712 since c-ares no longer embedded, we must not touch such files
3715 we show the 5 last git commits if git was proven in use, to help
3716 us see exactly what's being tested
3718 - use CURL_SIZEOF_LONG instead of SIZEOF_LONG
3720 That's the symbol we have or generate in include/curl/curlbuild.h
3722 - s/CVS/DEV in the version string from the git repo
3724 Bill Hoffman (24 Mar 2010)
3725 - Merge branch 'master' of github.com:bagder/curl
3727 - Add .gitattributes files to turn off CRLF translation for some files
3729 Daniel Stenberg (24 Mar 2010)
3730 - provide a version number as today's date
3732 It should at least help visualize which autobuilds that are
3735 - testcurl now uses git instead of CVS
3737 Bill Hoffman (24 Mar 2010)
3738 - Merge branch 'master' of github.com:bagder/curl
3740 - Enable LDAP by default since it is now disabled when ldap.h is not found,
3742 - CMake fixes for Linux.
3744 Make sure <sys/socket.h> is included if around when testing/using
3745 socklen_t. Also, disable LDAP if LDAP_H is not found on the system.
3747 Daniel Stenberg (24 Mar 2010)
3748 - [Bob Richmond brought this change]
3750 fix: timeout after last data chunk was handled
3752 Bob Richmond: There's an annoying situation where libcurl will
3753 read new HTTP response data from a socket, then check if it's a
3754 timeout if one is set. If the last packet received constitutes
3755 the end of the response body, libcurl still treats it as a
3756 timeout condition and reports a message like:
3758 "Operation timed out after 3000 milliseconds with 876 out of 876
3761 It should only a timeout if the timer lapsed and we DIDN'T
3762 receive the end of the response body yet.
3764 - avoid compiler warning without USE_ALARM_TIMEOUT
3766 Bill Hoffman (24 Mar 2010)
3767 - Fix curl CMake build.
3769 This commit fixes the cmake build of curl, and cleans up the
3770 cmake code a little. It removes some commented out code and
3771 some trailing whitespace. To get curl to build the binary
3772 tree include/curl directory needed to be added to the include
3773 path. Also, SIZEOF_SHORT needed to be added. A check for the
3774 lack of defines of SIZEOF_* for warnless.c was added.
3776 Daniel Stenberg (24 Mar 2010)
3777 - [Chris Conroy brought this change]
3779 remove debug printfs
3781 - RTSP GET_PARAMETER fix
3783 Christopher Conroy fixed a problem with RTSP and GET_PARAMETER
3784 reported to us by Massimo Callegari. There's a new test case 572
3785 that verifies this now.
3787 - remove trace of CVS
3789 - [Chris Conroy brought this change]
3791 Fix RTSP GET_PARAMETER empty and non-empty operation.
3793 Test coverage included. Thanks to Massimo Callegari for the bug report
3795 - s/CVS/DEV/ in the version string for repo versions
3797 - scrapped all left-over TODOs
3799 In order to get back on track, I've removed all the plans for
3800 stuff I had in the queue. I will instead focus on fixing bugs and
3801 relying on that people who truly want things added will come back
3802 on the mailing list and nag and provide patches.
3804 7.20.1 should be possible to release in April 2010
3806 - restore executable bits on some files
3808 - remove the CVSish $Id$ lines
3810 - The 'ares' subtree has been removed from the source repository
3814 - update to current state
3816 - remove the ares subtree
3818 c-ares is now hosted entirely separate from the curl project
3819 see http://c-ares.haxx.se/ for all details concerning c-ares,
3820 its source repository and more.
3822 - mark connection as connected
3824 Kenny To filed the bug report #2963679 with patch to fix a
3825 problem he experienced with doing multi interface HTTP POST over
3826 a proxy using PROXYTUNNEL. He found a case where it would connect
3827 fine but bits.tcpconnect was not set correct so libcurl didn't
3830 (http://curl.haxx.se/bug/view.cgi?id=2963679)
3834 I ran it now successfully and it helped to pinpoint a libssh2
3837 Dan Fandrich (23 Mar 2010)
3838 - Updated Symbian notes
3840 Daniel Stenberg (23 Mar 2010)
3841 - chunked-encoding with Content-Length: header problem
3843 Akos Pasztory filed debian bug report #572276
3844 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=572276
3845 mentioning a problem with a resource that returns chunked-encoded
3846 _and_ with a Content-Length and libcurl failed to properly ignore
3847 the latter information.
3849 - delayed easy handle kill caused double Curl_close() call
3851 Hauke Duden provided an example program that made the multi
3852 interface crash. His example simply used the multi interface and
3853 did first one FTP transfer and after completion it used a second
3854 easy handle and did another FTP transfer on the same FTP server.
3856 This triggered a bug in the "delayed easy handle kill" system
3857 that curl uses: when an FTP connection is left alive it must keep
3858 an easy handle around internally - only for the purpose of having
3859 an easy handle when it later disconnects it. The code assumed
3860 that when the easy handle was removed and an internal reference
3861 was made, that version could be killed later on when a new easy
3862 handle came using the same connection. This was wrong as Hauke's
3863 example showed that the removed handle wasn't killed for real
3864 until later. This caused a double close attempt => segfault.
3866 - ignore more files generated when tests run in the source tree
3868 - Thomas Lopatic fixed the alarm()-based DNS timeout
3870 - [Thomas Lopatic brought this change]
3872 fix the alarm()-based DNS timeout
3874 Looking at the code of Curl_resolv_timeout() in hostip.c, I think
3875 that in case of a timeout, the signal handler for SIGALRM never
3876 gets removed. I think that in my case it gets executed at some
3877 point later on when execution has long left Curl_resolv_timeout()
3878 or even the cURL library.
3880 The code that is jumped to with siglongjmp() simply sets the
3881 error message to "name lookup timed out" and then returns with
3882 CURLRESOLV_ERROR. I guess that instead of simply returning
3883 without cleaning up, the code should have a goto that jumps to
3884 the spot right after the call to Curl_resolv().
3886 - [Daniel Johnson brought this change]
3888 Fix warnings for clang
3890 - Merge branch 'master' of github.com:bagder/curl
3892 Kamil Dudka (22 Mar 2010)
3893 - [douglas steinwand brought this change]
3895 Fix insufficient initialization in Curl_clone_ssl_config()
3897 which could have caused a double free when reusing curl handle.
3899 Daniel Stenberg (22 Mar 2010)
3900 - we never used this file anyway
3904 - various changes of CVS to git
3906 - remove references to CVS in the code and use DEV instead
3908 - Ben Greear's two fixes explained
3910 - [Ben Greear brought this change]
3912 Fix tftp return codes and tsize upload handling
3914 Error codes were not properly returned to the main curl code (and on to apps
3917 tftp was crapping out when tsize == 0 on upload, but I see no reason to fail
3918 to upload just because the remote file is zero-length. Ignore tsize option on
3921 - more files to ignore
3923 - provide an initial set of .gitignore files
3925 Kamil Dudka (19 Mar 2010)
3926 - - Improved Curl_read() to not ignore the error returned from Curl_ssl_recv().
3928 Daniel Stenberg (18 Mar 2010)
3929 - fix warning about conversions between curl_off_t and long
3931 Yang Tse (18 Mar 2010)
3932 - another shot at the ftp_init() icc 9.1 optimizer issue
3934 - replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing
3936 - update outdated serial number
3938 Dan Fandrich (16 Mar 2010)
3939 - Factored out some code into a few independent functions
3941 Daniel Stenberg (15 Mar 2010)
3942 - - Constantine Sapuntzakis brought a patch:
3944 The problem mentioned on Dec 10 2009
3945 (http://curl.haxx.se/bug/view.cgi?id=2905220) was only partially fixed.
3946 Partially because an easy handle can be associated with many connections in
3947 the cache (e.g. if there is a redirect during the lifetime of the easy
3948 handle). The previous patch only cleaned up the first one. The new fix now
3949 removes the easy handle from all connections, not just the first one.
3951 Yang Tse (11 Mar 2010)
3952 - fix compiler warning
3954 Dan Fandrich (11 Mar 2010)
3955 - SSL should now be working out-of-the-box on Symbian S60.
3957 - Enable Symbian zlib support by default.
3959 - Allow compilation even when OpenSSL has been configured without MD4 support.
3961 - A few Symbian build changes
3963 Yang Tse (9 Mar 2010)
3964 - watt32 compilation fix
3966 Daniel Stenberg (6 Mar 2010)
3967 - - Ben Greear brought a patch that fixed the rate limiting logic for TFTP when
3968 the easy interface was used.
3970 - indent fix by Ben Greear, I removed some braces for single-line conditional
3973 Yang Tse (6 Mar 2010)
3974 - Added another VS10 version string
3978 - removed usage of 's6_addr', fixing compilation issue triggered with no
3979 longer using 'in6_addr' but only our 'ares_in6_addr' struct
3981 Daniel Stenberg (5 Mar 2010)
3982 - Daniel Johnson provided fixes for building with the clang compiler
3984 Yang Tse (5 Mar 2010)
3985 - Added IPv6 name servers support
3987 Gisle Vanem (5 Mar 2010)
3988 - Ops!. Readded ares_nowarn.h.
3990 - Added ares_nowarn.c.
3992 Yang Tse (5 Mar 2010)
3993 - Constantine Sapuntzakis detected and fixed a double free in builds done
3994 with threaded resolver enabled (Windows default configuration) that would
3995 get triggered when a curl handle is closed while doing DNS resolution.
3997 - Added SIZEOF_INT and SIZEOF_SHORT definitions for VMS configuration file
3999 Daniel Stenberg (4 Mar 2010)
4000 - Julien Chaffraix clarified CURLOPT_HEADERFUNCTION and made
4001 CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION more consistent
4003 - - [Daniel Johnson] I've been trying to build libcurl with clang on Darwin and
4004 ran into some issues with the GSSAPI tests in configure.ac. The tests first
4005 try to determine the include dirs and libs and set CPPFLAGS and LIBS
4006 accordingly. It then checks for the headers and finally sets LIBS a second
4007 time, causing the libs to be included twice. The first setting of LIBS seems
4008 redundant and should be left out, since the first part is otherwise just
4009 about finding headers.
4011 My second issue is that 'krb5-config --libs gssapi' on Darwin is less than
4012 useless and returns junk that, while it happens to work with gcc, causes
4013 clang to choke. For example, --libs returns $CFLAGS along with the libs,
4014 which is really retarded. Simply setting 'LIBS="$LIBS -lgssapi_krb5
4015 -lresolv"' on Darwin is sufficient.
4017 - - Based on patch provided by Jacob Moshenko, the transfer logic now properly
4018 makes sure that when using sub-second timeouts, there's no final bad 1000ms
4019 wait. Previously, a sub-second timeout would often make the elapsed time end
4020 up the time rounded up to the nearest second (e.g. 1s for 200ms timeout)
4022 - update the generic copyright year range to include 2010
4024 - - Andrei Benea filed bug report #2956698 and pointed out that the
4025 CURLOPT_CERTINFO feature leaked memory due to a missing OpenSSL function
4026 call. He provided the patch to fix it too.
4028 http://curl.haxx.se/bug/view.cgi?id=2956698
4030 - - Markus Duft pointed out in bug #2961796 that even though Interix has a
4031 poll() function it doesn't quite work the way we want it so we must disable
4032 it, and he also provided a patch for it.
4034 http://curl.haxx.se/bug/view.cgi?id=2961796
4036 - - Made the pingpong timeout code properly deal with the response timeout AND
4037 the global timeout if set. Also, as was reported in the bug report #2956437
4038 by Ryan Chan, the time stamp to use as basis for the per command timeout was
4039 not set properly in the DONE phase for FTP (and not for SMTP) so I fixed
4040 that just now. This was a regression compared to 7.19.7 due to the
4041 conversion of FTP code over to the generic pingpong concepts.
4043 http://curl.haxx.se/bug/view.cgi?id=2956437
4045 - remove assignment never used
4047 - - Ben Greear provided an update for TFTP that fixes upload.
4051 - - Wesley Miaw reported bug #2958179 which identified a case of looping during
4052 OpenSSL based SSL handshaking even though the multi interface was used and
4053 there was no good reason for it.
4055 http://curl.haxx.se/bug/view.cgi?id=2958179
4057 Yang Tse (28 Feb 2010)
4058 - Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
4060 - Added ares_nowarn.* to VC6 project file
4062 Daniel Stenberg (26 Feb 2010)
4063 - spellchecked by Stéphane Fillod
4065 - - Pat Ray in bug #2958474 pointed out an off-by-one case when receiving a
4066 chunked-encoding trailer.
4068 http://curl.haxx.se/bug/view.cgi?id=2958474
4070 Dan Fandrich (26 Feb 2010)
4071 - Fixed a couple of out of memory leaks and a segfault in the IMAP code.
4073 Yang Tse (26 Feb 2010)
4076 - Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
4078 - Added SIZEOF_INT definition
4080 - fix compiler warning
4082 - fix compiler warning
4084 - fix compiler warning
4086 Dan Fandrich (25 Feb 2010)
4087 - Fixed a couple of out of memory leaks and a segfault in the SMTP code.
4089 Yang Tse (25 Feb 2010)
4092 - Fixed bug report #2958074 indicating
4093 (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with
4094 option --trace-time did not use local time when timestamping trace lines.
4095 This could also happen on other systems depending on time souurce.
4097 - enable 802 and 803
4099 - fix compiler warning
4101 - fix compiler warning
4103 - fix compiler warning
4105 - fix socket data type
4107 - fix socket data type and logging format in debug tracking socket functions
4109 - convert Curl_ultous() and Curl_ultouc() functions to curlx_ultous() and
4110 curlx_ultouc(), exposing them through curlx.h to allow proper code reuse
4111 later in our test harness.
4115 Patrick Monnerat (22 Feb 2010)
4116 - _ Adjusted RFC821 HELO fallback and enabled test804
4118 - - Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account.
4119 - SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required).
4120 - Use of true local host name (i.e.: via gethostname()) when available, as default argument to SMTP HELO/EHLO.
4121 - Test case 804 for HELO fallback.
4123 Yang Tse (22 Feb 2010)
4124 - add header inclusion
4126 - fix compiler warning
4128 - fix compiler warning
4130 Daniel Stenberg (21 Feb 2010)
4131 - clarify more details on section "2.1 More non-blocking"
4133 - TFTP transfers are not blocking since 7.20.0
4135 - - Fixed the SMTP compliance by making sure RCPT TO addresses are specified
4136 properly in angle brackets. Recipients provided with CURLOPT_MAIL_RCPT now
4137 get angle bracket wrapping automatically by libcurl unless the recipient
4138 starts with an angle bracket as then the app is assumed to deal with that
4139 properly on its own.
4141 - - I made the SMTP code expect a 250 response back from the server after the
4142 full DATA has been sent, and I modified the test SMTP server to also send
4143 that response. As usual, the DONE operation that is made after a completed
4144 transfer is still not doable in a non-blocking way so this waiting for 250
4145 is unfortunately made blockingly.
4147 - corected a comment and wrapped a few longish lines
4149 Yang Tse (20 Feb 2010)
4150 - fix compiler warning
4152 - fix compiler warning
4154 - fix compiler warning
4156 - fix compiler warning
4158 - fix compiler warning
4160 Daniel Stenberg (17 Feb 2010)
4163 - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
4164 like the res_init() resolver function offers
4166 - use curl standard indentation and line lengths
4168 Yang Tse (16 Feb 2010)
4169 - replaced tabs with spaces
4171 - fix Content-Length validation
4173 Daniel Stenberg (15 Feb 2010)
4174 - use (void) in front of fwrite() calls that ignore the return code
4176 Yang Tse (15 Feb 2010)
4177 - fix compiler warning: conversion from "long" to "size_t" may lose sign
4179 - fix compiler warning: conversion from "long" to "size_t" may lose sign
4181 Daniel Stenberg (15 Feb 2010)
4182 - -w speed_download and speed_upload are measured in bytes per second
4184 - 75. NTLM authentication involving unicode user name or password.
4185 http://curl.haxx.se/mail/lib-2009-10/0024.html
4186 http://curl.haxx.se/bug/view.cgi?id=2944325
4188 Yang Tse (14 Feb 2010)
4189 - removed trailing whitespace
4191 - fix compiler warning
4193 - Overhauled test suite getpart() function. Fixing potential out of bounds
4194 stack and memory overwrites triggered with huge test case definitions.
4196 Daniel Stenberg (13 Feb 2010)
4197 - - Martin Hager reported and fixed a problem with a missing quote in libcurl.m4
4199 (http://curl.haxx.se/bug/view.cgi?id=2951319)
4201 Gunter Knauf (13 Feb 2010)
4202 - used allways #ifdef / #ifndef;
4203 moved gethostbyname_thread() to #else case to avoid 'not used' compiler warning.
4205 - replaced tabs by spaces, removed trailing tabs/spaces.
4207 Daniel Stenberg (13 Feb 2010)
4208 - - Tom Donovan fixed the CURL_FORMAT_* defines when building with cmake.
4210 - - Jack Zhang reported a problem with SMTP: we wrongly used multiple addresses
4211 in the same RCPT TO line, when they should be sent in separate single
4212 commands. I updated test case 802 to verify this.
4214 - I also fixed a bad use of my_setopt_str() of CURLOPT_MAIL_RCPT in the curl
4215 tool which made it try to output it as string for the --libcurl feature
4216 which could lead to crashes.
4218 - CURLOPT_MAIL_RCPT is *not* a string so we must not try to printf() it
4220 - free --mail-from strings properly
4222 Patrick Monnerat (11 Feb 2010)
4223 - _ Make it compilable again on OS400.
4224 _ Upgrade OS400 EBCDIC wrappers for new options.
4225 _ Upgrade ILE/RPG bindings to current state.
4227 Yang Tse (11 Feb 2010)
4228 - mention last changes
4230 - Steven M. Schweda updated VMS readme file
4232 - Steven M. Schweda removed batch_compile.com and defines.com
4234 - Steven M. Schweda fixed:
4236 VMS builder bad behavior when used in a batch job.
4238 Various ".LIS" and ".MAP" files created without being requested
4239 by a "LIST" command-line option, and in the wrong place, too.
4241 Some minor typographical changes.
4243 Dan Fandrich (10 Feb 2010)
4244 - Mention the minimum size of CURL_MAX_WRITE_SIZE
4246 Yang Tse (10 Feb 2010)
4247 - - remove extra "\r\n" from doc404_RTSP
4249 - avoid memory alignment issue when setting RTSP packet length
4251 Dan Fandrich (9 Feb 2010)
4252 - Removed some erroneous "compressed" key words
4254 Daniel Stenberg (9 Feb 2010)
4255 - start working on 7.20.1
4257 Version 7.20.0 (9 Feb 2010)
4259 Daniel Stenberg (9 Feb 2010)
4262 - - When downloading compressed content over HTTP and the app as asked libcurl
4263 to automatically uncompress it with the CURLOPT_ENCODING option, libcurl
4264 could wrongly provide the callback with more data than what the maximum
4265 documented amount. An application could thus get tricked into badness if the
4266 maximum limit was trusted to be enforced by libcurl itself (as it is
4269 This is further detailed and explained in the libcurl security advisory
4272 http://curl.haxx.se/docs/adv_20100209.html
4274 - set VERSIONINFO accordingly for the 7.20.0 release
4276 Yang Tse (6 Feb 2010)
4283 - fix compiler warning
4285 - fix compiler warning
4287 - fix compiler warning
4289 - Addes OOM handling for curl_easy_setopt() calls in test
4291 - - avoid OpenSSL 0.9.8 ENGINE_by_id memory leak
4293 - cleanup parenthesis usage in return statements
4295 - - attempt to workaround icc 9.1 optimizer issue
4297 - fix printf-style format strings
4299 - Validate server port argument
4301 - Fix variable initialization
4303 - Modified test case 557 to additionally verify libcurl's internal curl_m*printf()
4304 functions formatting functionality when handling signed and unsigned shorts.
4306 - Added size check for 'short' data type
4308 - Fix compiler warning: unused variable
4310 - added an additional second to allow test to pass on heavily loaded servers
4312 Dan Fandrich (3 Feb 2010)
4313 - Changed the Watcom makefiles to make them easier to keep in sync with
4314 Makefile.inc since that can't be included directly.
4316 Daniel Stenberg (3 Feb 2010)
4317 - more symbols added in 7.20.0
4319 Yang Tse (3 Feb 2010)
4322 - Fix progressmode Configurable struct member data type. Changed to
4323 'int' which fits better with existing CURL_PROGRESS_* definitions.
4325 - Fix portability issue related with unaligned memory access
4327 - Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data
4329 - cookies with same path length might get sorted in different order when
4330 using different qsort implementations. In order to make this test give
4331 same results on different systems, paths now have different lengths.
4333 - added an additional second to allow test to pass on heavily loaded servers
4335 - Fix compiler warning: conditional expression is constant
4337 - Fix compiler warning: local variable may be used without having been initialized.
4339 - Fix compiler warnings: conversion from 'const int ' to 'unsigned char ', possible loss of data
4341 - Fix compiler warnings:
4343 (1) conversion from 'const int ' to 'unsigned char ', possible loss of data
4344 (2) conditional expression is constant
4346 - mention a couple of changes back from November
4348 - mention run time statistics options
4350 - - Symbol CURL_FORMAT_OFF_T now obsoleted, will be removed in a future release,
4351 symbol will not be available when building with CURL_NO_OLDIES defined. Use
4352 of CURL_FORMAT_CURL_OFF_T is preferred since 7.19.0
4354 - avoid possibility of using obsoleted stuff
4356 - remove setup.h inclusion which is already done from test.h inclusion
4358 Kamil Dudka (2 Feb 2010)
4359 - mention SOCKS related problems in the curl(1) man page
4361 Yang Tse (2 Feb 2010)
4362 - Fix compiler warning: variable was set but never used
4364 Simplify preprocessor symbol checking
4366 Daniel Stenberg (2 Feb 2010)
4367 - Julien Chaffraix pointed out a comment mistake, and I re-indented the code
4368 slightly while editing
4370 Yang Tse (2 Feb 2010)
4373 - Conroy added a check to the coded message size since the docs stipulate
4374 that each call will contain a full protocol packet.
4376 - Conroy's fix to make the code match with the RTP documentation regarding
4377 writing out the whole header. The docs say it writes the whole header,
4378 but the code (before this patch) did not write out the leading $.
4380 Daniel Stenberg (1 Feb 2010)
4381 - We introduce a loop in lib/multi.c around all calls to multi_runsingle() and
4382 simply check for CURLM_CALL_MULTI_PERFORM internally. This has the added
4383 benefit that this goes in line with my long-term wishes to get rid of the
4384 CURLM_CALL_MULTI_PERFORM all together from the public API.
4386 Yang Tse (1 Feb 2010)
4387 - update rtsp server header field from SWS to RTSPD
4389 - Test suite support for RTSP
4391 - Make Curl_pop3_write() additionally truncate trailing POP3_EOB from received
4392 string buffer, otherwise Curl_client_write() call with zero size would write
4393 to the end of string buffer including matched POP3_EOB.
4395 - WIN32 fix, _beginthreadex() may return either 0 or -1L upon failure
4397 - fix errno usage for WIN32 builds
4399 - fix printf-style format strings
4401 - Chris Conroy fixed test #568 issues with carriage returns
4403 - RTSP followup fix. Both the pipelined and non-pipelined case need to
4404 check for (excess > 0 && !k->ignorebody).
4406 Daniel Stenberg (28 Jan 2010)
4407 - - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't
4408 check for broken connections like ares_process() did. Based on that, I
4409 merged the two functions into a single generic one with two front-ends.
4411 Yang Tse (28 Jan 2010)
4412 - fix printf-style format strings
4414 - Use 'size_t' for GETNAMEINFO_TYPE_ARG2 definition for VMS.
4416 http://curl.haxx.se/mail/lib-2009-12/0293.html
4420 - fix printf-style format strings
4422 - Known bug #64 fixed by Constantine Sapuntzakis and Joshua Kwan in 7.20.0
4424 - Chris Conroy provided first RTSP tests
4426 - RTSP tests disabled until test harness RTSP support is updated
4428 - Chris Conroy's RTSP followup fixes
4430 - mention asynchronous DNS lookups enhancements
4432 - Restore normal operation:
4434 c-ares is only enabled when specifically requested.
4436 Consequently, c-ares default setting is disabled.
4438 - fix c-ares assumed check being skipped
4440 - fix compiler warning
4442 - fix LDFLAGS preservation in CURL_CHECK_LIB_ARES
4444 Daniel Stenberg (26 Jan 2010)
4445 - no need to take precautiono for how things were before 7.16.0 since that
4446 is now a very long time ago
4448 - - Mike Crowe made libcurl return CURLE_COULDNT_RESOLVE_PROXY when it is the
4449 proxy that cannot be resolved when using c-ares. This matches the behaviour
4450 when not using c-ares.
4452 Dan Fandrich (26 Jan 2010)
4453 - Added curl_threads.c to a few more non-configure build files
4455 Yang Tse (26 Jan 2010)
4456 - minor fixes for --enable-ares configure option
4458 Daniel Stenberg (26 Jan 2010)
4459 - Andre Guibert de Bruet improved the libssh2 error code translation
4461 Yang Tse (26 Jan 2010)
4462 - resolver selection for non-configure Windows builds, default is threaded DNS
4464 - add curl_threads.c to non-configure target build files
4466 - onstantine Sapuntzakis threaded resolver enhancements
4468 - Constantine Sapuntzakis threaded resolver enhancements
4470 - Constantine Sapuntzakis provided initial thread abstraction layer
4472 - make Curl_handler_*_proxy definition static
4474 Dan Fandrich (25 Jan 2010)
4475 - Updated minimum library sizes
4477 Yang Tse (25 Jan 2010)
4478 - fix compiler warning
4480 Daniel Stenberg (24 Jan 2010)
4481 - Julien Chaffraix corrected bad #elif lines to silence warnings
4483 Yang Tse (24 Jan 2010)
4484 - HAVE_GETADDRINFO_THREADSAFE definition for non-configure win32 builds
4486 Bjorn Stenberg (23 Jan 2010)
4489 - Added -J/--remote-header-name.
4491 Daniel Stenberg (23 Jan 2010)
4492 - "remove progress meter from libcurl" at next API break
4494 Yang Tse (23 Jan 2010)
4495 - add inclusion of curl_memory.h
4497 - adjust preprocessor symbol definition check relative to resolver specialty
4499 - PKTSIZE might have been already defined in arpa/tftp.h
4501 Dan Fandrich (23 Jan 2010)
4502 - Include "curl_memory.h" to get the strdup replacement when necessary
4504 Daniel Stenberg (22 Jan 2010)
4505 - wrap long lines and do some indent policing
4507 Yang Tse (22 Jan 2010)
4508 - Definitions of resolver specialty compile-time defines CURLRES_* moved
4509 from hostip.h to setup.h in order to allow proper inclusion in any file.
4511 This represents no functional change at all in which resolver is used,
4512 everything still works as usual, internally and externally there is no
4513 difference in behavior.
4515 - adjust rtsp protocol support in curl-config and libcurl.pc when http is disabled
4517 - deal with the possibility that CURL_DISABLE_RTSP may already be defined
4519 - fix compiler warning: statement is unreachable
4521 - fix compilation when http is disabled
4523 - disabling of rtsp when http isn't enabled required here for non-configure systems
4525 Daniel Stenberg (22 Jan 2010)
4526 - wrap long lines, remove (very old) attribution from code
4528 - cleanups by Julien Chaffraix
4530 - alphabetically sort the list of supported protocols
4532 - In spite claiming to tbe disabled by default, RTSP is enabled and it now
4533 also says so. I also made the list of protocols get sorted.
4535 - expanded to provide info about the newer protocols too
4537 - s/RTPFUNCTION/INTERLEAVEFUNCTION/
4538 s/RTPDATA/INTERLEAVEDATA/
4540 - keep lines shorter than 80 columns, and reduce/remove the use of the word
4541 'note' in most description as it is mostly useless.
4543 Yang Tse (22 Jan 2010)
4544 - Julien Chaffraix adjusted "<name> section" line length
4546 - Constantine Sapuntzakis refactoring of async callbacks, allowing
4547 removal of Curl_addrinfo_copy(), Curl_addrinfo6_callback(), and
4548 Curl_addrinfo4_callback()
4550 Dan Fandrich (21 Jan 2010)
4551 - Added rtsp.c to the non-configure target build files
4553 Yang Tse (21 Jan 2010)
4554 - fix compiler warning
4556 - make tftp_translate_code() static, it is only used from within tftp.c
4558 - fix warning triggered when debugging on cygwin
4560 - allow exporting of exe_ext() sub
4562 - improve displaylogcontent() sub fixing a warning
4564 Daniel Stenberg (21 Jan 2010)
4565 - remove typedef we ended up not using
4567 - Chris Conroy brought support for RTSP transfers, and with it comes 8(!) new
4568 libcurl options for controlling what to get and how to receive posssibly
4569 interleaved RTP data. Initial commit.
4571 - Julien Chaffraix fixed line lengths
4573 - Julien Chaffraix removed an old obsolete typedef
4575 - Yun Fu pointed out a flaw in the loop that checks handles, and I indented
4576 the code more curl-style
4578 - "5.3 Sort outgoing cookies" removed, we now sort them
4580 Yang Tse (20 Jan 2010)
4581 - SIGTERM is the signal to trap here, SIGKILL can't be caught.
4583 - Use killsockfilters() to kill sockfilter processes, this ensures that when
4584 killing a sockfilter process the actual PID from the pid file is used and
4585 not the one returned by open2() which might be different.
4587 - Allow killsockfilters() to take a 5th optional parameter that when provided
4588 indicates that only one of the two possible sockfilter processes should be
4589 killed. Valid values for this parameter are 'main' and 'data'.
4591 - Use delete() to unset environment variables instead of assigning undef which
4592 generates warning 'Use of uninitialized value in scalar assignment' with perl
4593 versions older than 5.10
4595 - Adjust valgrind logs file name detection.
4597 Adjust environment vars setting and restoring from test definition.
4599 Avoid using strftime in torture sub.
4601 Daniel Stenberg (20 Jan 2010)
4602 - modified test case 8 to also make sure that we deal with cookies using
4603 identical names but different paths properly
4605 - - As was pointed out on the http-state mailing list, the order of cookies in a
4606 HTTP Cookie: header _needs_ to be sorted on the path length in the cases
4607 where two cookies using the same name are set more than once using
4608 (overlapping) paths. Realizing this, identically named cookies must be
4609 sorted correctly. But detecting only identically named cookies and take care
4610 of them individually is harder than just to blindly and unconditionally sort
4611 all cookies based on their path lengths. All major browsers also already do
4612 this, so this makes our behavior one step closer to them in the cookie area.
4614 Test case 8 was the only one that broke due to this change and I updated it
4617 - oops, I forgot to cvs add this before my previous commit (Dan Fandrich
4618 pointed it out to me)
4620 - - David McCreedy brought a fix and a new test case (129) to make libcurl work
4621 again when downloading files over FTP using ASCII and it turns out that the
4622 final size of the file is not the same as the initial size the server
4623 reported. This is very common since servers don't take the newline
4624 conversions into account.
4626 - "260 - IMAP, POP3 and SMTP support" done!
4628 - avoid "Use of uninitialized value $l in concatenation"
4630 Yang Tse (19 Jan 2010)
4631 - Fail harder when curl coredumps trying to verify http and ftp servers.
4633 Add some debug messages to see what's going on with valgrind logs.
4635 - prevent %runcert hash growth when clearing items
4637 - update copyright year notice
4639 - Constantine Sapuntzakis enhancements to make memory tracking log file writing
4640 of messages atomic, on systems where an fwrite of a memory buffer is atomic.
4642 Dan Fandrich (18 Jan 2010)
4643 - Added PEM certificate keyword
4645 Yang Tse (18 Jan 2010)
4648 - Stop ssl running server when cert file currently used by server is
4649 different than the one specified in test definition for same server
4653 - - Remove QD restarting of https servers. Proper fixing required.
4654 This will make tests 310 311 and 312 fail while fixing.
4656 - Remove some debug messages
4658 - make verifyhttp use different file names depending on server characteristics
4660 - add serverfactors() sub which returns server characterization factors
4668 - add some debug messages
4670 - use servername_id() from serverhelp.pm
4672 - refactored stopping of test harness servers
4674 - Store now this file in CVS with unix line endings.
4676 maketgz already converts this file to DOS style with an awk filter.
4678 - Declaration of $sshdlog is done in sshhelp.pm
4680 - Start using the centralized pidfile and logfile name generation
4681 subroutines for ssh and socks test suite servers.
4683 Dan Fandrich (15 Jan 2010)
4684 - Added the new protocol source files to the non-autoconf build files
4686 Yang Tse (14 Jan 2010)
4687 - Squeeze slack time when killing more than one server from
4688 the <killserver> section of test harness definition files.
4690 Kamil Dudka (14 Jan 2010)
4691 - - Suppressed side effect of OpenSSL configure checks, which prevented NSS from
4692 being properly detected under certain circumstances. It had been caused by
4693 strange behavior of pkg-config when handling PKG_CONFIG_LIBDIR. pkg-config
4694 distinguishes among empty and non-existent environment variable in that case.
4696 Yang Tse (13 Jan 2010)
4697 - Give the test a bit mote time to run so it passes on slow machines
4699 Kamil Dudka (13 Jan 2010)
4700 - remove trailing spaces from configure.ac
4702 Yang Tse (12 Jan 2010)
4703 - Added test case #1112 which does an FTPS download with strict timeout
4704 and slow data transfer in a similar way as test case #1086 does for FTP.
4706 This also exercises <killserver> section for the FTPS server.
4708 - Make runtests.pl actually support any (valid) server specification
4709 for the <killserver> section of test harness definition files.
4711 - Fix tftp and sftp supported protocols in servername_str()
4713 - Make sockfilter kill messages look alike server ones