diff options
Diffstat (limited to 'plugins/FTPFileYM/curl/CHANGES')
-rw-r--r-- | plugins/FTPFileYM/curl/CHANGES | 5575 |
1 files changed, 0 insertions, 5575 deletions
diff --git a/plugins/FTPFileYM/curl/CHANGES b/plugins/FTPFileYM/curl/CHANGES deleted file mode 100644 index a384fadba8..0000000000 --- a/plugins/FTPFileYM/curl/CHANGES +++ /dev/null @@ -1,5575 +0,0 @@ - _ _ ____ _ - ___| | | | _ \| | - / __| | | | |_) | | - | (__| |_| | _ <| |___ - \___|\___/|_| \_\_____| - - Changelog - -Version 7.33.0 (13 Oct 2013) - -Daniel Stenberg (13 Oct 2013) -- RELEASE-NOTES: synced with 92cf6141ed0de - -- curl: fix --oauth2-bearer in the --help output - - After the option rename in 5df04bfafd1 - -- OpenSSL: improve the grammar of the language in 39beaa5ffbcc - - Reported-by: Petr Pisar - -- [Andrej E Baranov brought this change] - - OpenSSL: use failf() when subjectAltName mismatches - - Write to CURLOPT_ERRORBUFFER information about mismatch alternative - certificate subject names. - - Signed-off-by: Andrej E Baranov <admin@andrej-andb.ru> - -- curl: rename --bearer to --oauth2-bearer - - The option '--bearer' might be slightly ambiguous in name. It doesn't - create any conflict that I am aware of at the moment, however, OAUTH v2 - is not the only authentication mechanism which uses "bearer" tokens. - - Reported-by: Kyle L. Huff - URL: http://curl.haxx.se/mail/lib-2013-10/0064.html - -- [Kamil Dudka brought this change] - - ssh: improve the logic for detecting blocking direction - - This fixes a regression introduced by commit 0feeab78 limiting the speed - of SCP upload to 16384 B/s on a fast connection (such as localhost). - -Dan Fandrich (12 Oct 2013) -- Fixed typo in Makefile.inc that left http2.h out of the tar ball - -Daniel Stenberg (11 Oct 2013) -- [Heinrich Schaefer brought this change] - - minor fix in doc - -- [Gisle Vanem brought this change] - - curl_setup_once: fix errno access for lwip on Windows - - lib/curl_setup_once.h assumed lwIP on Windows uses 'SetLastError()' to - set network errors. It doesn't; it uses 'errno'. - -- test1239: verify 4cd444e01ad and the simulated 304 response - -- [Derek Higgins brought this change] - - HTTP: Output http response 304 when modified time is too old - - When using the -w '%{http_code}' flag and simulating a Not Modified then - 304 should be output. - -- contributors: helper script to dig out contributors from git - -- RELEASE-NOTES: add twos refs to bug reports - -- RELEASE-NOTES: synced with 173160c0d068 - -Nick Zitzmann (2 Oct 2013) -- darwinssl: block TLS_RSA_WITH_NULL_SHA256 cipher - - Credit (for catching a cipher I forgot to add to the blocked ciphers list): - https://www.ssllabs.com/ssltest/viewMyClient.html - -Daniel Stenberg (2 Oct 2013) -- OpenSSL: acknowledge CURLOPT_SSL_VERIFYHOST without VERIFYPEER - - Setting only CURLOPT_SSL_VERIFYHOST without CURLOPT_SSL_VERIFYPEER set - should still verify that the host name fields in the server certificate - is fine or return failure. - - Bug: http://curl.haxx.se/mail/lib-2013-10/0002.html - Reported-by: Ishan SinghLevett - -- KNOWN_BUGS: #84: CURLINFO_SSL_VERIFYRESULT - - CURLINFO_SSL_VERIFYRESULT is only implemented for the OpenSSL and NSS - backends and not for any other! - -- [François Charlier brought this change] - - xattr: add support for FreeBSD xattr API - -- curl_easy_setopt.3: slight clarification of SEEKFUNCTION - -Steve Holme (29 Sep 2013) -- tests: Fixed typos from commit 25a0c96a494297 - -- tests: Updated email addresses in SMTP tests following recent changes - -- test909: Removed custom EHLO response after recent changes - - ...as it is no longer required following capability and authentication - changes and is now causing problems following commit 49341628b50007 as - the test number is obtained from the client address in the EHLO. - -- ftpserver.pl: Fixed compilation error from commit 49341628b50007 - -- ftpserver.pl: Moved specifying the test number from the RCPT address - - ...to the client address as this frees the RCPT strings to contain - just an email address and by passing the test number into curl as the - client address remains consistent with POP3 and IMAP tests as they are - specified in the URL. - -- ftpserver.pl: Added unwanted argument check to SMTP DATA command handler - -Daniel Stenberg (29 Sep 2013) -- getinmemory: remove a comment - - The comment mentioned the need to free the data, but the example already - does that free - -- postinmemory: new example - - This is similar to getinmemory.c but with an initial POST. - - Combined-by: Ulf Samuelsson - -- win32: fix Visual Studio 2010 build with WINVER >= 0x600 - - If no WINVER and/or _WIN32_IWNNT define was set, the Windows platform - SDK often defaults to high value, e.g. 0x601 (whoch may probably depend - on the Windows version being used, in my case Windows 7). - - If WINVER >= 0x600 then winsock2.h includes some defines for WSAPoll(), - e.g. POLLIN, POLLPRI, POLLOUT etc. These defines clash with cURL's - lib/select.h. - - Make sure HAVE_STRUCT_POLLFD is defined then. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1282 - Reported-by: "kdekker" - Patch-by: Marcel Raad - -Steve Holme (28 Sep 2013) -- ssluse.c: Fixed compilation warnings when ENGINE not supported - - The function "ssl_ui_reader" was declared but never referenced - The function "ssl_ui_writer" was declared but never referenced - -Daniel Stenberg (27 Sep 2013) -- configure: use icc options without space - - The latest version(s) of the icc compiler no longer accept the extra - space in the -we (warning enable), -wd (warning disable), etc. - - Reported-by: Elmira A Semenova - Bug: http://curl.haxx.se/mail/lib-2013-09/0182.html - -Steve Holme (25 Sep 2013) -- imap: Added clarification to the code about odd continuation responses - -- ftp.c: Fixed compilation warning - - There is an implicit conversion from "unsigned long" to "long" - -- sasl: Centralised the authentication mechanism strings - - Moved the standard SASL mechanism strings into curl_sasl.h rather than - hard coding the same values over and over again in the protocols that - use SASL authentication. - - For more information about the mechanism strings see: - - http://www.iana.org/assignments/sasl-mechanisms - -Daniel Stenberg (23 Sep 2013) -- RELEASE-NOTES: added recent contributors missing - -Steve Holme (23 Sep 2013) -- test906: Fixed type-2 response - -- test915: Corrected test number from commit 22bccb0edaf041 - -- test906: Fixed type-1 message not handled error - - ...from commit f81d1e16664976 due to copy paste error. - -- tests: Added SMTP AUTH NTLM test - -- tests: Added SMTP multiple and invalid --mail-rcpt test - -- tests: Added SMTP multiple --mail-rcpt test - -- tests: Added SMTP invalid --mail-rcpt test - -- tests: Regrouping of SMTP tests - -Daniel Stenberg (22 Sep 2013) -- [Benoit Sigoure brought this change] - - test1112: Increase the timeout from 7s to 16s - - As someone reported on the mailing list a while back, the hard-coded - arbitrary timeout of 7s in test 1112 is not sufficient in some build - environments. At Arista Networks we build and test curl as part of our - automated build system, and we've run into this timeout 170 times so - far. Our build servers are typically quite busy building and testing a - lot of code in parallel, so despite being beefy machines with 32 cores - and 128GB of RAM we still hit this 7s timeout regularly. - - URL: http://curl.haxx.se/mail/lib-2010-02/0200.html - -Steve Holme (22 Sep 2013) -- tests: Fixed smtp rcpt to addresses - -- ftpserver.pl: Expanded the SMTP RCPT handler to validate TO addresses - - RCPT_smtp() will now check for a correctly formatted TO address which - allows for invalid recipient addresses to be added. - -- ftpserver.pl: Added cURL SMTP server detection to HELO command handler - - As curl will send a HELO command after an negative EHLO response, added - the same detection from commit b07709f7417c3e to the HELO handler to - ensure the test server is identified correctly and an upload isn't - performed. - -- ftpserver.pl: Corrected response code for successful RCPT command - -- ftpserver.pl: Moved invalid RCPT TO: address detection to RCPT handler - - Rather than detecting the TO address as missing in the DATA handler, - moved the detection to the RCPT command handler where an error response - can be generated. - -- RELEASE-NOTES: Corrected missed addition - - Somehow commit 60a20461629fda missed the last item in the sync list - even though I'm sure I added it during editing. - -- RELEASE-NOTES: Synced with 6dd8bd8d2f9729 - -- curl.1: Added information about optional login options to --user in manpage - - Added missing information, from curl 7.31.0, regarding the use of the - optional login options that may be specified as part of --user. - - For example: - - --user 'user:password;auth=NTLM' in IMAP, POP3 and SMTP protocols. - -- ftpserver.pl: Moved cURL SMTP server detection into EHLO command handler - - Moved the special SMTP server detection code from the DATA command - handler, which happens further down the operation chain after EHLO, - MAIL and RCPT commands, to the EHLO command as it is the first command - to be generated by a SMTP operation as well as containing the special - "verifiedserver" string from the URL. - - This not only makes it easier and quicker to detect but also means that - cURL doesn't need to specify "verifiedserver" as --mail-from and - --mail-rcpt arguments. - - More importantly, this also makes the upcoming verification changes to - the RCPT handler easier to implement. - -Daniel Stenberg (21 Sep 2013) -- openssl: use correct port number in error message - - In ossl_connect_step2() when the "Unknown SSL protocol error" occurs, it - would output the local port number instead of the remote one which - showed when doing SSL over a proxy (but with the correct remote host - name). As libcurl only speaks SSL to the remote we know it is the remote - port. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1281 - Reported-by: Gordon Marler - -- test1415: adjusted to work for 32bit time_t - - The libcurl date parser returns INT_MAX for all dates > 2037 so this - test is now made to use 2037 instead of 2038 to work the same for both - 32bit and 64bit time_t systems. - -Steve Holme (21 Sep 2013) -- tests: Reworked existing SMTP tests to be single recipient based - - ...in preparation of upcoming multiple recipient tests. - -- ftpserver.pl: Corrected SMTP QUIT response to be more realistic - -Daniel Stenberg (20 Sep 2013) -- curl_easy_setopt.3: clarify that TIMEOUT and TIMEOUT_MS set the same value - -- [Kim Vandry brought this change] - - Documented --dns-* options in curl manpage - -Steve Holme (20 Sep 2013) -- pop3: Added basic SASL XOAUTH2 support - - Added the ability to use an XOAUTH2 bearer token [RFC6750] with POP3 for - authentication using RFC6749 "OAuth 2.0 Authorization Framework". - - The bearer token is expected to be valid for the user specified in - conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has - an advertised auth mechanism of "XOAUTH2", the user and access token are - formatted as a base64 encoded string and sent to the server as - "AUTH XOAUTH2 <bearer token>". - -- curl: Added clarification to the --mail options in the --help output - - ... that these options apply to SMTP only. - -- ftpserver.pl: Moved SMTP RCPT response text into command handler - -- tests: Added SMTP invalid --mail-from test - -Nick Zitzmann (19 Sep 2013) -- darwinssl: enable BEAST workaround on iOS 7 & later - - iOS 7 finally added the option to enable 1/n-1 when using TLS 1.0 - and a CBC cipher, so we now always turn that on unless the user - manually turns it off using CURLSSLOPT_ALLOW_BEAST. - - It appears Apple also added some new PSK ciphers, but no interface to - use them yet, so we at least support printing them if we find them. - -Steve Holme (19 Sep 2013) -- tests: Updated SMTP AUTH tests to use the new AUTH directive - - ...rather than specify a customised EHLO response. - -- tests: Corrected test913 as the QUIT response is received - -- tests: Added SMTP large message SIZE test - -- ftpserver.pl: Updated email regex from commit 98f7ca7e971006 - - ...to not be as strict as it was rejecting valid numeric email - addresses. - -- tests: Fixed smtp mail from addresses - -- ftpserver.pl: Standardised CAPA and AUTH responses - -- ftpserver.pl: Corrected POP3 QUIT reply to be more realistic - -- runtests.pl: Fixed syntax error in commit c873375123343e - - Possible unintended interpolation in string at line 796 - -- runtests.pl: Fixed smtp mail from address - - Following changes to ftpserver.pl fixed the mail from address to be a - correctly formatted address otherwise the server response will be 501 - Invalid address. - -- ftpserver.pl: Fixed syntax error in commit 98f7ca7e971006 - - Can't modify constant item in scalar assignment line 779, near "0;" - -- ftpserver.pl: Expanded the SMTP MAIL handler to validate messages - - MAIl_smtp() will now check for a correctly formatted FROM address as - well as the optional SIZE parameter comparing it against the server - capability when specified. - -Daniel Stenberg (17 Sep 2013) -- [YAMADA Yasuharu brought this change] - - cookies: add expiration - - Implement: Expired Cookies These following situation, curl removes - cookie(s) from struct CookieInfo if the cookie expired. - - Curl_cookie_add() - - Curl_cookie_getlist() - - cookie_output() - -Steve Holme (17 Sep 2013) -- ftpserver.pl: Corrected response code for successful MAIL command - -- ftpserver.pl: Moved SMTP MAIL handler into own function - -- dns: fix compilation with MinGW from commit df69440d05f113 - - Avoid 'interface' literal that some MinGW versions define as a macro - - Additionally, corrected some very, very minor coding style errors. - -- tests: Fixed test 1406 following recent changes in ftpserver.pl - - By default the mail server doesn't send the SIZE capability but instead - it has to be specified as a supported capability. - -- tests: Added test for SMTP SIZE capability - -- ftpserver.pl: Added the ability to include spaces in capabilities - - For example: - - CAPA "SIZE 1048576" 8BITMIME BINARYMIME - - will populate the capabilities list with the following in: - - SIZE 1048576 - 8BITMIME - BINARYMIME - -- ftpserver.pl: Corrected response code for successful SMTP QUIT command - -- ftpserver.pl: Fixed syntax error in commit 33c1f2876b9029 - - Can't modify constant item in postincrement line 727, near "i++" - -- ftpserver.pl: Added CAPA & AUTH directive support to the SMTP EHLO handler - -- ftpserver.pl: Fixed SMTP QUIT handler from dadc495540946e - -- ftpserver.pl: Moved SMTP EHLO and QUIT handlers in own functions - -- ftpserver.pl: Added support for SMTP HELO command - - ...and updated test902 as explicit HELO response is no longer required. - -- ftpserver.pl: Added mailbox check to IMAP SELECT handler - -- ftpserver.pl: Corrected invalid user details check - - ...in both the IMAP LOGIN and POP3 PASS handlers introduced in commit - 187ac693744949 and 84ad1569e5fc93 respectively. - -- ftpserver.pl: Moved IMAP LOGIN handler into own function - -- ftpserver.pl: Moved POP3 USER and PASS handlers into own functions - -- ftpserver.pl: Corrected invalid argument check in POP3 TOP handler - - ...which was accidentally introduced in commit 4d6ef6297ae9b6. - -- ftpserver.pl: Added capability prerequisite for extended POP3 commands - -- tests: Updated descriptions to be more meaningful - -- ftpserver.pl: Added support for IMAP NOOP command - -- imap: Fixed response check for NOOP command - -- tests: Updated descriptions to be more meaningful - -Daniel Stenberg (13 Sep 2013) -- curl.1: detail how short/long options work - - URL: http://curl.haxx.se/bug/view.cgi?id=1279 - Suggested-by: Jerry Krinock - -Steve Holme (13 Sep 2013) -- curl: Fixed usage of DNS options when not using c-ares resolver - - Commit 32352ed6adddcb introduced various DNS options, however, these - would cause curl to exit with CURLE_NOT_BUILT_IN when c-ares wasn't - being used as the backend resolver even if the options weren't set - by the user. - - Additionally corrected some minor coding style errors from the same - commit. - -Daniel Stenberg (13 Sep 2013) -- curl_easy_setopt.3: mention RTMP URL quirks - - URL: http://curl.haxx.se/bug/view.cgi?id=1278 - Reported-by: Gorilla Maguila - -- [Ben Greear brought this change] - - curl: Add support for various DNS binding options. - - (Passed on to c-ares.) - - Allows something like this: - - curl --dns-interface sta8 --dns-ipv4-addr 8.8.1.111 --interface sta8 \ - --localaddr 8.8.1.111 --dns-servers 8.8.8.1 www.google.com - - Signed-off-by: Ben Greear <greearb@candelatech.com> - -- [Kim Vandry brought this change] - - libcurl: New options to bind DNS to local interfaces or IP addresses - -- libcurl.3: for multi interface connections are held in the multi handle - - ... and a few more cleanups/clarifications - -Steve Holme (12 Sep 2013) -- ftpserver.pl: Fixed missing comma from 7fd84b14d219b1 - -- ftpserver.pl: Fixed variable error introduced in 7fd84b14d219b1 - - Global symbol "$mailbox" requires explicit package name - -- ftpserver.pl: Added support for UID command - -- ftpserver.pl: Added support for LSUB command - -- imap: Fixed response check for LSUB and UID commands - -- ftpserver.pl: Added support for IMAP COPY command - -- ftpserver.pl: Added support for IMAP CLOSE and EXPUNGE commands - -- ftpserver.pl: Added support for POP3 RSET command - -- ftpserver.pl: Added the ability to remember what messages are deleted - - ...as this will be required for IMAP CLOSE and EXPUNGE commands as well - as the POP3 RSET command. - -Daniel Stenberg (10 Sep 2013) -- NI_MAXSERV: remove all use of it - - Solaris with the SunStudio Compiler is reportedly missing this define, - but as we're using it without any good reason on all the places it was - used I've now instead switched to just use sensible buffer sizes that - fit a 32 bit decimal number. Which also happens to be smaller than the - common NI_MAXSERV value which is 32 on most machines. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1277 - Reported-by: D.Flinkmann - -- http2: use the support HTTP2 draft version in the upgrade header - - ... instead of HTTP/2.0 to work fine with the nghttpx proxy/server. - -Steve Holme (10 Sep 2013) -- ldap.c: Fix compilation warning - - warning: comparison between signed and unsigned integer expressions - -- [Jiri Hruska brought this change] - - imap/pop3/smtp: Speed up SSL connection initialization - - Don't wait for the next callback call (usually 1 second) before - continuing with protocol specific connection initialization. - -- ldap.c: Corrected build error from commit 857f999353f333 - -- RELEASE-NOTES: Corrected duplicate in bfefe2400a16b8 - -- RELEASE-NOTES: Corrected typo from bfefe2400a16b8 - -- RELEASE-NOTES: synced with 25c68903756d6b - -Daniel Stenberg (10 Sep 2013) -- README.http2: explain nghttp2 a little - -Steve Holme (9 Sep 2013) -- tests: Added test for POP3 TOP command - -- ftpserver.pl: Added support for POP3 TOP command - -- tests: Added test for POP3 UIDL command - -- ftpserver.pl: Added support for POP3 UIDL command - -Daniel Stenberg (9 Sep 2013) -- http2: adjust to new nghttp2_pack_settings_payload proto - - This function was modified in nghttp2 git commit a1c3f89c72e51 - -Kamil Dudka (9 Sep 2013) -- url: handle abortion by read/write callbacks, too - - Otherwise, the FTP protocol would unnecessarily hang 60 seconds if - aborted in the CURLOPT_HEADERFUNCTION callback. - - Reported by: Tomas Mlcoch - Bug: https://bugzilla.redhat.com/1005686 - -Daniel Stenberg (9 Sep 2013) -- ldap: fix the build for systems with ldap_url_parse() - - Make sure that the custom struct fields are only used by code that - doesn't use a struct defintion from the outside. - - Attempts to fix the problem introduced in 3dc6fc42bfc61b - -Steve Holme (9 Sep 2013) -- [Jiri Hruska brought this change] - - pingpong: Check SSL library buffers for already read data - - Otherwise the connection can get stuck during various phases, waiting - for new data on the socket using select() etc., but it will never be - received as the data has already been read into SSL library. - -- imap: Fixed calculation of transfer when partial FETCH received - - The transfer size would be calculated incorrectly if the email contained - within the FETCH response, had been partially received by the pingpong - layer. As such the following, example output, would be seen if the - amount remaining was smaller than the amount received: - - * Excess found in a non pipelined read: excess = 1394, size = 262, - maxdownload = 262, bytecount = 1374 - * transfer closed with -1112 bytes remaining to read - - Bug: http://curl.haxx.se/mail/lib-2013-08/0170.html - Reported-by: John Dunn - -- ftpserver.pl: Fixed empty array checks - - ...from commits 28427b408326a1 and e8313697b6554b. - -- ftpserver: Reworked AUTH support to allow for specifying the mechanisms - - Renamed SUPPORTAUTH to AUTH and added support for specifying a list of - supported SASL mechanisms to return to the client. - - Additionally added the directive to the FILEFORMAT document. - -- ftpserver: Reworked CAPA support to allow for specifying the capabilities - - Renamed SUPPORTCAPA to CAPA and added support for specifying a list of - supported capabilities to return to the client. - - Additionally added the directive to the FILEFORMAT document. - -- ftpserver.pl: Corrected POP3 LIST as message numbers should be contiguous - - The message numbers given in the LIST response are an index into the - list, which are only valid for the current session, rather than being a - unique message identifier. An index would only be missing from the LIST - response if a DELE command had been issued within the same session and - had not been committed by the end of session QUIT command. Once - committed the POP3 server will regenerate the message numbers in the - next session to be contiguous again. As such our LIST response should - list message numbers contiguously until we support a DELE command in the - same session. - - Should a POP3 user require the unique message ID for any or all - messages then they should use the extended UIDL command. This command - will be supported by the test ftpserver in an upcoming commit. - -Daniel Stenberg (8 Sep 2013) -- [Clemens Gruber brought this change] - - curl_easy_pause: suggest one way to unpause - -Steve Holme (8 Sep 2013) -- tests: Updated descriptions to be more meaningful - -- tests: Added test for POP3 NOOP command - -- ftpserver.pl: Added support for POP3 NOOP command - -- ftpserver.pl: Fixed 'Use of uninitialized value $args in string ne' - -- tests: Added test for POP3 STAT command - -- ftpserver.pl: Added support for POP STAT command - -- ftpserver.pl: Moved POP3 QUIT handler into own function - -- ftpserver.pl: Reordered the POP3 handlers to be alphabetical - - In preparation for additional POP3 tests, re-ordered the command - function defintions to be sorted alphabetically. - -- ftpserver.pl: Corrected misaligned indentation in POP3 handlers - - Fixed incorrect indentation used in both the RETR_pop3 and LIST_pop3 - functions which was 5 and 9 characters rather than 4 and 8. - -- tests: Added test for POP3 DELE command - -unknown (7 Sep 2013) -- [Steve Holme brought this change] - - ftpserver.pl: Added support for POP3 DELE command - -Daniel Stenberg (7 Sep 2013) -- http2: include curl_memory.h - - Detected by test 1132 - -Nick Zitzmann (7 Sep 2013) -- http: fix build warning under LLVM - - When building the code using LLVM Clang without NGHTTP2, I was getting - this warning: - ../lib/http.h:155:1: warning: empty struct is a GNU extension [-Wgnu] - Placing a dummy variable into the data structure silenced the warning. - -Daniel Stenberg (7 Sep 2013) -- http2: actually init nghttp2 and send HTTP2-Settings properly - -- README.http2: how to use it best with the multi API? - -- http2: first embryo toward Upgrade: - -- http: rename use_http_1_1 to use_http_1_1plus - - Since it now actually says if 1.1 or a later version should be used. - -- configure: improve CURL_CHECK_COMPILER_PROTOTYPE_MISMATCH - - The compiler test used a variable before it was assigned when it tried - to see how it acts on a mismatching prototype, which could cause a false - positive. - -- [Petr Písař brought this change] - - Pass password to OpenSSL engine by user interface - - Recent OpenSSL uses user interface abstraction to negotiate access to - private keys in the cryprographical engines. An OpenSSL application is - expected to implement the user interface. Otherwise a default one - provided by OpenSSL (interactive standard I/O) will be used and the - aplication will have no way how to pass a password to the engine. - - Longer-desc: http://curl.haxx.se/mail/lib-2013-08/0265.html - -- urlglob: improved error messages and column number on bad use - - Introduce a convenience macro and keep of the column better so that it - can point out the offending column better. - - Updated test 75 accordingly. - -- urlglob: avoid error code translation - - By using the correct values from the start we don't have to translate - them! - -- urlglob: avoid NULL pointer dereference - - Thanks to clang-analyzer - -- [Gisle Vanem brought this change] - - http2: use correct include for snprintf - - Using the first little merge of nghttp2 into libcurl, I stumbeled on the - missing 'snprintf' in MSVCRT. Isn't this how we do it for other libcurl - files? I.e. use 'curl_msnprintf' and not 'snprintf' directly: - -- --data: mention CRLF treatment when reading from file - -- [Geoff Beier brought this change] - - LDAP: fix bad free() when URL parsing failed - - When an error occurs parsing an LDAP URL, The ludp->lud_attrs[i] entries - could be freed even though they sometimes point to data within an - allocated area. - - This change introduces a lud_attrs_dup[] array for the duplicated string - pointers, and it removes the unused lud_exts array. - - Bug: http://curl.haxx.se/mail/lib-2013-08/0209.html - -Nick Zitzmann (5 Sep 2013) -- darwinssl: add support for PKCS#12 files for client authentication - - I also documented the fact that the OpenSSL engine also supports them. - -Daniel Stenberg (5 Sep 2013) -- symbols: added HTTP2 symbols and sorted list - - CURL_HTTP_VERSION_2_0 and CURL_VERSION_HTTP2 are new - -- configure: add HTTP2 as a curl-config --feature output - - Fixes the test 1014 failure - -- curl: unbreak --http1.0 again - - I broke it in 2eabb7d590 - -- SASL: fix compiler warnings - - comparison between signed and unsigned integer expressions - - suggest parentheses around '&&' within '||' (twice) - -- curl: add --http1.1 and --http2.0 options - -- Curl_setopt: refuse CURL_HTTP_VERSION_2_0 if built without support - -- http2: add http2.[ch] and add nghttp2 version output - -- curl -V: output HTTP2 as a feature if present - -- curl.h: add CURL_VERSION_HTTP2 as a feature - - It isn't added as a separate protocol as HTTP2 will be done over HTTP:// - URLs that can be upgraded to HTTP2 if the server supports it as well. - -Steve Holme (4 Sep 2013) -- imap/smtp: Fixed incorrect SASL mechanism selection with XOAUTH2 servers - - XOAUTH2 would be selected in preference to LOGIN and PLAIN if the IMAP - or SMTP server advertised support for it even though a user's password - was supplied but bearer token wasn't. - - Modified the selection logic so that XOAUTH2 will only be selected if - the server supports it and A) The curl user/libcurl programmer has - specifically asked for XOAUTH via the ;AUTH=XOAUTH login option or 2) - The bearer token is specified. Obviously if XOAUTH is asked for via - the login option but no token is specified the user will receive a - authentication failure which makes more sense than no known - authentication mechanisms supported! - -Daniel Stenberg (4 Sep 2013) -- curl.h: added CURL_HTTP_VERSION_2_0 - - Initial library considerations documented in lib/README.http2 - -- configure: added --with-nghttp2 - -- acinclude: fix --without-ca-path when cross-compiling - - The commit 7b074a460b64811 to CURL_CHECK_CA_BUNDLE in 7.31 (don't check - for paths when cross-compiling) causes --without-ca-path to no longer - works when cross-compiling, since ca and capath only ever get set to - "no" when not cross-compiling, I attach a patch that works for me. Also - in the cross-compilation case, no ca-path seems to be a better default - (IMVHO) than empty ca-path. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1273 - Patch-by: Stefan Neis - -Steve Holme (2 Sep 2013) -- lib1512.c: Fixed compilation warning - - An enumerated type is mixed with another type. - - ...as well as a small coding style error. - -Guenter Knauf (1 Sep 2013) -- Killed warning 'res' might be used uninitialized. - -Steve Holme (1 Sep 2013) -- url.c: Fixed compilation warning - - An enumerated type is mixed with another type - -- easy.c: Fixed compilation warning - - warning: `code' might be used uninitialized in this function - -Daniel Stenberg (31 Aug 2013) -- -x: rephrased the --proxy section somewhat - -Steve Holme (31 Aug 2013) -- tests: Added test for IMAP CHECK command - -- ftpserver.pl: Added support for the IMAP CHECK command - -Guenter Knauf (31 Aug 2013) -- Removed reference to krb4.c. - -Steve Holme (31 Aug 2013) -- ftpserver.pl: Corrected flawed logic in commit 1ca6ed7b75cad0 - -- imap: Fixed response check for EXPUNGE command - -- ftpserver.pl: Added argument check to IMAP command handlers - - Added BAD argument check to the following IMAP command handlers: - - APPEND, STORE, LIST, EXAMINE, STATUS and SEARCH - -- ftpserver.pl: More whitespace corrections - - LIST_imap() had a second level of indentation at 9 characters and not 8. - -- ftpserver.pl: Small correction tidy up - - Corrected some IMAP variable names and whitespace issues. - -- [Kyle L. Huff brought this change] - - docs: Added documentation for CURLOPT_BEARER - -- [Kyle L. Huff brought this change] - - curl.1: Add usage of '--bearer' option - -- tests: Added tests for IMAP CREATE, DELETE and RENAME commands - -Daniel Stenberg (30 Aug 2013) -- ftpserver: Bareword "to_mailbox" not allowed - - Added missing $ - -Steve Holme (30 Aug 2013) -- ftpserver.pl: Added support for IMAP CREATE, DELETE and RENAME commands - -Daniel Stenberg (29 Aug 2013) -- FTP: fix getsock during DO_MORE state - - ... when doing upload it would return the wrong values at times. This - commit attempts to cleanup the mess. - - Bug: http://curl.haxx.se/mail/lib-2013-08/0109.html - Reported-by: Mike Mio - -- curl_multi_remove_handle: allow multiple removes - - When removing an already removed handle, avoid that to ruin the - internals and just return OK instead. - -Steve Holme (29 Aug 2013) -- ftpserver.pl: Updated IMAP EXAMINE handler to use dynamic test data - -Daniel Stenberg (29 Aug 2013) -- unit1304: include memdebug and free everything correctly - -- Curl_parsenetrc: document that the arguments must be allocated - -- easy: rename struct monitor to socketmonitor - - 'struct monitor', introduced in 6cf8413e, already exists in an IRIX - header file (sys/mon.h) which gets included via various standard headers - by lib/easy.c - - cc-1101 cc: ERROR File = ../../curl/lib/easy.c, Line = 458 - "monitor" has already been declared in the current scope. - - Reported-by: Tor Arntsen - -Steve Holme (29 Aug 2013) -- ftpserver.pl: Added SELECT check to IMAP FETCH and STORE handlers - -- ftpserver.pl: Corrected accidental move of logmsg() call - - Corrected the call to logmsg() in the IMAP SEARCH handler from commit - 4ae7b7ea691497 as it should have been outputting the what argument and - not the test number. - -Daniel Stenberg (28 Aug 2013) -- ftpserver: add missing '}' from 4ae7b7ea69149 - -Steve Holme (28 Aug 2013) -- ftpserver.pl: Added SELECT check to IMAP SEARCH command - -- ftpserver.pl: Fixed IMAP SEARCH command - -Daniel Stenberg (28 Aug 2013) -- bump: next release is 7.33.0 due to added features - -- symbols-in-versions: add CURLOPT_XOAUTH2_BEARER - -Steve Holme (28 Aug 2013) -- tests: Added test for IMAP SEARCH command - -Daniel Stenberg (28 Aug 2013) -- valgrind.supp: fix for regular curl_easy_perform too - - When we introduced curl_easy_perform_ev, this got a slightly modified - call trace. Without this, test 165 causes a false positive valgrind - error. - -- valgrind.supp: add the event-based call stack-trace too - - Without this, test 165 triggers a valgrind error when ran with - curl_easy_perform_ev - -- multi_socket: improved 100-continue timeout handling - - When waiting for a 100-continue response from the server, the - Curl_readwrite() will refuse to run if called until the timeout has been - reached. - - We timeout code in multi_socket() allows code to run slightly before the - actual timeout time, so for test 154 it could lead to the function being - executed but refused in Curl_readwrite() and then the application would - just sit idling forever. - - This was detected with runtests.pl -e on test 154. - -Steve Holme (27 Aug 2013) -- ftpserver.pl: Added support for IMAP SEARCH command - -- tool_operate.c: Fixed compilation warning - - warning: implicit declaration of function 'checkpasswd' - -- curl: Moved check for password out of get parameter loop - - Moved the calls to checkpasswd() out of the getparameter() function - which allows for any related arguments to be specified on the command - line before or after --user (and --proxy-user). - - For example: --bearer doesn't need to be specified before --user to - prevent curl from asking for an unnecessary password as is the case - with commit e7dcc454c67a2f. - -- RELEASE-NOTES: synced with acf59be7f09a7 - -- [Kyle L. Huff brought this change] - - curl: added --bearer option to help - - Added the --bearer option to the help output - -- [Kyle L. Huff brought this change] - - curl: added basic SASL XOAUTH2 support - - Added the ability to specify an XOAUTH2 bearer token [RFC6750] via the - --bearer option. - - Example usage: - curl --url "imaps://imap.gmail.com:993/INBOX/;UID=1" --ssl-reqd - --bearer ya29.AHES6Z...OMfsHYI --user username@example.com - -- tool_urlglob.c: Fixed compiler warnings - - warning: 'variable' may be used uninitialized in this function - -Daniel Stenberg (26 Aug 2013) -- security.h: rename to curl_sec.h to avoid name collision - - I brought back security.h in commit bb5529331334e. As we actually - already found out back in 2005 in commit 62970da675249, the file name - security.h causes problems so I renamed it curl_sec.h instead. - -- runtests.pl: allow -vc point to a separate curl binary to verify with - - The specified curl binary will then be used to verify the running - server(s) instead of the development version. This is very useful in - some cases when the development version fails to verify correctly as - then the test case may not run at all. - - The actual test will still be run with the "normal" curl executable - (unless the test case specifies something differently). - -Steve Holme (26 Aug 2013) -- [Kyle L. Huff brought this change] - - smtp: added basic SASL XOAUTH2 support - - Added the ability to use an XOAUTH2 bearer token [RFC6750] with SMTP for - authentication using RFC6749 "OAuth 2.0 Authorization Framework". - - The bearer token is expected to be valid for the user specified in - conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has - an advertised auth mechanism of "XOAUTH2", the user and access token are - formatted as a base64 encoded string and sent to the server as - "AUTH XOAUTH2 <bearer token>". - -- [Kyle L. Huff brought this change] - - imap: added basic SASL XOAUTH2 support - - Added the ability to use an XOAUTH2 bearer token [RFC6750] with IMAP for - authentication using RFC6749 "OAuth 2.0 Authorization Framework". - - The bearer token is expected to be valid for the user specified in - conn->user. If CURLOPT_XOAUTH2_BEARER is defined and the connection has - an advertised auth mechanism of "XOAUTH2", the user and access token are - formatted as a base64 encoded string and sent to the server as - "A001 AUTHENTICATE XOAUTH2 <bearer token>". - -- security.h: Fixed compilation warning - - ISO C forbids forward references to 'enum' types - -Daniel Stenberg (26 Aug 2013) -- KNOWN_BUGS: refer to bug numbers with the existing number series - - The old numbers would still redirect but who knows for how long... - -Steve Holme (25 Aug 2013) -- [Kyle L. Huff brought this change] - - options: added basic SASL XOAUTH2 support - - Added the ability to specify an XOAUTH2 bearer token [RFC6750] via the - option CURLOPT_XOAUTH2_BEARER for authentication using RFC6749 "OAuth - 2.0 Authorization Framework". - -- [Kyle L. Huff brought this change] - - sasl: added basic SASL XOAUTH2 support - - Added the ability to generated a base64 encoded XOAUTH2 token - containing: "user=<username>^Aauth=Bearer <bearer token>^A^A" - as per RFC6749 "OAuth 2.0 Authorization Framework". - -Daniel Stenberg (25 Aug 2013) -- FTP: remove krb4 support - - We've announced this pending removal for a long time and we've - repeatedly asked if anyone would care or if anyone objects. Nobody has - objected. It has probably not even been working for a good while since - nobody has tested/used this code recently. - - The stuff in krb4.h that was generic enough to be used by other sources - is now present in security.h - -- easy: define away easy_events() for non-debug builds - -- FAQ: editorial updates - - Several language fixes. Several reformats that should make the HTML - generation of this document look better. - - Reported-by: Dave Thompson - -- RELEASE-NOTES: synced with 22adb46a32bee - -- multi: move on from STATE_DONE faster - - Make sure we always return CURLM_CALL_MULTI_PERFORM when we reach - CURLM_STATE_DONE since the state is transient and it can very well - continue executing as there is nothing to wait for. - - Bug: http://curl.haxx.se/mail/lib-2013-08/0211.html - Reported-by: Yi Huang - -- curl.h: name space pollution by "enum type" - - Renamed to "enum curl_khtype" now. Will break compilation for programs - that rely on the enum name. - - Bug: https://github.com/bagder/curl/pull/76 - Reported-by: Shawn Landden - -- TFTP: make the CURLOPT_LOW_SPEED* options work - - ... this also makes sure that the progess callback gets called more - often during TFTP transfers. - - Added test 1238 to verify. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1269 - Reported-by: Jo3 - -- tftpd: support "writedelay" within <servercmd> - -- tftpd: convert 6 global variables into local ones - -- [Gisle Vanem brought this change] - - curl_easy_perform_ev: make it CURL_EXTERN - - I build curl.exe (using MingW) with '-DCURLDEBUG' and by importing from - libcurl.dll. Which means the new curl_easy_perform_ev() must be - exported from libcurl.dll. - -- CURLM_ADDED_ALREADY: new error code - - Doing curl_multi_add_handle() on an easy handle that is already added to - a multi handle now returns this error code. It previously returned - CURLM_BAD_EASY_HANDLE for this condition. - -- multi_init: moved init code here from add_handle - - The closure_handle is "owned" by the multi handle and it is - unconditional so the setting up of it should be in the Curl_multi_handle - function rather than curl_multi_add_handle. - -- multi: remove dns cache creation code from *add_handle - - As it is done unconditionally in multi_init() this code will never run! - -- curl_easy_perform_ev: debug/test function - - This function is meant to work *exactly* as curl_easy_perform() but will - use the event-based libcurl API internally instead of - curl_multi_perform(). To avoid relying on an actual event-based library - and to not use non-portable functions (like epoll or similar), there's a - rather inefficient emulation layer implemented on top of Curl_poll() - instead. - - There's currently some convenience logging done in curl_easy_perform_ev - which helps when tracking down problems. They may be suitable to remove - or change once things seem to be fine enough. - - curl has a new --test-event option when built with debug enabled that - then uses curl_easy_perform_ev() instead of curl_easy_perform(). If - built without debug, using --test-event will only output a warning - message. - - NOTE: curl_easy_perform_ev() is not part if the public API on purpose. - It is only present in debug builds of libcurl and MUST NOT be considered - stable even then. Use it for libcurl-testing purposes only. - - runtests.pl now features an -e command line option that makes it use - --test-event for all curl command line tests. The man page is updated. - -- [Gisle Vanem brought this change] - - transfer: the recent sessionhandle change broke CURL_DOES_CONVERSIONS - -- test1237: verify 1000+ letter user name + passwords - -- [Jonathan Nieder brought this change] - - url: handle arbitrary-length username and password before '@' - - libcurl quietly truncates usernames, passwords, and options from - before an '@' sign in a URL to 255 (= MAX_CURL_PASSWORD_LENGTH - 1) - characters to fit in fixed-size buffers on the stack. Allocate a - buffer large enough to fit the parsed fields on the fly instead to - support longer passwords. - - After this change, there are no more uses of MAX_CURL_OPTIONS_LENGTH - left, so stop defining that constant while at it. The hardcoded max - username and password length constants, on the other hand, are still - used in HTTP proxy credential handling (which this patch doesn't - touch). - - Reported-by: Colby Ranger - -- [Jonathan Nieder brought this change] - - url: handle exceptional cases first in parse_url_login() - - Instead of nesting "if(success)" blocks and leaving the reader in - suspense about what happens in the !success case, deal with failure - cases early, usually with a simple goto to clean up and return from - the function. - - No functional change intended. The main effect is to decrease the - indentation of this function slightly. - -- [Jonathan Nieder brought this change] - - Curl_setopt: handle arbitrary-length username and password - - libcurl truncates usernames, passwords, and options set with - curl_easy_setopt to 255 (= MAX_CURL_PASSWORD_LENGTH - 1) characters. - This doesn't affect the return value from curl_easy_setopt(), so from - the caller's point of view, there is no sign anything strange has - happened, except that authentication fails. - - For example: - - # Prepare a long (300-char) password. - s=0123456789; s=$s$s$s$s$s$s$s$s$s$s; s=$s$s$s; - # Start a server. - nc -l -p 8888 | tee out & pid=$! - # Tell curl to pass the password to the server. - curl --user me:$s http://localhost:8888 & sleep 1; kill $pid - # Extract the password. - userpass=$( - awk '/Authorization: Basic/ {print $3}' <out | - tr -d '\r' | - base64 -d - ) - password=${userpass#me:} - echo ${#password} - - Expected result: 300 - Actual result: 255 - - The fix is simple: allocate appropriately sized buffers on the heap - instead of trying to squeeze the provided values into fixed-size - on-stack buffers. - - Bug: http://bugs.debian.org/719856 - Reported-by: Colby Ranger - -- [Jonathan Nieder brought this change] - - netrc: handle longer username and password - - libcurl truncates usernames and passwords it reads from .netrc to - LOGINSIZE and PASSWORDSIZE (64) characters without any indication to - the user, to ensure the values returned from Curl_parsenetrc fit in a - caller-provided buffer. - - Fix the interface by passing back dynamically allocated buffers - allocated to fit the user's input. The parser still relies on a - 256-character buffer to read each line, though. - - So now you can include an ~246-character password in your .netrc, - instead of the previous limit of 63 characters. - - Reported-by: Colby Ranger - -- [Jonathan Nieder brought this change] - - url: allocate username, password, and options on the heap - - This makes it possible to increase the size of the buffers when needed - in later patches. No functional change yet. - -- [Jonathan Nieder brought this change] - - url: use goto in create_conn() for exception handling - - Instead of remembering before each "return" statement which temporary - allocations, if any, need to be freed, take care to set pointers to - NULL when no longer needed and use a goto to a common block to exit - the function and free all temporaries. - - No functional change intended. Currently the only temporary buffer in - this function is "proxy" which is already correctly freed when - appropriate, but there will be more soon. - -- [Jonathan Nieder brought this change] - - sasl: allow arbitrarily long username and password - - Use appropriately sized buffers on the heap instead of fixed-size - buffers on the stack, to allow for longer usernames and passwords. - - Callers never pass anything longer than MAX_CURL_USER_LENGTH (resp. - MAX_CURL_PASSWORD_LENGTH), so no functional change inteded yet. - -Steve Holme (19 Aug 2013) -- [Alex McLellan brought this change] - - imap: Fixed response check for SEARCH command - - Adding this line allows libcurl to return the server response when - performing a search command via a custom request. - -Daniel Stenberg (16 Aug 2013) -- glob: error out on range overflow - - The new multiply() function detects range value overflows. 32bit - machines will overflow on a 32bit boundary while 64bit hosts support - ranges up to the full 64 bit range. - - Added test 1236 to verify. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1267 - Reported-by: Will Dietz - -- urlglob: better detect unclosed braces, empty lists and overflows - - A rather big overhaul and cleanup. - - 1 - curl wouldn't properly detect and reject globbing that ended with an - open brace if there were brackets or braces before it. Like "{}{" or - "[0-1]{" - - 2 - curl wouldn't properly reject empty lists so that "{}{}" would - result in curl getting (nil) strings in the output. - - 3 - By using strtoul() instead of sscanf() the code will now detected - over and underflows. It now also better parses the step argument to only - accept positive numbers and only step counters that is smaller than the - delta between the maximum and minimum numbers. - - 4 - By switching to unsigned longs instead of signed ints for the - counters, the max values for []-ranges are now very large (on 64bit - machines). - - 5 - Bumped the maximum number of globs in a single URL to 100 (from 10) - - 6 - Simplified the code somewhat and now it stores fixed strings as - single- entry lists. That's also one of the reasons why I did (5) as now - all strings between "globs" will take a slot in the array. - - Added test 1234 and 1235 to verify. Updated test 87. - - This commit fixes three separate bug reports. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1264 - Bug: http://curl.haxx.se/bug/view.cgi?id=1265 - Bug: http://curl.haxx.se/bug/view.cgi?id=1266 - Reported-by: Will Dietz - -- [John Malmberg brought this change] - - VMS: Add RELEASE-NOTES to vms document - - Add the curl release notes to the release note document generated for - VMS packages. - - Add the different filenames generated by a daily build to the - cleanup procedures. - -- [Tor Arntsen brought this change] - - tests 2032, 2033: Don't hardcode port in expected output - -- ftp: convert state names to a global array - - ... just to make them easier to print in debug ouputs while debugging. - They are still within #ifdef [debugbuild]. - -- --help: fix the --sasl-ir in the help output - -- ftp_domore_getsock: when passive mode, the second conn is already there - - This makes the socket callback get called with the proper bitmask as - otherwise the application could be left hanging waiting for reading on - an upload connection! - - Bug: http://curl.haxx.se/mail/lib-2013-08/0043.html - Reported-by: Bill Doyle - -- curl: make --no-[option] work properly for several options - - --create-dirs, --crlf, --socks5-gssapi-nec and --sasl-ir - -Kamil Dudka (12 Aug 2013) -- nss: make sure that NSS is initialized - - ... prior to calling PK11_GenerateRandom() - -Daniel Stenberg (12 Aug 2013) -- multi: s/easy/data - - With everything being struct SessionHandle pointers now, this rename - makes multi.c use the library-wide practise of calling that pointer - 'data' instead of the previously used 'easy'. - -- cleanup: removed one function, made one static - - Moved Curl_easy_addmulti() from easy.c to multi.c, renamed it to - easy_addmulti and made it static. - - Removed Curl_easy_initHandleData() and uses of it since it was emptied - in commit cdda92ab67b47d74a. - -- SessionHandle: the protocol specific pointer is now a void * - - All protocol handler structs are now opaque (void *) in the - SessionHandle struct and moved in the request-specific sub-struct - 'SingleRequest'. The intension is to keep the protocol specific - knowledge in their own dedicated source files [protocol].c etc. - - There's some "leakage" where this policy is violated, to be addressed at - a later point in time. - -- urldata: clean up the use of the protocol specific structs - - 1 - always allocate the struct in protocol->setup_connection. Some - protocol handlers had to get this function added. - - 2 - always free at the end of a request. This is also an attempt to keep - less memory in the handle after it is completed. - -- version number: bump to 7.32.1 for now - - Start working on the next version and up some counters. - -Version 7.32.0 (11 Aug 2013) - -Daniel Stenberg (11 Aug 2013) -- THANKS: added contributors from the 7.32.0 release notes - -- [Fabian Keil brought this change] - - test1228: add 'HTTP proxy' to the keywords - -- [Fabian Keil brought this change] - - tests: add keywords for a couple of FILE tests - -- [Fabian Keil brought this change] - - tests: add 'FAILURE' keywords to tests 1409 and 1410 - -- [Fabian Keil brought this change] - - tests: add keywords for a couple of HTTP tests - -- [Fabian Keil brought this change] - - tests: add keywords for a couple of FTP tests - -- [Fabian Keil brought this change] - - test1511: consistently terminate headers with CRLF - -- DISABLED: shut of test 1512 for now - - It shows intermittent failures and I haven't been able to track them - down yet. Disable this test for now. - -- curl_multi_add_handle.3: ... that timer callback is for event-based - -- comments: remove old and wrong multi/easy interface statements - -- curl_multi_add_handle.3: mention the CURLMOPT_TIMERFUNCTION use - -- [John E. Malmberg brought this change] - - KNOWN_BUGS: 22 and 57 have been fixed and committed - -- RELEASE-NOTES: synced with d20def20462e7 - -- global dns cache: fix memory leak - - The take down of the global dns cache didn't take CURLOPT_RESOLVE names - into account. - -- global dns cache: didn't work [regression] - - CURLOPT_DNS_USE_GLOBAL_CACHE broke in commit c43127414d89ccb (been - broken since the libcurl 7.29.0 release). While this option has been - documented as deprecated for almost a decade and nobody even reported - this bug, it should remain functional. - - Added test case 1512 to verify - -Yang Tse (8 Aug 2013) -- [John Malmberg brought this change] - - packages/vms: update VMS build files - - VMS modified files either missing from a previous commit and changes - to remove references to CVS repositories. - -Daniel Stenberg (8 Aug 2013) -- FTP: renamed several local functions - - The previous naming scheme ftp_state_post_XXXX() wasn't really helpful - as it wasn't always immediately after 'xxxx' and it wasn't easy to - understand what it does based on such a name. - - This new one is instead ftp_state_yyyy() where yyyy describes what it - does or sends. - -- mk-ca-bundle.1: don't install on make install - - Since the mk-ca-bundle tool itself isn't installed with make install, - there's no point in installing its documentation. - - Bug: http://curl.haxx.se/mail/lib-2013-08/0057.html - Reported-by: Guenter Knauf - -Yang Tse (7 Aug 2013) -- packages/vms/Makefile.am: add latest file additions to EXTRA_DIST - -- [John Malmberg brought this change] - - Building_vms_pcsi_kit - - These are the files needed to build VMS distribution packages known as - PCSI kits. - - Also minor update to the existing files, mainly to the documentation and - file clean up code. - -Daniel Stenberg (6 Aug 2013) -- LIBCURL-STRUCTS: new document - - This is the first version of this new document, detailing the seven - perhaps most important internal structs in libcurl source code: - - 1.1 SessionHandle - 1.2 connectdata - 1.3 Curl_multi - 1.4 Curl_handler - 1.5 conncache - 1.6 Curl_share - 1.7 CookieInfo - -- CONTRIBUTE: minor language polish - -- FTP: when EPSV gets a 229 but fails to connect, retry with PASV - - This is a regression as this logic used to work. It isn't clear when it - broke, but I'm assuming in 7.28.0 when we went all-multi internally. - - This likely never worked with the multi interface. As the failed - connection is detected once the multi state has reached DO_MORE, the - Curl_do_more() function was now expanded somewhat so that the - ftp_do_more() function can request to go "back" to the previous state - when it makes another attempt - using PASV. - - Added test case 1233 to verify this fix. It has the little issue that it - assumes no service is listening/accepting connections on port 1... - - Reported-by: byte_bucket in the #curl IRC channel - -Nick Zitzmann (5 Aug 2013) -- md5: remove use of CommonCrypto-to-OpenSSL macros for the benefit of Leopard - - For some reason, OS X 10.5's GCC suddenly stopped working correctly with - macros that change MD5_Init etc. in the code to CC_MD5_Init etc., so I - worked around this by removing use of the macros and inserting static - functions that just call CommonCrypto's implementations of the functions - instead. - -Guenter Knauf (5 Aug 2013) -- Simplify check for trusted certificates. - - This changes the previous check for untrusted certs to a check for - certs explicitely marked as trusted. - The change is backward-compatible (tested with certdata.txt v1.80). - -Daniel Stenberg (5 Aug 2013) -- configure: warn on bad env variable use, don't error - - Use XC_CHECK_BUILD_FLAGS instead XC_CHECK_USER_FLAGS. - -- Revert "configure: don't error out on variable confusions, just warn" - - This reverts commit 6b27703b5f525eccdc0a8409f51de8595c75132a. - -- formadd: wrong pointer for file name when CURLFORM_BUFFERPTR used - - The internal function that's used to detect known file extensions for - the default Content-Type got the the wrong pointer passed in when - CURLFORM_BUFFER + CURLFORM_BUFFERPTR were used. This had the effect that - strlen() would be used which could lead to an out-of-bounds read (and - thus segfault). In most cases it would only lead to it not finding or - using the correct default content-type. - - It also showed that test 554 and test 587 were testing for the - previous/wrong behavior and now they're updated as well. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1262 - Reported-by: Konstantin Isakov - -Guenter Knauf (4 Aug 2013) -- Skip more untrusted certificates. - - Christian Heimes brought to our attention that the certdata.txt - format has recently changed [1], causing ca-bundle.crt created - with mk-ca-bundle.[pl|vbs] to include untrusted certs. - - [1] http://lists.debian.org/debian-release/2012/11/msg00411.html - -Daniel Stenberg (4 Aug 2013) -- configure: don't error out on variable confusions, just warn - -- configure: rephrase the notice in _XC_CHECK_VAR_* - - Instead of claiming it is an error, we call it a "note" to reduce the - severity level. But the following text now says the [variable] "*should* - only be used to specify"... instead of previously having said "may". - -- multi: remove data->state.current_conn struct field - - Not needed - -- multi: remove the one_easy struct field - - Since the merge of SessionHandle with Curl_one_easy, this indirection - isn't used anymore. - -- multi: rename all Curl_one_easy to SessionHandle - -- multi: remove the multi_pos struct field - - Since Curl_one_easy is really a SessionHandle now, this indirection - doesn't exist anymore. - -- multi: remove easy_handle struct field - - It isn't needed anymore - -- multi: remove 'Curl_one_easy' struct, phase 1 - - The motivation for having a separate struct that keep track of an easy - handle when using the multi handle was removed when we switched to - always using the multi interface internally. Now they were just two - separate struct that was always allocated for each easy handle. - - This first step just moves the Curl_one_easy struct members into the - SessionHandle struct and hides this somehow (== keeps the source code - changes to a minimum) by defining Curl_one_easy to SessionHandle - - The biggest changes in this commit are: - - 1 - the linked list of easy handles had to be changed somewhat due - to the new struct layout. This made the main linked list pointer - get renamed to 'easyp' and there's also a new pointer to the last - node, called easylp. It is no longer circular but ends with ->next - pointing to NULL. New nodes are still added last. - - 2 - easy->state is now called easy->mstate to avoid name collision - -Steve Holme (2 Aug 2013) -- Revert "DOCS: Added IMAP URL example for listing new messages" - - This reverts commit 82ab5f1b0c7c3f as this was the wrong place to - document the complexity of IMAP URLs and Custom Requests. - -- DOCS: Added IMAP URL example for listing new messages - - In addition to listing the folder contents, in the URL examples, added - an example to list the new messages waiting in the user's inbox. - -Yang Tse (1 Aug 2013) -- packages/vms/Makefile.am: add latest file additions to EXTRA_DIST - -- [John Malmberg brought this change] - - Add in the files needed to build libcurl shared images on VMS. - - Update the packages/vms/readme file to be current. - - Also some files for the GNV based build were either missing or needed an - update. - - curl_crtl_init.c is a special file that is run before main() to - set up the proper C runtime behavior. - - generate_vax_transfer.com generates the VAX transfer vector modules from - the gnv_libcurl_symbols.opt file. - - gnv_conftest.c_first is a helper file needed for configure scripts to - come up with the expected answers on VMS. - - gnv_libcurl_symbols.opt is the public symbols for the libcurl shared - image. - - gnv_link_curl.com builds the shared libcurl image and rebuilds other - programs to use it. - - macro32_exactcase.patch is a hack to make a local copy of the VMS Macro32 - assembler case sensitive, which is needed to build the VAX transfer modules. - - report_openssl_version.c is a tool for help verify that the libcurl - shared image is being built for a minium version of openssl. - -- curl: second follow-up for commit 5af2bfb9 - - Display progress-bar unconditionally on first call - -- curl: follow-up for commit 5af2bfb9 - - Use tvnow() and tvdiff() to avoid introducing new linkage issues - -Daniel Stenberg (31 Jul 2013) -- curl: --progress-bar max update frequency now at 5Hz - -- curl: make --progress-bar update the line less frequently - - Also, use memset() instead of a lame loop. - - The previous logic that tried to avoid too many updates were very - ineffective for really fast transfers, as then it could easily end up - doing hundreds of updates per second that would make a significant - impact in transfer performance! - - Bug: http://curl.haxx.se/mail/archive-2013-07/0031.html - Reported-by: Marc Doughty - -Nick Zitzmann (30 Jul 2013) -- darwinssl: added LFs to some strings passed into infof() - - (This doesn't need to appear in the release notes.) I noticed a few places - where infof() was called, and there should've been an LF at the end of the - string, but there wasn't. - -- darwinssl: fix build error in crypto authentication under Snow Leopard - - It turns out Snow Leopard not only has SecItemCopyMatching() defined in - a header not included by the omnibus header, but it won't work for our - purposes, because searching for SecIdentityRef objects wasn't added - to that API until Lion. So we now use the old SecKeychainSearch API - instead if the user is building under, or running under, Snow Leopard. - - Bug: http://sourceforge.net/p/curl/bugs/1255/ - Reported by: Edward Rudd - -- md5 & metalink: use better build macros on Apple operating systems - - Previously we used __MAC_10_X and __IPHONE_X to mark digest-generating - code that was specific to OS X and iOS. Now we use - __MAC_OS_X_VERSION_MAX_ALLOWED and __IPHONE_OS_VERSION_MAX_ALLOWED - instead of those macros. - - Bug: http://sourceforge.net/p/curl/bugs/1255/ - Reported by: Edward Rudd - -Yang Tse (29 Jul 2013) -- tool_operhlp.c: fix add_file_name_to_url() OOM handling - -- tool_operate.c: fix brace placement for vi/emacs delimiter matching - -- tool_operate.c: move <fabdef.h> header inclusion location - -Daniel Stenberg (29 Jul 2013) -- RELEASE-NOTES: synced with b5478a0e033e7 - -- curl_easy_pause: on unpause, trigger mulit-socket handling - - When the multi-socket API is used, we need the handle to be checked - again when it gets unpaused. - - Bug: http://curl.haxx.se/mail/lib-2013-07/0239.html - Reported-by: Justin Karneges - -- [John E. Malmberg brought this change] - - curl_formadd: fix file upload on VMS - - For the standard VMS text file formats, VMS needs to read the file to - get the actual file size. - - For the standard VMS binary file formats, VMS needs a special format of - fopen() call so that it stops reading at the logical end of file instead - of at the end of the blocks allocated to the file. - - I structured the patch this way as I was not sure about changing the - structures or parameters to the routines, but would prefer to only call - the stat() function once and pass the information to where the fopen() - call is made. - - Bug: https://sourceforge.net/p/curl/bugs/758/ - -- formadd: CURLFORM_FILECONTENT wrongly rejected some option combos - - The code for CURLFORM_FILECONTENT had its check for duplicate options - wrong so that it would reject CURLFORM_PTRNAME if used in combination - with it (but not CURLFORM_COPYNAME)! The flags field used for this - purpose cannot be interpreted that broadly. - - Bug: http://curl.haxx.se/mail/lib-2013-07/0258.html - Reported-by: Byrial Jensen - -Yang Tse (25 Jul 2013) -- packages/vms/Makefile.am: add latest file additions to EXTRA_DIST - -- [John E. Malmberg brought this change] - - VMS: intial set of files to allow building using GNV toolkit. - -- string formatting: fix too many arguments for format - -- string formatting: fix zero-length printf format string - -- easy.c: curl_easy_getinfo() fix va_start/va_end matching - -- imap.c: imap_sendf() fix va_start/va_end matching - -- string formatting: fix 15+ printf-style format strings - -Patrick Monnerat (24 Jul 2013) -- OS400: sync ILE/RPG binding with current curl.h - -Yang Tse (24 Jul 2013) -- string formatting: fix 25+ printf-style format strings - -Daniel Stenberg (23 Jul 2013) -- Makefile.am: use LDFLAGS as well when linking libcurl - - Linking on Solaris 10 x86 with Sun Studio 12 failed when we upgraded - automake for the release builds. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1217 - Reported-by: Dagobert Michelsen - -- [Fabian Keil brought this change] - - url.c: Fix dot file path cleanup when using an HTTP proxy - - Previously the path was cleaned, but the URL wasn't properly updated. - -- [Fabian Keil brought this change] - - tests: test1232 verifies dotdot removal from path with proxy - -- [Fabian Keil brought this change] - - dotdot.c: Fix a RFC section number in a comment for Curl_dedotdotify() - -- [John E. Malmberg brought this change] - - build_vms.com: fix debug and float options - - In the reorganization of the build_vms.com the debug and float options - were not fixed up correctly. - -- [John E. Malmberg brought this change] - - curl: fix upload of a zip file in OpenVMS - - Two fixes: - - 1. Force output file format to be stream-lf so that partial downloads - can be continued. - - This should have minor impact as if the file does not exist, it was - created with stream-lf format. The only time this was an issue is if - there was already an existing file with a different format. - - 2. Fix file uploads are now fixed. - - a. VMS binary files such as ZIP archives are now uploaded - correctly. - - b. VMS text files are read once to get the correct size - and then converted to line-feed terminated records as - they are read into curl. - - The default VMS text formats do not contain either line-feed or - carriage-return terminated records. Those delimiters are added by the - operating system file read calls if the application requests them. - - Bug: http://curl.haxx.se/bug/view.cgi?id=496 - -Yang Tse (22 Jul 2013) -- libtest: fix data type of some *_setopt() 'long' arguments - -- curl: fix symbolic names for CURL_NETRC_* enum in --libcurl output - -- curl: fix symbolic names for CURLUSESSL_* enum in --libcurl output - -- tool_operate.c: fix passing curl_easy_setopt long arg on some x64 ABIs - - We no longer pass our 'bool' data type variables nor constants as - an argument to my_setopt(), instead we use proper 1L or 0L values. - - This also fixes macro used to pass string argument for CURLOPT_SSLCERT, - CURLOPT_SSLKEY and CURLOPT_EGDSOCKET using my_setopt_str() instead of - my_setopt(). - - This also casts enum or int argument data types to long when passed to - my_setopt_enum(). - -Daniel Stenberg (21 Jul 2013) -- curl_multi_wait: fix revents - - Commit 6d30f8ebed34e7276 didn't work properly. First, it used the wrong - array index, but this fix also: - - 1 - only does the copying if indeed there was any activity - - 2 - makes sure to properly translate between internal and external - bitfields, which are not guaranteed to match - - Reported-by: Evgeny Turnaev - -- RELEASE-NOTES: synced with d529f3882b9bca - -- curl_easy_perform: gradually increase the delay time - - Instead of going 50,100,150 etc millisecond delay time when nothing has - been found to do or wait for, we now start lower and double each loop as - in 4,8,16,32 etc. - - This lowers the minimum wait without sacrifizing the longer wait too - much with unnecessary CPU cycles burnt. - - Bug: http://curl.haxx.se/mail/lib-2013-07/0103.html - Reported-by: Andreas Malzahn - -- ftp_do_more: consider DO_MORE complete when server connects back - - In the case of an active connection when ftp_do_more() detects that the - server has connected back, it must make sure to mark it as complete so - that the multi_runsingle() function will detect this and move on to the - next state. - - Bug: http://curl.haxx.se/mail/lib-2013-07/0115.html - Reported-by: Clemens Gruber - -Yang Tse (19 Jul 2013) -- Makefile.b32: Borland makefile adjustments. Tested with BCC 5.5.1 - -- WIN32 MemoryTracking: require UNICODE for wide strdup code support - -Daniel Stenberg (18 Jul 2013) -- CURLOPT_XFERINFOFUNCTION: introducing a new progress callback - - CURLOPT_XFERINFOFUNCTION is now the preferred progress callback function - and CURLOPT_PROGRESSFUNCTION is considered deprecated. - - This new callback uses pure 'curl_off_t' arguments to pass on full - resolution sizes. It otherwise retains the same characteristics: the - same call rate, the same meanings for the arguments and the return code - is used the same way. - - The progressfunc.c example is updated to show how to use the new - callback for newer libcurls while supporting the older one if built with - an older libcurl or even built with a newer libcurl while running with - an older. - -Yang Tse (18 Jul 2013) -- Reinstate "WIN32 MemoryTracking: track wcsdup() _wcsdup() and _tcsdup() usage". - - This reverts commit 7ed25cc, reinstating commit 8ec2cb5. - - As of 18-jul-2013 we still do have code in libcurl that makes use of these - memory functions. Commit 8ec2cb5 comment still applies and is yet valid. - - These memory functions are solely used in Windows builds, so all related - code is protected with '#ifdef WIN32' preprocessor conditional compilation - directives. - - Specifically, wcsdup() _wcsdup() are used when building a Windows target with - UNICODE and USE_WINDOWS_SSPI preprocessor symbols defined. This is the case - when building a Windows UNICODE target with Windows native SSL/TLS support - enabled. - - Realizing that wcsdup() _wcsdup() are used is a bit tricky given that usage - of these is hidden behind _tcsdup() which is MS way of dealing with code - that must tolerate UNICODE and non-UNICODE compilation. Additionally, MS - header files and those compatible from other compilers use this preprocessor - conditional compilation directive in order to select at compilation time - whether 'wide' or 'ansi' MS API functions are used. - - Without this code, Windows build targets with Windows native SSL/TLS support - enabled and MemoryTracking support enabled misbehave in tracking memory usage, - regardless of being a UNICODE enabled build or not. - -- xc-am-iface.m4: comments refinement - -- configure: fix 'subdir-objects' distclean related issue - - See XC_AMEND_DISTCLEAN comments for details. - -Daniel Stenberg (18 Jul 2013) -- [Evgeny Turnaev brought this change] - - curl_multi_wait: set revents for extra fds - - Pass back the revents that happened for the user-provided file - descriptors. - -- [Ben Greear brought this change] - - asyn-ares: Don't blank ares servers if none configured. - - Best to just let c-ares use it's defaults if none are configured - in (lib)curl. - - Signed-off-by: Ben Greear <greearb@candelatech.com> - -- [Sergei Nikulov brought this change] - - cmake: Fix for MSVC2010 project generation - - Fixed issue with static build for MSVC2010. - - After some investigation I've discovered known issue - http://public.kitware.com/Bug/view.php?id=11240 When .rc file is linked - to static lib it fails with following linker error - - LINK : warning LNK4068: /MACHINE not specified; defaulting to X86 - file.obj : fatal error LNK1112: module machine type 'x64' conflicts with - target machine type 'X86' - - Fix add target property /MACHINE: for MSVC generation. - - Also removed old workarounds - it caused errors during msvc build. - - Bug: http://curl.haxx.se/mail/lib-2013-07/0046.html - -- mk-ca-bundle.1: point out certdata.txt format docs - -Yang Tse (16 Jul 2013) -- slist.c: Curl_slist_append_nodup() OOM handling fix - -Daniel Stenberg (16 Jul 2013) -- test1414: FTP PORT download without SIZE support - -Yang Tse (16 Jul 2013) -- tests/Makefile.am: add configurehelp.pm to DISTCLEANFILES - -Patrick Monnerat (15 Jul 2013) -- curl_slist_append(): fix error detection - -- slist.c: fix indentation - -- OS400: new SSL backend GSKit - -- OS400: add slist and certinfo EBCDIC support - -- config-os400.h: enable system strdup(), strcmpi(), etc. - -- x509asn1.c,x509asn1.h: new module to support ASN.1/X509 parsing & info extract - Use from qssl backend - -- ssluse.c,sslgen.c,sslgen.h: move certinfo support to generic SSL - -- Merge branch 'master' of github.com:bagder/curl - - Merge for resync - -- slist.c, slist.h, cookie.c: new internal procedure Curl_slist_append_nodup() - -Yang Tse (15 Jul 2013) -- sslgen.c: fix Curl_rand() compiler warning - - Use simple seeding method upon RANDOM_FILE seeding method failure. - -- sslgen.c: fix unreleased Curl_rand() infinite recursion - -Daniel Stenberg (14 Jul 2013) -- [Dave Reisner brought this change] - - src/tool: allow timeouts to accept decimal values - - Implement wrappers around strtod to convert the user argument to a - double with sane error checking. Use this to allow --max-time and - --connect-timeout to accept decimal values instead of strictly integers. - - The manpage is updated to make mention of this feature and, - additionally, forewarn that the actual timeout of the operation can - vary in its precision (particularly as the value increases in its - decimal precision). - -- [Dave Reisner brought this change] - - curl.1: fix long line, found by checksrc.pl - -- [Dave Reisner brought this change] - - src/tool_paramhlp: try harder to catch negatives - - strto* functions happily chomp off leading whitespace, so simply - checking for str[0] can lead to false negatives. Do the full parse and - check the out value instead. - -- [John E. Malmberg brought this change] - - build_vms.com: detect and use zlib shared image - - Update the build_vms.com to detect and use zlib shared image installed - by the ZLIB kit produced by Jean-Francois Pieronne, and the also the - future ZLIB 1.2.8 kit in addition to the older ZLIB kits. - - Also fix the indentation to match one of the common standards used for - VMS DCL command files and removed the hard tab characters. - - Tested on OpenVMS 8.4 Alpha and IA64, and OpenVMS 7.3 VAX. - -Yang Tse (14 Jul 2013) -- url.c: fix parse_url_login() OOM handling - -- http_digest.c: SIGSEGV and OOM handling fixes - -- url.c: fix parse_login_details() OOM handling - -- [John E. Malmberg brought this change] - - setup-vms.h: sk_pop symbol tweak - - Newer versions of curl are referencing a sk_pop symbol while the HP - OpenSSL library has the symbol in uppercase only. - -- getinfo.c: fix enumerated type mixed with another type - -- test 1511: fix enumerated type mixed with another type - -- url.c: fix SIGSEGV - -- dotdot.c: fix global declaration shadowing - -- easy.c: fix global declaration shadowing - -Kamil Dudka (9 Jul 2013) -- Revert "curl.1: document the --time-cond option in the man page" - - This reverts commit 3a0e931fc715a80004958794a96b12cf90503f99 because - the documentation of --time-cond was duplicated by mistake. - - Reported by: Dave Reisner - -- curl.1: document the --sasl-ir option in the man page - -- curl.1: document the --post303 option in the man page - -- curl.1: document the --time-cond option in the man page - -Yang Tse (9 Jul 2013) -- configure: automake 1.14 compatibility tweak (use XC_AUTOMAKE) - -- xc-am-iface.m4: provide XC_AUTOMAKE macro - -Guenter Knauf (8 Jul 2013) -- Added winssl-zlib target to VC builds. - -- Synced Makefile.vc6 with recent changes. - - Issue posted to the list by malinowsky AT FTW DOT at. - -- Added libmetalink URL; added Android versions. - -Dan Fandrich (3 Jul 2013) -- examples: Moved usercertinmem.c to COMPLICATED_EXAMPLES - - This prevents it from being built during a "make check" since it - depends on OpenSSL. - -Nick Zitzmann (2 Jul 2013) -- Merge branch 'master' of https://github.com/bagder/curl - -- darwinssl: SSLv2 connections are aborted if unsupported by the OS - - I just noticed that OS X no longer supports SSLv2. Other TLS engines return - an error if the requested protocol isn't supported by the underlying - engine, so we do that now for SSLv2 if the framework returns an error - when trying to turn on SSLv2 support. (Note: As always, SSLv2 support is - only enabled in curl when starting the app with the -2 argument; it's off - by default. SSLv2 is really old and insecure.) - -Marc Hoersken (1 Jul 2013) -- lib506.c: Fixed possible use of uninitialized variables - -Kamil Dudka (30 Jun 2013) -- url: restore the functionality of 'curl -u :' - - This commit fixes a regression introduced in - fddb7b44a79d78e05043e1c97e069308b6b85f79. - - Reported by: Markus Moeller - Bug: http://curl.haxx.se/mail/archive-2013-06/0052.html - -Daniel Stenberg (25 Jun 2013) -- digest: append the timer to the random for the nonce - -- digest: improve nonce generation - - Use the new improved Curl_rand() to generate better random nonce for - Digest auth. - -- curl.1: fix typo in --xattr description - - Bug: http://curl.haxx.se/bug/view.cgi?id=1252 - Reported-by: Jean-Noël Rouvignac - -- RELEASE-NOTES: synced with 365c5ba39591 - - The 10 first bug fixes for the pending release... - -- formpost: better random boundaries - - When doing multi-part formposts, libcurl used a pseudo-random value that - was seeded with time(). This turns out to be bad for users who formpost - data that is provided with users who then can guess how the boundary - string will look like and then they can forge a different formpost part - and trick the receiver. - - My advice to such implementors is (still even after this change) to not - rely on the boundary strings being cryptographically strong. Fix your - code and logic to not depend on them that much! - - I moved the Curl_rand() function into the sslgen.c source file now to be - able to take advantage of the SSL library's random function if it - provides one. If not, try to use the RANDOM_FILE for seeding and as a - last resort keep the old logic, just modified to also add microseconds - which makes it harder to properly guess the exact seed. - - The formboundary() function in formdata.c is now using 64 bit entropy - for the boundary and therefore the string of dashes was reduced by 4 - letters and there are 16 hex digits following it. The total length is - thus still the same. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1251 - Reported-by: "Floris" - -- printf: make sure %x are treated unsigned - - When using %x, the number must be treated as unsigned as otherwise it - would get sign-extended on for example 64bit machines and do wrong - output. This problem showed when doing printf("%08x", 0xffeeddcc) on a - 64bit host. - -- tests: add test1395 to the tarball - -- SIGPIPE: don't use 'data' in sigpipe restore - - Follow-up fix from 7d80ed64e43515. - - The SessionHandle may not be around to use when we restore the sigpipe - sighandler so we store the no_signal boolean in the local struct to know - if/how to restore. - -- TODO: 1.8 Modified buffer size approach - - Thoughts around buffer sizes and what might be possible to do... - -- c-ares: improve error message on failed resolve - - When the c-ares based resolver backend failed to resolve a name, it - tried to show the name that failed from existing structs. This caused - the wrong output and shown hostname when for example --interface - [hostname] was used and that name resolving failed. - - Now we use the hostname used in the actual resolve attempt in the error - message as well. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1191 - Reported-by: Kim Vandry - -- ossl_recv: check for an OpenSSL error, don't assume - - When we recently started to treat a zero return code from SSL_read() as - an error we also got false positives - which primarily looks to be - because the OpenSSL documentation is wrong and a zero return code is not - at all an error case in many situations. - - Now ossl_recv() will check with ERR_get_error() to see if there is a - stored error and only then consider it to be a true error if SSL_read() - returned zero. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1249 - Reported-by: Nach M. S. - Patch-by: Nach M. S. - -Nick Zitzmann (22 Jun 2013) -- Merge branch 'master' of https://github.com/bagder/curl - -- darwinssl: fix crash that started happening in Lion - - Something (a recent security update maybe?) changed in Lion, and now it - has changed SSLCopyPeerTrust such that it may return noErr but also give - us a null trust, which caught us off guard and caused an eventual crash. - -Daniel Stenberg (22 Jun 2013) -- SIGPIPE: ignored while inside the library - - ... and restore the ordinary handling again when it returns. This is - done for curl_easy_perform() and curl_easy_cleanup() only for now - and - only when built to use OpenSSL as backend as this is the known culprit - for the spurious SIGPIPEs people have received. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1180 - Reported by: Lluís Batlle i Rossell - -- KNOWN_BUGS: #83 unable to load non-default openssl engines - -- test1396: invoke the correct test tool! - - This erroneously run unit test 1310 instead of 1396! - -Kamil Dudka (22 Jun 2013) -- test1230: avoid using hard-wired port number - - ... to prevent failure when a non-default -b option is given - -- curl-config.in: replace tabs by spaces - -Nick Zitzmann (22 Jun 2013) -- darwinssl: reform OS-specific #defines - - This doesn't need to be in the release notes. I cleaned up a lot of the #if - lines in the code to use MAC_OS_X_VERSION_MIN_REQUIRED and - MAC_OS_X_VERSION_MAX_ALLOWED instead of checking for whether things like - __MAC_10_6 or whatever were defined, because for some SDKs Apple has released - they were defined out of place. - -Daniel Stenberg (22 Jun 2013) -- [Alessandro Ghedini brought this change] - - docs: fix typo in curl_easy_getinfo manpage - -- dotdot: introducing dot file path cleanup - - RFC3986 details how a path part passed in as part of a URI should be - "cleaned" from dot sequences before getting used. The described - algorithm is now implemented in lib/dotdot.c with the accompanied test - case in test 1395. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1200 - Reported-by: Alex Vinnik - -- bump: start working towards what most likely will become 7.32.0 - -- THANKS: added 24 new contributors from the 7.31.0 release - -Version 7.31.0 (22 Jun 2013) - -Daniel Stenberg (22 Jun 2013) -- RELEASE-NOTES: synced with 0de7249bb39a2 - 7.31.0 - -- unit1396: unit tests to verify curl_easy_(un)escape - -- Curl_urldecode: no peeking beyond end of input buffer - - Security problem: CVE-2013-2174 - - If a program would give a string like "%FF" to curl_easy_unescape() but - ask for it to decode only the first byte, it would still parse and - decode the full hex sequence. The function then not only read beyond the - allowed buffer but it would also deduct the *unsigned* counter variable - for how many more bytes there's left to read in the buffer by two, - making the counter wrap. Continuing this, the function would go on - reading beyond the buffer and soon writing beyond the allocated target - buffer... - - Bug: http://curl.haxx.se/docs/adv_20130622.html - Reported-by: Timo Sirainen - -Guenter Knauf (20 Jun 2013) -- Use opened body.out file and write content to it. - -Daniel Stenberg (20 Jun 2013) -- multi_socket: react on socket close immediately - - As a remedy to the problem when a socket gets closed and a new one is - opened with the same file descriptor number and as a result - multi.c:singlesocket() doesn't detect the difference, the new function - Curl_multi_closed() gets told when a socket is closed so that it can be - removed from the socket hash. When the old one has been removed, a new - socket should be detected fine by the singlesocket() on next invoke. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1248 - Reported-by: Erik Johansson - -- RELEASE-NOTES: synced with e305f5ec715f - -- TODO: mention the DANE patch from March - -- CURLOPT_COOKIELIST: take cookie share lock - - When performing COOKIELIST operations the cookie lock needs to be taken - for the cases where the cookies are shared among multiple handles! - - Verified by Benjamin Gilbert's updated test 506 - - Bug: http://curl.haxx.se/bug/view.cgi?id=1215 - Reported-by: Benjamin Gilbert - -- [Benjamin Gilbert brought this change] - - test506: verify that CURLOPT_COOKIELIST takes share lock - - It doesn't right now: http://curl.haxx.se/bug/view.cgi?id=1215 - -- TODO: HTTP2/SPDY support - -- curl_easy_setopt.3: clarify CURLOPT_PROGRESSFUNCTION frequency - - Make it clearer that the CURLOPT_PROGRESSFUNCTION callback will be - called more frequently than once per second when things are happening. - -- RELEASE-NOTES: synced with 9c3e098259b82 - - Mention 7 recent bug fixes and their associated contributors - -- curl_multi_wait.3: clarify the numfds counter - -- curl_easy_perform: avoid busy-looping - - When curl_multi_wait() finds no file descriptor to wait for, it returns - instantly and this must be handled gracefully within curl_easy_perform() - or cause a busy-loop. Starting now, repeated fast returns without any - file descriptors is detected and a gradually increasing sleep will be - used (up to a max of 1000 milliseconds) before continuing the loop. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1238 - Reported-by: Miguel Angel - -- [YAMADA Yasuharu brought this change] - - cookies: follow-up fix for path checking - - The initial fix to only compare full path names were done in commit - 04f52e9b4db0 but found out to be incomplete. This takes should make the - change more complete and there's now two additional tests to verify - (test 31 and 62). - -- [Sergei Nikulov brought this change] - - lib1900: use tutil_tvnow instead of gettimeofday - - Makes it build on windows - -- [Eric Hu brought this change] - - axtls: now done non-blocking - -- [Eric Hu brought this change] - - test2033: requires NTLM support - -- KNOWN_BUGS: #82 failed build with Borland compiler - -- Curl_output_digest: support auth-int for empty entity body - - By always returning the md5 for an empty body when auth-int is asked - for, libcurl now at least sometimes does the right thing. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1235 - Patched-by: Nach M. S. - -- multi_socket: reduce timeout inaccuracy margin - - Allow less room for "triggered too early" mistakes by applications / - timers on non-windows platforms. Starting now, we assume that a timeout - call is never made earlier than 3 milliseconds before the actual - timeout. This greatly improves timeout accuracy on Linux. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1228 - Reported-by: Hang Su - -- cert_stuff: avoid double free in the PKCS12 code - - In the pkcs12 code, we get a list of x509 records returned from - PKCS12_parse but when iterating over the list and passing each to - SSL_CTX_add_extra_chain_cert() we didn't also properly remove them from - the "stack", which made them get freed twice (both in sk_X509_pop_free() - and then later in SSL_CTX_free). - - This isn't really documented anywhere... - - Bug: http://curl.haxx.se/bug/view.cgi?id=1236 - Reported-by: Nikaiw - -- cert_stuff: remove code duplication in the pkcs12 logic - -- [Aleksey Tulinov brought this change] - - axtls: honor disabled VERIFYHOST - - When VERIFYHOST == 0, libcurl should let invalid certificates to pass. - -- [Peter Gal brought this change] - - curl_easy_setopt.3: HTTP header with no content - - Update the documentation on how to specify a HTTP header with no - content. - -- RELEASE-NOTES: synced with 87cf677eca55 - - Added 11 bugs and 7 contributors - -- lib1500: remove bad check - - After curl_multi_wait() returns, this test checked that we got exactly - one file descriptor told to read from, but we cannot be sure that is - true. curl_multi_wait() will sometimes return earlier without any file - descriptor to handle, just just because it is a suitable time to call - *perform(). - - This problem showed up with commit 29bf0598. - - Bug: http://curl.haxx.se/mail/lib-2013-06/0029.html - Reported-by: Fabian Keil - -- tests/Makefile: typo in the perlcheck target - - Bug: http://curl.haxx.se/bug/view.cgi?id=1239 - Reported-by: Christian Weisgerber - -- test1230: verify CONNECT to a numerical ipv6-address - -- sws: support extracting test number from CONNECT ipv6-address! - - If an ipv6-address is provided to CONNECT, the last hexadecimal group in - the address will be used as the test number! For example the address - "[1234::ff]" would be treated as test case 255. - -- curl_multi_wait: only use internal timer if not -1 - - commit 29bf0598aad5 introduced a problem when the "internal" timeout is - prefered to the given if shorter, as it didn't consider the case where - -1 was returned. Now the internal timeout is only considered if not -1. - - Reported-by: Tor Arntsen - Bug: http://curl.haxx.se/mail/lib-2013-06/0015.html - -Dan Fandrich (3 Jun 2013) -- libcurl-tutorial.3: added a section on IPv6 - - Also added a (correctly-escaped) backslash to the autoexec.bat - example file and a new Windows character device name with - a colon as examples of other characters that are special - and potentially dangerous (this reverts and reworks commit - 7d8d2a54). - -Daniel Stenberg (3 Jun 2013) -- curl_multi_wait: reduce timeout if the multi handle wants to - - If the multi handle's pending timeout is less than what is passed into - this function, it will now opt to use the shorter time anyway since it - is a very good hint that the handle wants to process something in a - shorter time than what otherwise would happen. - - curl_multi_wait.3 was updated accordingly to clarify - - This is the reason for bug #1224 - - Bug: http://curl.haxx.se/bug/view.cgi?id=1224 - Reported-by: Andrii Moiseiev - -- multi_runsingle: switch an if() condition for readability - - ... because there's an identical check right next to it so using the - operators in the check in the same order increases readability. - -Marc Hoersken (2 Jun 2013) -- curl_schannel.c: Removed variable unused since 35874298e4 - -- curl_setup.h: Fixed redefinition warning using mingw-w64 - -Daniel Stenberg (30 May 2013) -- multi_runsingle: add braces to clarify the code - -- libcurl-tutorial.3: remove incorrect backslash - - A single backslash in the content is not legal nroff syntax. - - Reported and fixed by: Eric S. Raymond - Bug: http://curl.haxx.se/bug/view.cgi?id=1234 - -- curl_formadd.3: fixed wrong "end-marker" syntax - - Reported and fixed by: Eric S. Raymond - Bug: http://curl.haxx.se/bug/view.cgi?id=1233 - -- curl.1: clarify that --silent still outputs data - -- Digest auth: escape user names with \ or " in them - - When sending the HTTP Authorization: header for digest, the user name - needs to be escaped if it contains a double-quote or backslash. - - Test 1229 was added to verify - - Reported and fixed by: Nach M. S - Bug: http://curl.haxx.se/bug/view.cgi?id=1230 - -- [Mike Giancola brought this change] - - ossl_recv: SSL_read() returning 0 is an error too - - SSL_read can return 0 for "not successful", according to the open SSL - documentation: http://www.openssl.org/docs/ssl/SSL_read.html - -- [Mike Giancola brought this change] - - ossl_send: SSL_write() returning 0 is an error too - - We found that in specific cases if the connection is abruptly closed, - the underlying socket is listed in a close_wait state. We continue to - call the curl_multi_perform, curl_mutli_fdset etc. None of these APIs - report the socket closed / connection finished. Since we have cases - where the multi connection is only used once, this can pose a problem - for us. I've read that if another connection was to come in, curl would - see the socket as bad and attempt to close it at that time - - unfortunately, this does not work for us. - - I found that in specific situations, if SSL_write returns 0, curl did - not recognize the socket as closed (or errored out) and did not report - it to the application. I believe we need to change the code slightly, to - check if ssl_write returns 0. If so, treat it as an error - the same as - a negative return code. - - For OpenSSL - the ssl_write documentation is here: - http://www.openssl.org/docs/ssl/SSL_write.html - -- KNOWN_BUGS: curl -OJC- fails to resume - - Bug: http://curl.haxx.se/bug/view.cgi?id=1169 - -- Curl_cookie_add: handle IPv6 hosts - - 1 - don't skip host names with a colon in them in an attempt to bail out - on HTTP headers in the cookie file parser. It was only a shortcut anyway - and trying to parse a file with HTTP headers will still be handled, only - slightly slower. - - 2 - don't skip domain names based on number of dots. The original - netscape cookie spec had this oddity mentioned and while our code - decreased the check to only check for two, the existing cookie spec has - no such dot counting required. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1221 - Reported-by: Stefan Neis - -- curl_easy_setopt.3: expand the PROGRESSFUNCTION section - - Explain the callback and its arguments better and with more descriptive - text. - -- tests: add test1394 file to the tarball - -- tarball: include the xmlstream example - -- [David Strauss brought this change] - - xmlstream: XML stream parsing example source code - - Add an XML stream parsing example using Expat. Add missing ignore for - the binary from an unrelated example. - -- [YAMADA Yasuharu brought this change] - - cookies: only consider full path matches - - I found a bug which cURL sends cookies to the path not to aim at. - For example: - - cURL sends a request to http://example.fake/hoge/ - - server returns cookie which with path=/hoge; - the point is there is NOT the '/' end of path string. - - cURL sends a request to http://example.fake/hogege/ with the cookie. - - The reason for this old "feature" is because that behavior is what is - described in the original netscape cookie spec: - http://curl.haxx.se/rfc/cookie_spec.html - - The current cookie spec (RFC6265) clarifies the situation: - http://tools.ietf.org/html/rfc6265#section-5.2.4 - -- [Eric Hu brought this change] - - axtls: prevent memleaks on SSL handshake failures - -- Revert "WIN32 MemoryTracking: track wcsdup() _wcsdup() and _tcsdup() usage" - - This reverts commit 8ec2cb5544b86306b702484ea785b6b9596562ab. - - We don't have any code anywhere in libcurl (or the curl tool) that use - wcsdup so there's no such memory use to track. It seems to cause mild - problems with the Borland compiler though that we may avoid by reverting - this change again. - - Bug: http://curl.haxx.se/mail/lib-2013-05/0070.html - -- RELEASE-NOTES: synced with ae26ee3489588f0 - -Guenter Knauf (11 May 2013) -- Updated zlib version in build files. - -Daniel Stenberg (9 May 2013) -- [Renaud Guillard brought this change] - - OS X framework: fix invalid symbolic link - -Kamil Dudka (9 May 2013) -- [Daniel Stenberg brought this change] - - nss: give PR_INTERVAL_NO_WAIT instead of -1 to PR_Recv/PR_Send - - Reported by: David Strauss - Bug: http://curl.haxx.se/mail/lib-2013-05/0088.html - -Daniel Stenberg (8 May 2013) -- libtest: gitignore more binary files - -- servercert: allow empty subject - - Bug: http://curl.haxx.se/bug/view.cgi?id=1220 - Patch by: John Gardiner Myers - -- [Steve Holme brought this change] - - tests: Added new SMTP tests to verify commit 99b40451836d - -- runtests.pl: support nonewline="yes" in client/stdin sections - -- build: fixed unit1394 for debug and metlink builds - -Kamil Dudka (6 May 2013) -- unit1394.c: plug the curl tool unit test in - -- [Jared Jennings brought this change] - - unit1394.c: basis of a unit test for parse_cert_parameter() - -- src/Makefile.am: build static lib for unit tests if enabled - -- tool_getparam: ensure string termination in parse_cert_parameter() - -- tool_getparam: fix memleak in handling the -E option - -- tool_getparam: describe what parse_cert_parameter() does - - ... and de-duplicate the code initializing *passphrase - -- curl.1: document escape sequences recognized by -E - -- [Jared Jennings brought this change] - - curl -E: allow to escape ':' in cert nickname - -Marc Hoersken (5 May 2013) -- curl_schannel.c: Fixed invalid memory access during SSL shutdown - -Steve Holme (4 May 2013) -- smtp: Fix trailing whitespace warning - -- smtp: Fix compilation warning - - comparison between signed and unsigned integer expressions - -- RELEASE-NOTES: synced with 92ef5f19c801 - -- smtp: Updated RFC-2821 references to RFC-5321 - -- smtp: Fixed sending of double CRLF caused by first in EOB - - If the mail sent during the transfer contains a terminating <CRLF> then - we should not send the first <CRLF> of the EOB as specified in RFC-5321. - - Additionally don't send the <CRLF> if there is "no mail data" as the - DATA command already includes it. - -- tests: Corrected MAIL SIZE for CRLF line endings - - ... which was missed in commit: f5c3d9538452 - -- tests: Corrected infilesize for CRLF line endings - - ... which was missed in commit: f5c3d9538452 - -- tests: Corrected test1406 to be RFC2821 compliant - -- tests: Corrected test1320 to be RFC2821 compliant - -- tests: Corrected typo in test909 - - Introduced in commit: 514817669e9e - -- tests: Corrected test909 to be RFC2821 compliant - -- tests: Updated test references to 909 from 1411 - - ...and removed references to libcurl and test1406. - -- tests: Renamed test1411 to test909 as this is a main SMTP test - -Daniel Stenberg (1 May 2013) -- [Lars Johannesen brought this change] - - bindlocal: move brace out of #ifdef - - The code within #ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID wrongly had two - closing braces when it should only have one, so builds without that - define would fail. - - Bug: http://curl.haxx.se/mail/lib-2013-05/0000.html - -Steve Holme (30 Apr 2013) -- smtp: Tidy up to move the eob counter to the per-request structure - - Move the eob counter from the smtp_conn structure to the SMTP structure - as it is associated with a SMTP payload on a per-request basis. - -- TODO: Updated following the addition of CURLOPT_SASL_IR - -- smtp: Fixed unknown percentage complete in progress bar - - The curl command line utility would display the the completed progress - bar with a percentage of zero as the progress routines didn't know the - size of the transfer. - -Daniel Stenberg (29 Apr 2013) -- ftpserver: silence warnings - - Fix regressions in commit b56e3d43e5d. Make @data local and filter off - non-numerical digits from $testno in STATUS_imap. - -Steve Holme (29 Apr 2013) -- ftpserver.pl: Corrected the imap LOGIN response - - ...to be more realistic and consistent with the other imap responses. - -- tests: Added imap STATUS command test - -- tests: Corrected the SMTP tests to be RFC2821 compliant - - The emails that are sent to the server during these tests were - incorrectly formatted as they contained one or more LF terminated lines - rather than being CRLF terminated as per Section 2.3.7 of RFC-2821. - - This wasn't a problem for the test suite as the <stdin> data matched the - <upload> data but anyone using these tests as reference would be sending - incorrect data to a server. - -- email: Tidy up of *_perform_authenticate() - - Removed the hard returns from imap and pop3 by using the same style for - sending the authentication string as smtp. Moved the "Other mechanisms - not supported" check in smtp to match that of imap and pop3 to provide - consistency between the three email protocols. - -- smtp: Updated limit check to be more readable like the check in pop3 - -- pop3: Added 255 octet limit check when sending initial response - - Added 255 octet limit check as per Section 4. Paragraph 8 of RFC-5034. - -- DOCS: Corrected line length of recent Secure Transport changes - -Nick Zitzmann (27 Apr 2013) -- darwinssl: add TLS crypto authentication - - Users using the Secure Transport (darwinssl) back-end can now use a - certificate and private key to authenticate with a site using TLS. Because - Apple's security system is based around the keychain and does not have any - non-public function to create a SecIdentityRef data structure from data - loaded outside of the Keychain, the certificate and private key have to be - loaded into the Keychain first (using the certtool command line tool or - the Security framework's C API) before we can find it and use it. - -Steve Holme (27 Apr 2013) -- Corrected version numbers after bump - -Daniel Stenberg (27 Apr 2013) -- bump version - - Since we're adding new stuff, the next release will bump the minor - version and we're looking forward to 7.31.0 - -Steve Holme (27 Apr 2013) -- RELEASE-NOTES: synced with f4e6e201b146 - -- DOCS: Updated following the addition of CURLOPT_SASL_IR - - Documented the the option in curl_easy_setopt() and added it to - symbols-in-versions. - -- tests: Corrected command line arguments in test907 and test908 - -- tests: Added SMTP AUTH with initial response tests - -- tests: Updated SMTP tests to decouple client initial response - - Updated test903 and test904 following the addition of CURLOPT_SASL_IR - as the default behaviour of SMTP AUTH responses is now to not include - the initial response. New tests with --sasl-ir support to follow. - -- imap: Added support for overriding the SASL initial response - - In addition to checking for the SASL-IR capability the user can override - the sending of the client's initial response in the AUTHENTICATION - command with the use of CURLOPT_SASL_IR should the server erroneously - not report SASL-IR when it does support it. - -- smtp: Added support for disabling the SASL initial response - - Updated the default behaviour of sending the client's initial response in the AUTH - command to not send it and added support for CURLOPT_SASL_IR to allow the user to - specify including the response. - - Related Bug: http://curl.haxx.se/mail/lib-2012-03/0114.html - Reported-by: Gokhan Sengun - -- pop3: Added support for enabling the SASL initial response - - Allowed the user to specify whether to send the client's intial response - in the AUTH command via CURLOPT_SASL_IR. - -- sasl-ir: Added --sasl-ir option to curl command line tool - -- sasl-ir: Added CURLOPT_SASL_IR to enable/disable the SASL initial response - -Daniel Stenberg (26 Apr 2013) -- curl_easy_init: use less mallocs - - By introducing an internal alternative to curl_multi_init() that accepts - parameters to set the hash sizes, easy handles will now use tiny socket - and connection hash tables since it will only ever add a single easy - handle to that multi handle. - - This decreased the number mallocs in test 40 (which is a rather simple - and typical easy interface use case) from 1142 to 138. The maximum - amount of memory allocated used went down from 118969 to 78805. - -Steve Holme (26 Apr 2013) -- ftpserver.pl: Fixed imap logout confirmation data - - An IMAP server should response with the BYE continuation response before - confirming the LOGOUT command was successful. - -Daniel Stenberg (26 Apr 2013) -- ftp_state_pasv_resp: connect through proxy also when set by env - - When connecting back to an FTP server after having sent PASV/EPSV, - libcurl sometimes didn't use the proxy properly even though the proxy - was used for the initial connect. - - The function wrongly checked for the CURLOPT_PROXY variable to be set, - which made it act wrongly if the proxy information was set with an - environment variable. - - Added test case 711 to verify (based on 707 which uses --socks5). Also - added test712 to verify another variation of setting the proxy: with - --proxy socks5:// - - Bug: http://curl.haxx.se/bug/view.cgi?id=1218 - Reported-by: Zekun Ni - -Kamil Dudka (26 Apr 2013) -- [Zdenek Pavlas brought this change] - - url: initialize speed-check data for file:// protocol - - ... in order to prevent an artificial timeout event based on stale - speed-check data from a previous network transfer. This commit fixes - a regression caused by 9dd85bced56f6951107f69e581c872c1e7e3e58e. - - Bug: https://bugzilla.redhat.com/906031 - -Daniel Stenberg (25 Apr 2013) -- test709: clarify the test in the name - -- sshserver: disable StrictHostKeyChecking - - I couldn't figure out why the host key logic isn't working, but having - it set to yes prevents my SSH-based test cases to run. I also don't see - a strong need to use strict host key checking on this test server. - - So I disabled it. - -- runtests: log more commands in verbose mode - - ... to aid tracking down failures - -Steve Holme (25 Apr 2013) -- TODO: Corrected copy/paste typo - -- TODO: Added new ideas for future SMTP, POP3 and IMAP features - -- TODO: Updated following the addition of ;auth=<MECH> support - -- DOCS: Minor rewording / clarification of host name protocol detection - -- RELEASE-NOTES: synced with a8c92cb60890 - -- DOCS: Added reference to IETF draft for SMTP URL Interface - - ...when mentioning login options. Additional minor clarification of - "Windows builds" to be "Windows builds with SSPI"as a way of enabling - NTLM as Windows builds may be built with OpenSSL to enable NTLM or - without NTLM support altogether. - -Linus Nielsen Feltzing (23 Apr 2013) -- HISTORY: Fix spelling error. - -Steve Holme (23 Apr 2013) -- DOCS: Reworked the scheme calculation explanation under CURLOPT_URL - -- url: Added smtp and pop3 hostnames to the protocol detection list - -Daniel Stenberg (23 Apr 2013) -- HISTORY: correct some years/dates - - Thanks to archive.org's wayback machine I updated this document with - some facts from the early httpget/urlget web page: - - http://web.archive.org/web/19980216125115/http://www.inf.ufrgs.br/~sagula/urlget.html - -- [Alessandro Ghedini brought this change] - - tests: add test1511 to check timecond clean-up - - Verifies the timecond fix in commit c49ed0b6c0f - -- [Alessandro Ghedini brought this change] - - getinfo.c: reset timecond when clearing session-info variables - - Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=705783 - Reported-by: Ludovico Cavedon <cavedon@debian.org> - -Steve Holme (22 Apr 2013) -- DOCS: Added information about login options to CURLOPT_USERPWD - -- DOCS: Added information about login options in the URL - -- url: Fixed missing length check in parse_proxy() - - Commit 11332577b3cb removed the length check that was performed by the - old scanf() code. - -- url: Fixed crash when no username or password supplied for proxy - - Fixed an issue in parse_proxy(), introduced in commit 11332577b3cb, - where an empty username or password (For example: http://:@example.com) - would cause a crash. - -- url: Removed unused text length constants - -- url: Updated proxy URL parsing to use parse_login_details() - -- url: Tidy up of setstropt_userpwd() parameters - - Updated the naming convention of the login parameters to match those of - other functions. - -- url: Tidy up of code and comments following recent changes - - Tidy up of variable names and comments in setstropt_userpwd() and - parse_login_details(). - -- url: Simplified setstropt_userpwd() following recent changes - - There is no need to perform separate clearing of data if a NULL option - pointer is passed in. Instead this operation can be performed by simply - not calling parse_login_details() and letting the rest of the code do - the work. - -- url: Correction to scope of if statements when setting data - -- url: Fixed memory leak in setstropt_userpwd() - - setstropt_userpwd() was calling setstropt() in commit fddb7b44a79d to - set each of the login details which would duplicate the strings and - subsequently cause a memory leak. - -- RELEASE-NOTES: synced with d535c4a2e1f7 - -- url: Added overriding of URL login options from CURLOPT_USERPWD - -- tool_paramhlp: Fixed options being included in username - - Fix to prevent the options from being displayed when curl requests the - user's password if the following command line is specified: - - --user username;options - -- url: Added support for parsing login options from the CURLOPT_USERPWD - - In addition to parsing the optional login options from the URL, added - support for parsing them from CURLOPT_USERPWD, to allow the following - supported command line: - - --user username:password;options - -- url: Added bounds checking to parse_login_details() - - Added bounds checking when searching for the separator characters within - the login string as this string may not be NULL terminated (For example - it is the login part of a URL). We do this in preference to allocating a - new string to copy the login details into which could then be passed to - parse_login_details() for performance reasons. - -- url: Added size_t cast to pointer based length calculations - -- url: Corrected minor typo in comment - -Daniel Stenberg (18 Apr 2013) -- CURL_CHECK_CA_BUNDLE: don't check for paths when cross-compiling - - When cross-compiling we can't scan and detect existing files or paths. - - Bug: http://curl.haxx.se/mail/lib-2013-04/0294.html - -- [Ishan SinghLevett brought this change] - - usercertinmem.c: add example showing user cert in memory - - Relies on CURLOPT_SSL_CTX_FUNCTION, which is OpenSSL specific - -Steve Holme (18 Apr 2013) -- url: Fix chksrc longer than 79 columns warning - -- url: Fix incorrect variable type for result code - -- url: Fix compiler warning - - signed and unsigned type in conditional expression - -- url: Moved parsing of login details out of parse_url_login() - - Separated the parsing of login details from the processing of them in - parse_url_login() ready for use by setstropt_userpwd(). - -- url: Re-factored set_userpass() and parse_url_userpass() - - Re-factored these functions to reflect their new behaviour following the - addition of login options. - -- url: Reworked URL parsing to allow overriding by CURLOPT_USERPWD - -Daniel Stenberg (18 Apr 2013) -- maketgz: make bzip2 creation work with Parallel BZIP2 too - - Apparently the previous usage didn't work with that implementation, - while this updated version works with at least both Parallel BZIP2 - v1.1.8 and regular bzip "Version 1.0.6, 6-Sept-2010". - -Linus Nielsen Feltzing (18 Apr 2013) -- Add tests/http_pipe.py to the tarball build - -Steve Holme (16 Apr 2013) -- smtp: Re-factored all perform based functions - - Standardised the naming of all perform based functions to be in the form - smtp_perform_something(). - -- smtp: Added description comments to all perform based functions - -- smtp: Moved smtp_quit() to be with the other perform functions - -- smtp: Moved smtp_rcpt_to() to be with the other perform functions - -- smtp: Moved smtp_mail() to be with the other perform functions - -Daniel Stenberg (16 Apr 2013) -- [Wouter Van Rooy brought this change] - - curl-config: don't output static libs when they are disabled - - Curl-config outputs static libraries even when they are disabled in - configure. - - This causes problems with the build of pycurl. - -- [Dave Reisner brought this change] - - docs/libcurl: fix formatting in manpage - - Commit c3ea3eb6 introduced some minor cosmetic errors in - curl_mutli_socket_action(3). - -- [Paul Howarth brought this change] - - Add extra libs for lib1900 and lib2033 test programs - - These are needed in cases where clock_gettime is used, from librt. - -Dan Fandrich (15 Apr 2013) -- FAQ: mention that the network connection can be monitored - - Also note the prohibition on sharing handles across threads. - -Steve Holme (15 Apr 2013) -- pop3: Added missing comment for pop3_state_apop_resp() - -- smtp: Updated the coding style of smtp_state_servergreet_resp() - - Updated the coding style, in this function, to be consistant with other - response functions rather then performing a hard return on failure. - -- pop3: Updated the coding style of pop3_state_servergreet_resp() - - Updated the coding style, in this function, to be consistent with other - response functions rather then performing a hard return on failure. - -- pop3: Re-factored all perform based functions - - Standardised the naming of all perform based functions to be in the form - pop3_perform_something() following the changes made to IMAP. - -- pop3: Added description comments to all perform based functions - -- pop3: Moved pop3_quit() to be with the other perform functions - -- pop3: Moved pop3_command() to be with the other perform functions - - Started to apply the same tidy up to the POP3 code as applied to the - IMAP code in the 7.30.0 release. - -- RELEASE-NOTES: Removed erroneous spaces - -- RELEASE-NOTES: synced with 8723cade21fb - -- smtp: Added support for ;auth=<mech> in the URL - - Added support for specifying the preferred authentication mechanism in - the URL as per Internet-Draft 'draft-earhart-url-smtp-00'. - -- pop3: Reworked authentication type constants - - ... to use left-shifted values, like those defined in curl.h, rather - than 16-bit hexadecimal values. - -- pop3: Small consistency tidy up - -- pop3: Added support for ;auth=<mech> in the URL - - Added support for specifying the preferred authentication type and SASL - mechanism in the URL as per RFC-2384. - -- imap: Added support for ;auth=<mech> in the URL - - Added support for specifying the preferred authentication mechanism in - the URL as per RFC-5092. - -- sasl: Reworked SASL mechanism constants - - ... to use left-shifted values, like those defined in curl.h, rather - than 16-bit hexadecimal values. - -- sasl: Added predefined preferred mechanism values - - In preparation for the upcoming changes to IMAP, POP3 and SMTP added - preferred mechanism values. - -- url: Added support for parsing login options from the URL - - As well as parsing the username and password from the URL, added support - for parsing the optional options part from the login details, to allow - the following supported URL format: - - schema://username:password;options@example.com/path?q=foobar - - This will only be used by IMAP, POP3 and SMTP at present but any - protocol that may be given login options in the URL will be able to - add support for them. - -- smtp: Fix compiler warning - - warning: unused variable 'smtp' introduced in commit 73cbd21b5ee6. - -- smtp: Moved parsing of url path into separate function - -Daniel Stenberg (12 Apr 2013) -- FTP: handle a 230 welcome response - - ...instead of the 220 we otherwise expect. - - Made the ftpserver.pl support sending a custom "welcome" and then - created test 1219 to verify this fix with such a 230 welcome. - - Bug: http://curl.haxx.se/mail/lib-2013-02/0102.html - Reported by: Anders Havn - -- configure: try pthread_create without -lpthread - - For libc variants without a spearate pthread lib (like bionic), try - using pthreads without the pthreads lib first and only if that fails try - the -lpthread linker flag. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1216 - Reported by: Duncan - -- FTP: access files in root dir correctly - - Accessing a file with an absolute path in the root dir but with no - directory specified was not handled correctly. This fix comes with four - new test cases that verify it. - - Bug: http://curl.haxx.se/mail/lib-2013-04/0142.html - Reported by: Sam Deane - -Steve Holme (12 Apr 2013) -- pop3: Reworked the function description for Curl_pop3_write() - -- pop3: Added function description to pop3_parse_custom_request() - -- pop3: Moved utility functions to end of pop3.c - -Nick Zitzmann (12 Apr 2013) -- darwinssl: add TLS session resumption - - This ought to speed up additional TLS handshakes, at least in theory. - -Steve Holme (12 Apr 2013) -- imap: Added function description to imap_parse_custom_request() - -- imap: Moved utility functions to end of imap.c (Part 3/3) - - Moved imap_is_bchar() be with the other utility based functions. - -- imap: Moved utility functions to end of imap.c (Part 2/3) - - Moved imap_parse_url_path() and imap_parse_custom_request() to the end of the - file allowing all utility functions to be grouped together. - -- imap: Moved utility functions to end of imap.c (Part 1/3) - - Moved imap_atom() and imap_sendf() to the end of the file allowing all - utility functions to be grouped together. - -- imap: Corrected function description for imap_connect() - -Kamil Dudka (12 Apr 2013) -- tests: prevent test206, test1060, and test1061 from failing - - ... in case runtests.pl is invoked with non-default -b option - - Fixes a regression caused by 1e29d275c643ef6aab7948f0f55a7a9397e56b42. - -Daniel Stenberg (12 Apr 2013) -- [David Strauss brought this change] - - libcurl-share.3: update what it does and does not share. - - Update sharing interface documentation to provide exhaustive list of - what it does and does not share. - -- THANKS: remove duplicated names - -- bump: start working towards next release - -- THANKS: added people from the 7.30.0 RELEASE-NOTES - -Version 7.30.0 (12 Apr 2013) - -Daniel Stenberg (12 Apr 2013) -- RELEASE-NOTES: cleaned up for 7.30 (synced with 5c5e1a1cd20) - - Most notable the security advisory: - http://curl.haxx.se/docs/adv_20130412.html - -- test1218: another cookie tailmatch test - - ... and make 1216 also verify it with a file input - - These tests verify commit 3604fde3d3c9b0d, the fix for the "cookie - domain tailmatch" vulnerability. See - http://curl.haxx.se/docs/adv_20130412.html - -- [YAMADA Yasuharu brought this change] - - cookie: fix tailmatching to prevent cross-domain leakage - - Cookies set for 'example.com' could accidentaly also be sent by libcurl - to the 'bexample.com' (ie with a prefix to the first domain name). - - This is a security vulnerabilty, CVE-2013-1944. - - Bug: http://curl.haxx.se/docs/adv_20130412.html - -Guenter Knauf (11 Apr 2013) -- Enabled MinGW sync resolver builds. - -Yang Tse (10 Apr 2013) -- if2ip.c: fix compiler warning - -Guenter Knauf (10 Apr 2013) -- Fixed lost OpenSSL output with "-t" - followup. - - The previously applied patch didnt work on Windows; we cant rely - on shell commands like 'echo' since they act diffently on each - platform and each shell. - In order to keep this script platform-independent the code must - only use pure Perl. - -Daniel Stenberg (9 Apr 2013) -- test1217: verify parsing 257 responses with "rubbish" before path - - Test 1217 verifies commit e0fb2d86c9f78, and without that change this - test fails. - -- [Bill Middlecamp brought this change] - - FTP: handle "rubbish" in front of directory name in 257 responses - - When doing PWD, there's a 257 response which apparently some servers - prefix with a comment before the path instead of after it as is - otherwise the norm. - - Failing to parse this, several otherwise legitimate use cases break. - - Bug: http://curl.haxx.se/mail/lib-2013-04/0113.html - -Guenter Knauf (9 Apr 2013) -- Fixed ares-enabled builds with static makefiles. - -- Fixed lost OpenSSL output with "-t". - - The OpenSSL pipe wrote to the final CA bundle file, but the encoded PEM - output wrote to a temporary file. Consequently, the OpenSSL output was - lost when the temp file was renamed to the final file at script finish - (overwriting the final file written earlier by openssl). - Patch posted to the list by Richard Michael (rmichael edgeofthenet org). - -Daniel Stenberg (9 Apr 2013) -- test1216: test tailmatching cookie domains - - This test is an attempt to repeat the problem YAMADA Yasuharu reported - at http://curl.haxx.se/mail/lib-2013-04/0108.html - -- RELEASe-NOTES: synced with 29fdb2700f797 - - added "tcpkeepalive on Mac OS X" - -Nick Zitzmann (8 Apr 2013) -- darwinssl: disable insecure ciphers by default - - I noticed that aria2's SecureTransport code disables insecure ciphers such - as NULL, anonymous, IDEA, and weak-key ciphers used by SSLv3 and later. - That's a good idea, and now we do the same thing in order to prevent curl - from accessing a "secure" site that only negotiates insecure ciphersuites. - -Daniel Stenberg (8 Apr 2013) -- [Robert Wruck brought this change] - - tcpkeepalive: Support CURLOPT_TCP_KEEPIDLE on OSX - - MacOS X doesn't have TCP_KEEPIDLE/TCP_KEEPINTVL but only a single - TCP_KEEPALIVE (see - http://developer.apple.com/library/mac/#DOCUMENTATION/Darwin/Reference/ManPages/man4/tcp.4.html). - Here is a patch for CURLOPT_TCP_KEEPIDLE on OSX platforms. - -- configure: remove CURL_CHECK_FUNC_RECVFROM - - 1 - We don't use the results from the test and we never did. recvfrom() - is only used by the TFTP code and it has not caused any problems. - - 2 - the CURL_CHECK_FUNC_RECVFROM function is extremely slow - -Steve Holme (8 Apr 2013) -- RELEASE-NOTES: Corrected duplicate NTLM memory leaks - -- RELEASE-NOTES: Removed trailing full stop - -Daniel Stenberg (8 Apr 2013) -- [Fabian Keil brought this change] - - proxy: make ConnectionExists() check credential of proxyconnections too - - Previously it only compared credentials if the requested needle - connection wasn't using a proxy. This caused NTLM authentication - failures when using proxies as the authentication code wasn't send on - the connection where the challenge arrived. - - Added test 1215 to verify: NTLM server authentication through a proxy - (This is a modified copy of test 67) - -- RELEASE-NOTES: sync with 704a5dfca9 - -- TODO-RELEASE: cleaned up, not really maintained lately - -Marc Hoersken (7 Apr 2013) -- if2ip.c: Fixed another warning: unused parameter 'remote_scope' - -Daniel Stenberg (7 Apr 2013) -- [Marc Hoersken brought this change] - - cookie.c: Made cookie sort function more deterministic - - Since qsort implementations vary with regards to handling the order - of similiar elements, this change makes the internal sort function - more deterministic by comparing path length first, then domain length - and finally the cookie name. Spotted with testcase 62 on Windows. - -Marc Hoersken (7 Apr 2013) -- curl_schannel.c: Follow up on memory leak fix ae4558d - -- Revert "getpart.pm: Strip carriage returns to fix Windows support" - - This reverts commit e51b23c925a2721cf7c29b2b376d3d8903cfb067. - As discussed on the mailinglist, this was not the correct approach. - -- http_negotiate.c: Fixed passing argument from incompatible pointer type - -- ftp.c: Added missing brackets around ABOR command logic - -- sockfilt.c: Fixed detection of client-side connection close - - WINSOCK only: - Since FD_CLOSE is only signaled once, it may trigger at the same - time as FD_READ. Data actually being available makes it impossible - to detect that the connection was closed by checking that recv returns - zero. Another recv attempt could block the connection if it was - not closed. This workaround abuses exceptfds in conjunction with - readfds to signal that the connection has actually closed. - -- curl_schannel.c: Fixed memory leak if connection was not successful - -- if2ip.c: Fixed warning: unused parameter 'remote_scope' - -- runtests.pl: Fixed --verbose parameter passed to http_pipe.py - -- sockfilt.c: Reduce CPU load while running under a Windows PIPE - -- tftpd.c: Apply sread timeout to the whole data transfer session - -- getpart.pm: Strip carriage returns to fix Windows support - -Daniel Stenberg (6 Apr 2013) -- ftp tests: libcurl returns CURLE_FTP_ACCEPT_FAILED better now - - Since commit 57aeabcc1a20f, it handles errors on the control connection - while waiting for the data connection better. - - Test 591 and 592 are updated accordingly. - -- FTP: wait on both connections during active STOR state - - When doing PORT and upload (STOR), this function needs to extract the - file descriptor for both connections so that it will respond immediately - when the server eventually connects back. - - This flaw caused active connections to become unnecessary slow but they - would still often work due to the normal polling on a timeout. The bug - also would not occur if the server connected back very fast, like when - testing on local networks. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1183 - Reported by: Daniel Theron - -Marc Hoersken (6 Apr 2013) -- tftpd.c: Follow up cleanup and restore of previous sockopt - -Daniel Stenberg (6 Apr 2013) -- [Kim Vandry brought this change] - - connect: treat an interface bindlocal() problem as a non-fatal error - - I am using curl_easy_setopt(CURLOPT_INTERFACE, "if!something") to force - transfers to use a particular interface but the transfer fails with - CURLE_INTERFACE_FAILED, "Failed binding local connection end" if the - interface I specify has no IPv6 address. The cause is as follows: - - The remote hostname resolves successfully and has an IPv6 address and an - IPv4 address. - - cURL attempts to connect to the IPv6 address first. - - bindlocal (in lib/connect.c) fails because Curl_if2ip cannot find an - IPv6 address on the interface. - - This is a fatal error in singleipconnect() - - This change will make cURL try the next IP address in the list. - - Also included are two changes related to IPv6 address scope: - - - Filter the choice of address in Curl_if2ip to only consider addresses - with the same scope ID as the connection address (mismatched scope for - local and remote address does not result in a working connection). - - - bindlocal was ignoring the scope ID of addresses returned by - Curl_if2ip . Now it uses them. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1189 - -Marc Hoersken (6 Apr 2013) -- tftpd.c: Fixed sread timeout on Windows by setting it manually - -- ftp.pm: Added tskill to support Windows XP Home - -- runtests.pl: Modularization of MinGW/Msys compatibility functions - -- ftp.pm: Made Perl testsuite able to handle Windows processes - -- util.c: Revert workaround eeefcdf, 6eb56e7 and e3787e8 - -- ftp.pm: Made Perl testsuite able to kill Windows processes - -- util.c: Follow up cleanup on eeefcdf - -Daniel Stenberg (6 Apr 2013) -- cpp: use #ifdef __MINGW32__ to avoid compiler complaints - - ... instead of just #if - -Marc Hoersken (6 Apr 2013) -- util.c: Made write_pidfile write the correct PID on MinGW/Msys - - This workaround fixes an issue on MinGW/Msys regarding the Perl - testsuite scripts not being able to signal or control the server - processes. The MinGW Perl runtime only sees the Msys processes and - their corresponding PIDs, but sockfilt (and other servers) wrote the - Windows PID into their PID-files. Since this PID is useless to the - testsuite, the write_pidfile function was changed to search for the - Msys PID and write that into the PID-file. - -Daniel Stenberg (5 Apr 2013) -- RELEASE-NOTES: synced with 5e722b2d09087 - - 3 more bug fixes, 6 more contributors - -Marc Hoersken (5 Apr 2013) -- sockfilt.c: Fixed handling of multiple fds being signaled - -Kamil Dudka (5 Apr 2013) -- curl_global_init.3: improve description of CURL_GLOBAL_ALL - - Reported by: Tomas Mlcoch - -- examples/multi-single.c: fix the order of destructions - - ... so that it adheres to the API documentation. - - Reported by: Tomas Mlcoch - -Daniel Stenberg (5 Apr 2013) -- Curl_open: restore default MAXCONNECTS to 5 - - At some point recently we lost the default value for the easy handle's - connection cache, and this change puts it back to 5 - which is the - former default value and it is documented in the curl_easy_setopt.3 man - page. - -Marc Hoersken (4 Apr 2013) -- sockfilt.c: Added wrapper functions to fix Windows console issues - - The new read and write wrapper functions support reading from stdin - and writing to stdout/stderr on Windows by using the appropriate - Windows API functions and data types. - -Yang Tse (4 Apr 2013) -- lib1509.c: fix compiler warnings - -- easy.c: fix compiler warning - -Daniel Stenberg (4 Apr 2013) -- --engine: spellfix the help message - - Reported by: Fredrik Thulin - -Yang Tse (4 Apr 2013) -- http_negotiate.c: follow-up for commit 3dcc1a9c - -Linus Nielsen Feltzing (4 Apr 2013) -- easy: Fix the broken CURLOPT_MAXCONNECTS option - - Copy the CURLOPT_MAXCONNECTS option to CURLMOPT_MAXCONNECTS in - curl_easy_perform(). - - Bug: http://curl.haxx.se/bug/view.cgi?id=1212 - Reported-by: Steven Gu - -Guenter Knauf (4 Apr 2013) -- Updated copyright date. - -- Another small output fix for --help and --version. - -Yang Tse (4 Apr 2013) -- http_negotiate.c: fix several SPNEGO memory handling issues - -Guenter Knauf (4 Apr 2013) -- Added a cont to specify base64 line wrap. - -- Fixed version output. - -- Added support for --help and --version options. - -- Added option to specify length of base64 output. - - Based on a patch posted to the list by Richard Michael. - -Daniel Stenberg (3 Apr 2013) -- curl_easy_setopt.3: CURLOPT_HTTPGET disables CURLOPT_UPLOAD - -- [Yasuharu Yamada brought this change] - - Curl_cookie_add: only increase numcookies for new cookies - - Count up numcookies in Curl_cookie_add() only when cookie is new one - -- SO_SNDBUF: don't set SNDBUF for win32 versions vista or later - - The Microsoft knowledge-base article - http://support.microsoft.com/kb/823764 describes how to use SNDBUF to - overcome a performance shortcoming in winsock, but it doesn't apply to - Windows Vista and later versions. If the described SNDBUF magic is - applied when running on those more recent Windows versions, it seems to - instead have the reversed effect in many cases and thus make libcurl - perform less good on those systems. - - This fix thus adds a run-time version-check that does the SNDBUF magic - conditionally depending if it is deemed necessary or not. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1188 - Reported by: Andrew Kurushin - Tested by: Christian Hägele - -Nick Zitzmann (1 Apr 2013) -- darwinssl: additional descriptive messages of SSL handshake errors - - (This doesn't need to appear in the release notes.) - -Guenter Knauf (1 Apr 2013) -- Added dns and connect time to output. - -Daniel Stenberg (1 Apr 2013) -- RELEASE-NOTES: synced with 0614b902136 - -- code-policed - -- tcpkeepalive: support TCP_KEEPIDLE/TCP_KEEPINTVL on win32 - - Patch by: Robert Wruck - Bug: http://curl.haxx.se/bug/view.cgi?id=1209 - -- BINDINGS: BBHTTP is a cocoa binding, Julia has a binding - -- ftp_sendquote: use PPSENDF, not FTPSENDF - - The last remaining code piece that still used FTPSENDF now uses PPSENDF. - In the problematic case, a PREQUOTE series was done on a re-used - connection when Curl_pp_init() hadn't been called so it had messed up - pointers. The init call is done properly from Curl_pp_sendf() so this - change fixes this particular crash. - - Bug: http://curl.haxx.se/mail/lib-2013-03/0319.html - Reported by: Sam Deane - -Steve Holme (27 Mar 2013) -- RELEASE-NOTES: Corrected typo - -Daniel Stenberg (27 Mar 2013) -- [Clemens Gruber brought this change] - - multi-uv.c: remove unused variable - -- RELEASE-NOTES: add two references - -- test1509: verify proxy header response headers count - - Modified sws to support and use custom CONNECT responses instead of the - previously naive hard-coded version. Made the HTTP test server able to - extract test case number from the host name in a CONNECT request by - finding the number after the last dot. It makes 'machine.moo.123' use - test case 123. - - Adapted a larger amount of tests to the new <connect> style. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1204 - Reported by: Martin Jansen - -- [Clemens Gruber brought this change] - - Added libuv example multi-uv.c - -Yang Tse (25 Mar 2013) -- NTLM: fix several NTLM code paths memory leaks - -- WIN32 MemoryTracking: track wcsdup() _wcsdup() and _tcsdup() usage - - As of 25-mar-2013 wcsdup() _wcsdup() and _tcsdup() are only used in - WIN32 specific code, so tracking of these has not been extended for - other build targets. Without this fix, memory tracking system on - WIN32 builds, when using these functions, would provide misleading - results. - - In order to properly extend this support for all targets curl.h - would have to define curl_wcsdup_callback prototype and consequently - wchar_t should be visible before that in curl.h. IOW curl_wchar_t - defined in curlbuild.h and this pulling whatever system header is - required to get wchar_t definition. - - Additionally a new curl_global_init_mem() function that also receives - user defined wcsdup() callback would be required. - -- curl_ntlm_msgs.c: revert commit 463082bea4 - - reverts unreleased invalid memory leak fix - -Daniel Stenberg (23 Mar 2013) -- RELEASE-NOTES: synced with bc6037ed3ec02 - - More changes, bugfixes and contributors! - -- [Martin Jansen brought this change] - - Curl_proxyCONNECT: count received headers - - Proxy servers tend to add their own headers at the beginning of - responses. The size of these headers was not taken into account by - CURLINFO_HEADER_SIZE before this change. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1204 - -Steve Holme (21 Mar 2013) -- sasl: Corrected a few violations of the curl coding standards - - Corrected some incorrectly positioned pointer variable declarations to - be "char *" rather than "char* ". - -- multi.c: Corrected a couple of violations of the curl coding standards - - Corrected some incorrectly positioned pointer variable declarations to - be "type *" rather than "type* ". - -- imap-tests: Added CRLF to reply data to be compliant with RFC-822 - - Updated the reply data in tests: 800, 801, 802, 804 and 1321 to possess - the CRLF as per RFC-822. - -- multi.c: Fix compilation warning - - warning: an enumerated type is mixed with another type - -- multi.c: fix compilation error - - warning: conversion from enumeration type to different enumeration type - -- lib1900.c: fix compilation warning - - warning: declaration of 'time' shadows a global declaration - -Yang Tse (20 Mar 2013) -- [John E. Malmberg brought this change] - - build_vms.com: use existing curlbuild.h and parsing fix - - This patch removes building curlbuild.h from the build_vms.com procedure - and uses the one in the daily or release tarball instead. - - packages/vms/build_curlbuild_h.com is obsolete with this change. - - Accessing the library module name "tool_main" needs different handling - when the optional extended parsing is enabled. - - Tested on IA64/VMS 8.4 and VAX/VMS 7.3 - -Nick Zitzmann (19 Mar 2013) -- darwinssl: disable ECC ciphers under Mountain Lion by default - - I found out that ECC doesn't work as of OS X 10.8.3, so those ciphers are - turned off until the next point release of OS X. - -Steve Holme (18 Mar 2013) -- FEATURES: Small tidy up for constancy and grammar - -Daniel Stenberg (18 Mar 2013) -- [Oliver Schindler brought this change] - - Curl_proxyCONNECT: clear 'rewindaftersend' on success - - After having done a POST over a CONNECT request, the 'rewindaftersend' - boolean could be holding the previous value which could lead to badness. - - This should be tested for in a new test case! - - Bug: https://groups.google.com/d/msg/msysgit/B31LNftR4BI/KhRTz0iuGmUJ - -Steve Holme (18 Mar 2013) -- TODO: Reordered the protocol and security sections - - Moved SMTP, POP3, IMAP and New Protocol sections to be listed after the - other protocols (FTP, HTTP and TELNET) and SASL to be after SSL and - GnuTLS as these are all security related. - - Additionally fixed numbering of the SSL and GnuTLS sections as they - weren't consecutive. - -Yang Tse (18 Mar 2013) -- tests: specify 'text' mode for some output files in verify section - -Steve Holme (17 Mar 2013) -- imap: Fixed incorrect initial response generation for SASL AUTHENTICATE - - Fixed incorrect initial response generation for the NTLM and LOGIN SASL - authentication mechanisms when the SASL-IR was detected. - - Introduced in commit: 6da7dc026c14. - -- FEATURES: Expanded the supported enhanced IMAP command list - -- TODO: Corrected typo in TOC - -- TODO: Added IMAP section and removed unused Other protocols section - -- TODO: Added graceful base64 decoding failure to SMTP and POP3 - -- TODO: Corrected typo on section 10.2 heading - -Yang Tse (16 Mar 2013) -- tests: 96, 558, 1330: strip build subdirectory dependent leading path - -Steve Holme (15 Mar 2013) -- TODO: Added section 10.2 Initial response to POP3 to do list - -- imap-tests: Corrected copy/paste error in test808 reply data - -Yang Tse (15 Mar 2013) -- unit1330.c: fix date - -- tests: add #96 #558 and #1330 - - These verfy that the 'memory tracking' subsystem is actually doing its - job when using curl tool (#96), a test in libtest (#558) and also a unit - test (#1330), in order to prevent regressions in this functionallity. - -Steve Holme (15 Mar 2013) -- imap-tests: Added test808 for custom EXAMINE command - -Daniel Stenberg (15 Mar 2013) -- HTTP proxy: insert slash in URL if missing - - curl has been accepting URLs using slightly wrong syntax for a long - time, such as when completely missing as slash "http://example.org" or - missing a slash when a query part is given - "http://example.org?q=foobar". - - curl would translate these into a legitimate HTTP request to servers, - although as was shown in bug #1206 it was not adjusted properly in the - cases where a HTTP proxy was used. - - Test 1213 and 1214 were added to the test suite to verify this fix. - - The test HTTP server was adjusted to allow us to specify test number in - the host name only without using any slashes in a given URL. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1206 - Reported by: ScottJi - -Steve Holme (14 Mar 2013) -- ftpserver.pl: Added EXAMINE_imap() for IMAP EXAMINE commands - - Used hard coded data from RFC-3501 section 6.3.2. - -Yang Tse (14 Mar 2013) -- curl_memory.h: introduce CURLX_NO_MEMORY_CALLBACKS usage possibility - - This commit alone does not fix anything nor modifies existing - interfaces or behaviors, although it is a prerequisite for other - fixes. - -- Makefile.vc6: add missing files - -Linus Nielsen Feltzing (14 Mar 2013) -- pipelining: Remove dead code. - -- Multiple pipelines and limiting the number of connections. - - Introducing a number of options to the multi interface that - allows for multiple pipelines to the same host, in order to - optimize the balance between the penalty for opening new - connections and the potential pipelining latency. - - Two new options for limiting the number of connections: - - CURLMOPT_MAX_HOST_CONNECTIONS - Limits the number of running connections - to the same host. When adding a handle that exceeds this limit, - that handle will be put in a pending state until another handle is - finished, so we can reuse the connection. - - CURLMOPT_MAX_TOTAL_CONNECTIONS - Limits the number of connections in total. - When adding a handle that exceeds this limit, - that handle will be put in a pending state until another handle is - finished. The free connection will then be reused, if possible, or - closed if the pending handle can't reuse it. - - Several new options for pipelining: - - CURLMOPT_MAX_PIPELINE_LENGTH - Limits the pipeling length. If a - pipeline is "full" when a connection is to be reused, a new connection - will be opened if the CURLMOPT_MAX_xxx_CONNECTIONS limits allow it. - If not, the handle will be put in a pending state until a connection is - ready (either free or a pipe got shorter). - - CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE - A pipelined connection will not - be reused if it is currently processing a transfer with a content - length that is larger than this. - - CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE - A pipelined connection will not - be reused if it is currently processing a chunk larger than this. - - CURLMOPT_PIPELINING_SITE_BL - A blacklist of hosts that don't allow - pipelining. - - CURLMOPT_PIPELINING_SERVER_BL - A blacklist of server types that don't allow - pipelining. - - See the curl_multi_setopt() man page for details. - -Yang Tse (13 Mar 2013) -- tool_main.c: remove redundant vms_show storage-class specifier - - vms_show 'extern' storage-class specifier removed from tool_main.c due to... - - - Advice from Tor Arntsen: http://curl.haxx.se/mail/lib-2013-03/0164.html - - - HP OpenVMS docs stating that 'Extern is the default storage class for - variables declared outside a function.' - http://h71000.www7.hp.com/commercial/c/docs/dec_c_help_5.html - (Storage_Classes section) - -- test509: libcurl initialization with memory callbacks and actual usage - -Steve Holme (13 Mar 2013) -- pop3: Removed unnecessary transfer cancellation - - Following commit e450f66a02d8 and the changes in the multi interface - being used internally, from 7.29.0, the transfer cancellation in - pop3_dophase_done() is no longer required. - -Yang Tse (13 Mar 2013) -- Makefile.am: add VMS files not being included in tarball - -- [Tom Grace brought this change] - - build_vms.com: VMS build fixes - - Added missing slash in cc_full_list. - Removed unwanted extra quotes inside symbol tool_main - for non-VAX architectures that triggered link failure. - Replaced curl_sys_inc with sys_inc. - -- [Tom Grace brought this change] - - tool_main.c: fix VMS global variable storage-class specifier - - An extern submits a psect and a global reference to the linker to point - to it. Using "extern int vms_show = 0" also creates a globaldef. - - The use of the extern by itself does declare a psect but does not declare - a globalsymbol. It does declare a globalref. But the linker needs one and - only one globaldef or there is an error. - -Patrick Monnerat (12 Mar 2013) -- OS400: synchronize RPG binding - -Steve Holme (12 Mar 2013) -- pop3: Fixed continuous wait when using --ftp-list - - Don't initiate a transfer when using --ftp-list. - -Kamil Dudka (12 Mar 2013) -- [Zdenek Pavlas brought this change] - - curl_global_init: accept the CURL_GLOBAL_ACK_EINTR flag - - The flag can be used in pycurl-based applications where using the multi - interface would not be acceptable because of the performance lost caused - by implementing the select() loop in python. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1168 - Downstream Bug: https://bugzilla.redhat.com/919127 - -- easy: do not ignore poll() failures other than EINTR - -Yang Tse (12 Mar 2013) -- curl.h: stricter CURL_EXTERN linkage decorations logic - - No API change involved. - - Info: http://curl.haxx.se/mail/lib-2013-02/0234.html - -Daniel Stenberg (11 Mar 2013) -- THANKS: Latin-1'ified Jiri's name - -Steve Holme (11 Mar 2013) -- test806: Added CRLF to reply data to be compliant with RFC-822 - -Daniel Stenberg (11 Mar 2013) -- test805: added crlf newlines to make data size match - - since mails sent are supposed to have CRLF line endings I added them and - now the data size after (\Seen) matches again properly - -- test: fix newline for the data check of 807 - -Yang Tse (11 Mar 2013) -- test801 to test807: fix protocol section line endings - -Steve Holme (10 Mar 2013) -- Makefile.am: Corrected a couple of spurious tab characters - - Corrected a couple of tab characters between test702 and test703, and - between test900 and test901 which should be spaces. - -- [Jiri Hruska brought this change] - - imap: Added test807 for custom request functionality (STORE) - -- [Jiri Hruska brought this change] - - imap: Added test806 for IMAP (folder) LIST command - -- [Jiri Hruska brought this change] - - imap: Added test805 for APPEND functionality - -- [Jiri Hruska brought this change] - - imap: Added test804 for skipping SELECT if in the same mailbox - -- [Jiri Hruska brought this change] - - imap: Added test802 and test803 for UIDVALIDITY verification - - Added one test for a request with matching UIDVALIDITY and one which is - a mismatched request that will fail. - -- [Jiri Hruska brought this change] - - imap: Added test801 for UID and SECTION URL parameters - -- [Jiri Hruska brought this change] - - imap-tests: Accept quoted parameters in ftpserver.pl - - Any IMAP parameter can come in escaped and in double quotes. Added a - simple function to unquote the command parameters and applied it to - the IMAP command handlers. - -- [Jiri Hruska brought this change] - - tests: Fix ftpserver.pl indentation - - The whole of FETCH_imap() had one extra space of indentation, whilst - APPEND_imap() used indentation of 2 instead of 4 in places. - -- Makefile.am: Corrected end of line filler character - - The majority of lines, that specify a test file for inclusion, end with - a tab character before the slash whilst some end with a space. Corrected - those that end with a space to end with a tab character as well. - -- email-tests: Updated the test data that corresponds to the test number - - Finished segregating the email protocol tests, into their own protocol - based ranges, in preparation of adding more e-mail related tests to the - test suite. - -- email-tests: Renamed the IMAP test to be 800 - - Continued segregating the email protocol tests, into their own protocol - based ranges, in preparation of adding more e-mail related tests to the - test suite. - -- email-tests: Renamed the SMTP tests to be in the range 900-906 - - Continued segregating the email protocol tests, into their own protocol - based ranges, in preparation of adding more e-mail related tests to the - test suite. - -- email-tests: Renamed the POP3 tests to be in the range 850-857 - - Started segregating the email protocol tests, into their own protocol - based ranges, in preparation of adding more e-mail related tests to the - test suite. - -Daniel Stenberg (10 Mar 2013) -- hiperfifo: updated to use current libevent API - - Patch by: Myk Taylor - -Steve Holme (10 Mar 2013) -- imap: Reworked some function descriptions - -- imap: Added some missing comments to imap_sendf() - -- email: Removed hard returns from init functions - -Daniel Stenberg (9 Mar 2013) -- curl_multi_wait: avoid second loop if nothing to do - - ... hopefully this will also make clang-analyzer stop warning on - potentional NULL dereferences (which were false positives anyway). - -- multi_runsingle: avoid NULL dereference - - When Curl_do() returns failure, the connection pointer could be NULL so - the code path following needs to that that into account. - - Bug: http://curl.haxx.se/mail/lib-2013-03/0062.html - Reported by: Eric Hu - -Steve Holme (9 Mar 2013) -- imap: Re-factored all perform based functions - - Standardised the naming of all perform based functions to be in the form - imap_perform_something(). - -Daniel Stenberg (9 Mar 2013) -- [Cédric Deltheil brought this change] - - examples/getinmemory.c: abort the transfer if not enough memory - - No more use exit(3) but instead tell libcurl that no byte has been - written to let it return a `CURLE_WRITE_ERROR`. In addition, check - curl easy handle return code. - -- RELEASE-NOTES: synced with ca3c0ed3a9c - - 8 more bugfixes, one change and a bunch of contributors - -Yang Tse (9 Mar 2013) -- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility - -Steve Holme (9 Mar 2013) -- imap: Added description comments to all perform based functions - -- imap: Removed the need for separate custom request functions - - Moved the custom request processing into the LIST command as the logic - is the same. - -- imap: Corrected typo in comment - -Yang Tse (9 Mar 2013) -- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility - -Steve Holme (9 Mar 2013) -- imap: Moved imap_logout() to be grouped with the other perform functions - -- email: Updated the function descriptions for the logout / quit functions - - Updated the function description comments following commit 4838d196fdbf. - -- email: Simplified the logout / quit functions - - Moved the blocking state machine to the disconnect functions so that the - logout / quit functions are only responsible for sending the actual - command needed to logout or quit. - - Additionally removed the hard return on failure. - -- email: Tidied up the *_regular_transfer() functions - - Added comments and simplified convoluted dophase_done comparison. - -- email: Simplified nesting of if statements in *_doing() functions - -Daniel Stenberg (8 Mar 2013) -- RELEASE-NOTES: mention that krb4 is up for consideration - -Steve Holme (8 Mar 2013) -- imap: Fixed handling of untagged responses for the STORE custom command - - Added an exception, for the STORE command, to the untagged response - processor in imap_endofresp() as servers will back respones containing - the FETCH keyword instead. - -Yang Tse (8 Mar 2013) -- curlbuild.h.dist: enhance non-configure GCC ABI detection logic - - GCC specific adjustments: - - - check __ILP32__ before 32 and 64bit processor architectures in - order to detect ILP32 programming model on 64 bit processors - which, of course, also support LP64 programming model, when using - gcc 4.7 or newer. - - - keep 32bit processor architecture checks in order to support gcc - versions older than 4.7 which don't define __ILP32__ - - - check __LP64__ for gcc 3.3 and newer, while keeping 64bit processor - architecture checks for older versions which don't define __LP64__ - -- curlbuild.h.dist: fix GCC build on ARM systems without configure script - - Bug: http://curl.haxx.se/bug/view.cgi?id=1205 - Reported by: technion - -- [Gisle Vanem brought this change] - - polarssl.c: fix header filename typo - -- configure: use XC_LIBTOOL for portability across libtool versions - -- xc-lt-iface.m4: provide XC_LIBTOOL macro - -Steve Holme (7 Mar 2013) -- imap: Fixed SELECT not being performed for custom requests - -- email: Minor code tidy up following recent changes - - Removed unwanted braces and added variable initialisation. - -- DOCS: Corrected the IMAP URL grammar of the UIDVALIDITY parameter - -- FEATURES: Provided a little clarity in some IMAP features - -- email: Optimised block_statemach() functions - - Optimised the result test in each of the block_statemach() functions. - -- DOCS: Added the list command to the IMAP URL section - - Added examples of the list command and clarified existing example URLs - following recent changes. - -- FEATURES: Updated for recent imap additions - - Updated the imap features list, corrected a typo in the smtp features - and clarified a pop3 feature. - -Daniel Stenberg (7 Mar 2013) -- version bump: the next release will be 7.30.0 - -- checksrc: ban unsafe functions - - The list of unsafe functions currently consists of sprintf, vsprintf, - strcat, strncat and gets. - - Subsequently, some existing code needed updating to avoid warnings on - this. - -Steve Holme (7 Mar 2013) -- RELEASE-NOTES: Added missing imap fixes and additions - - With all the recent imap changes it wasn't clear what new features and - fixes should be included in the release notes. - -Nick Zitzmann (6 Mar 2013) -- RELEASE-NOTES: brought this up-to-date with the latest changes - -Steve Holme (6 Mar 2013) -- [Jiri Hruska brought this change] - - imap: Fixed test801 and test1321 to specify a message UID - - Just a folder list would be retrieved if UID was not specified now. - -- [Jiri Hruska brought this change] - - imap: Fixed ftpserver.pl to allow verification even through LIST command - - Commit 198012ee inadvertently broke LIST_imap(). - -- imap: Tidied up the APPEND and final APPEND response functions - - Removed unnecessary state changes on failure and setting of result codes - on success. - -- imap: Tidied up the final FETCH response function - - Removed unnecessary state change on failure and setting of result code on - success. - -- imap: Tidied up the LIST response function - - Reworked comments as they referenced custom commands, removed - unnecessary state change on failure and setting of result code on - success. - -- imap: Removed the custom request response function - - Removed imap_state_custom_resp() as imap_state_list_resp() provides the - same functionality. - -- [Jiri Hruska brought this change] - - imap: Updated ftpserver.pl to be more compliant, added new commands - - Enriched IMAP capabilities of ftpserver.pl in order to be able to - add tests for the new IMAP features. - - * Added support for APPEND - Saves uploaded data to log/upload.$testno - * Added support for LIST - Returns the contents of <reply/> section in - the current test, like e.g FETCH. - * Added support for STORE - Returns hardcoded updated flags - * Changed handling of SELECT - Returns much more information in the - usual set of untagged responses; uses hardcoded data from an example - in the IMAP RFC - * Changed handling of FETCH - Fixed response format - -- imap: Added check for empty UID in FETCH command - - As the UID has to be specified by the user for the FETCH command to work - correctly, added a check to imap_fetch(), although strictly speaking it - is protected by the call from imap_perform(). - -Kamil Dudka (6 Mar 2013) -- nss: fix misplaced code enabling non-blocking socket mode - - The option needs to be set on the SSL socket. Setting it on the model - takes no effect. Note that the non-blocking mode is still not enabled - for the handshake because the code is not yet ready for that. - -Daniel Stenberg (6 Mar 2013) -- imap: fix compiler warning - - imap.c:694:21: error: unused variable 'imapc' [-Werror=unused-variable] - -Steve Holme (5 Mar 2013) -- imap: Added support for list command - -- imap: Added list perform and response handler functions - -- imap: Introduced IMAP_LIST state - -- imap: Small tidy up of imap_select() to match imap_append() - - Updated the style of imap_select() before adding the LIST command. - -- imap: Moved mailbox check from the imap_do() function - - In preparation for the addition of the LIST command, moved the mailbox - check from imap_do() to imap_select() and imap_append(). - -- curl_setup.h: Added S_IRDIR() macro for compilers that don't support it - - Commit 26eaa8383001 introduces the use of S_ISDIR() yet some compilers, - such as MSVC don't support it, so we must define a substitute using - file flags and mask. - -Daniel Stenberg (4 Mar 2013) -- AddFormData: prevent only directories from being posted - - Commit f4cc54cb4746ae5a6d (shipped as part of the 7.29.0 release) was a - bug fix that introduced a regression in that while trying to avoid - allowing directory names, it also forbade "special" files like character - devices and more. like "/dev/null" as was used by Oliver who reported - this regression. - - Reported by: Oliver Gondža - Bug: http://curl.haxx.se/mail/archive-2013-02/0040.html - -Nick Zitzmann (3 Mar 2013) -- darwinssl: fix infinite loop if server disconnected abruptly - - If the server hung up the connection without sending a closure alert, - then we'd keep probing the socket for data even though it's dead. Now - we're ready for this situation. - - Bug: http://curl.haxx.se/mail/lib-2013-03/0014.html - Reported by: Aki Koskinen - -Steve Holme (3 Mar 2013) -- imap: Added comments to imap_append() - -- [Jiri Hruska brought this change] - - imap: Added required mailbox check for FETCH and APPEND commands - -- pingpong.c: Fix enumerated type mixed with another type - -- smtp: Updated the coding style for state changes after a send operation - - Some state changes would be performed after a failure test that - performed a hard return, whilst others would be performed within a test - for success. Updated the code, for consistency, so all instances are - performed within a success test. - -- pop3: Updated the coding style for state changes after a send operation - - Some state changes would be performed after a failure test that - performed a hard return, whilst others would be performed within a test - for success. Updated the code, for consistency, so all instances are - performed within a success test. - -- imap: Fixed typo in variable assignment - -- [Jiri Hruska brought this change] - - imap: Fixed custom request handling in imap_done() - - Fixed imap_done() so that neither the FINAL states are not entered when - a custom command has been performed. - -- [Jiri Hruska brought this change] - - imap: Enabled custom requests in imap_select_resp() - - Changed imap_select_resp() to invoke imap_custom() instead of - imap_fetch() after the mailbox has been selected if a custom - command has been set. - -- [Jiri Hruska brought this change] - - imap: Enabled custom requests in imap_perform() - - Modified imap_perform() to start with the custom command instead of - SELECT when a custom command is to be performed and no mailbox has - been given. - -- [Jiri Hruska brought this change] - - imap: Added custom request perform and response handler functions - - Added imap_custom(), which initiates the custom command processing, - and an associated response handler imap_state_custom_resp(), which - handles any responses by sending them to the client as body data. - - All untagged responses with the same name as the first word of the - custom request string are accepted, with the exception of SELECT and - EXAMINE which have responses that cannot be easily identified. An - extra check has been provided for them so that any untagged responses - are accepted for them. - -- pop3: Fixed unnecessary parent structure reference - - Updated pop3 code following recent imap changes. - -- [Jiri Hruska brought this change] - - imap: Added custom request parsing - - Added imap_parse_custom_request() for parsing the CURLOPT_CUSTOMREQUEST - parameter which URL decodes the value and separates the request from - any parameters - This makes it easier to filter untagged responses - by the request command. - -- [Jiri Hruska brought this change] - - imap: Introduced custom request parameters - - Added custom request parameters to the per-request structure. - -- [Jiri Hruska brought this change] - - imap: Introduced IMAP_CUSTOM state - -- imap: Minor code tidy up - - Minor tidy up of code layout and comments following recent changes. - -- imap: Simplified the imap_state_append_resp() function - - Introduced the result code variable to simplify the state changes and - remove the hard returns. - -- imap: Changed successful response logic in imap_state_append_resp() - - For consistency changed the logic of the imap_state_append_resp() - function to test for an unsucessful continuation response rather than a - succesful one. - -- imap: Standardised imapcode condition tests - - For consistency changed two if(constant != imapcode) tests to be - if(imapcode != constant). - -- imap: Moved imap_append() to be with the other perform functions - -- [Jiri Hruska brought this change] - - imap: Enabled APPEND support in imap_perform() - - Added logic in imap_perform() to perform an APPEND rather than SELECT - and FETCH if an upload has been specified. - -- [Jiri Hruska brought this change] - - imap: Implemented APPEND final processing - - The APPEND operation needs to be performed in several steps: - 1) We send "<tag> APPEND <mailbox> <flags> {<size>}\r\n" - 2) Server responds with continuation respose "+ ...\r\n" - 3) We start the transfer and send <size> bytes of data - 4) Only now we end the request command line by sending "\r\n" - 5) Server responds with "<tag> OK ...\r\n" - - This commit performs steps 4 and 5, in the DONE phase, as more - processing is required after the transfer. - -- [Jiri Hruska brought this change] - - imap: Added APPEND perform and response handler functions - - Added imap_append() function to initiate upload and imap_append_resp() - to handle the continuation response and start the transfer. - -- [Jiri Hruska brought this change] - - imap: Introduced IMAP_APPEND and IMAP_APPEND_FINAL states - -- [Jiri Hruska brought this change] - - imap: Updated setting of transfer variables in imap_state_fetch_resp() - - Add number of bytes retrieved from the PP cache to req.bytecount and set - req.maxdownload only when starting a proper download. - -- [Jiri Hruska brought this change] - - imap: Improved FETCH response parsing - - Added safer parsing of the untagged FETCH response line and the size of - continuation data. - -- imap: Fixed accidentally lossing the result code - - Accidentally lost the result code in imap_state_capability() and - imap_state_login() with commit b06a78622609. - -- imap: Another minor comment addition / tidy up - -- imap: Updated the coding style for state changes after a send operation - - Some state changes would be performed after a failure test that - performed a hard return, whilst others would be performed within a test - for success. Updated the code, for consistency, so all instances are - performed within a success test. - -- pop3 / smtp: Small comment tidy up - - Small tidy up to keep some comments consistant across each of the email - protocols. - -- [Jiri Hruska brought this change] - - imap: FETCH response handler cleanup before further changes - - Removed superfluous NULL assignment after Curl_safefree() and rewrote - some comments and logging messages. - -- pop3: Small tidy up of function arguments - -- imap: Small tidy up of function arguments - -- smtp: Corrected debug message for POP3_AUTH_FINAL constant - - Following commit ad3177da24b8 corrected the debug message in state() - from AUTH to AUTH_FINAL. - -- pop3: Corrected debug message for POP3_AUTH_FINAL constant - - Following commit afad1ce753a1 corrected the debug message in state() - from AUTH to AUTH_FINAL. - -- imap: Corrected debug message for IMAP_AUTHENTICATE_FINAL constant - - Following commit 13006f3de9ec corrected the debug message in state() - from AUTHENTICATE to AUTHENTICATE_FINAL. - -- [Jiri Hruska brought this change] - - imap: Fixed error code returned for invalid FETCH response - - If the FETCH command does not result in an untagged response the the - UID is probably invalid. As such do not return CURLE_OK. - -- [Jiri Hruska brought this change] - - imap: Added processing of the final FETCH responses - - Not processing the final FETCH responses was not optimal, not only - because the response code would be ignored but it would also leave data - unread on the socket which would prohibit connection reuse. - -- [Jiri Hruska brought this change] - - imap: Introduced FETCH_FINAL state for processing final fetch responses - - A typical FETCH response can be broken down into four parts: - - 1) "* <uid> FETCH (<what> {<size>}\r\n", using continuation syntax - 2) <size> bytes of the actual message - 3) ")\r\n", finishing the untagged response - 4) "<tag> OK ...", finishing the command - - Part 1 is read in imap_fetch_resp(), part 2 is consumed in the PERFORM - phase by the transfer subsystem, parts 3 and 4 are currently ignored. - -- imap: fix autobuild warning - - Removed whitespace from imap_perform() - -- imap: fix compiler warning - - error: declaration of 'imap' shadows a previous local - -- smtp: Re-factored the final SMTP_AUTH constant - - Changed the final SMTP_AUTH constant to SMTP_AUTH_FINAL for consistency - with the response function. - -- pop3: Re-factored the final POP3_AUTH constant - - Changed the final POP3_AUTH constant to POP3_AUTH_FINAL for consistency - with the response function. - -- imap: Re-factored final IMAP_AUTHENTICATE constant - - Changed the final IMAP_AUTHENTICATE constant to IMAP_AUTHENTICATE_FINAL - for consistency with the response function. - -- imap: Updated the coding style of imap_state_servergreet_resp() - - Updated the coding style, in this function, to be consistant with other - response functions rather then performing a hard return on failure. - -- imap: Reversed the logic of the (un)successful tagged SELECT response - - Reversed the logic of the unsuccessful vs successful tagged SELECT - response in imap_state_select_resp() to be more logical to read. - -- imap: Reversed the logic of the (un)successful tagged CAPABILITY response - - Reversed the logic of the unsuccessful vs successful tagged CAPABILITY - response in imap_state_capability_resp() to be more logical to read. - -- imap: Corrected char* references with char * - - Corrected char* references made in commit: 709b3506cd9b. - -- [Jiri Hruska brought this change] - - imap: Added processing of more than one response when sent in same packet - - Added a loop to imap_statemach_act() in which Curl_pp_readresp() is - called until the cache is drained. Without this multiple responses - received in a single packet could result in a hang or delay. - -- [Jiri Hruska brought this change] - - imap: Added skipping of SELECT command if already in the same mailbox - - Added storage and checking of the last mailbox userd to prevent - unnecessary switching. - -- [Jiri Hruska brought this change] - - imap: Introduced the mailbox variable - - Added the mailbox variable to the per-connection structure in - preparation for checking for an already selected mailbox. - -- email: Slight reordering of connection based variables - - Reordered the state and ssl_done variables in order to provide more - consistency between the email protocols as well as for for an upcoming - change. - -- imap: Tidied up comments for connection based variables - -- DOCS: Added the IMAP UIDVALIDITY property to the CURLOPT_URL section - -- [Jiri Hruska brought this change] - - imap: Added verification of UIDVALIDITY mailbox attribute - - Added support for checking the UIDVALIDITY, and aborting the request, if - it has been specified in the URL and the server response is different. - -- [Jiri Hruska brought this change] - - imap: Added support for parsing the UIDVALIDITY property - - Added support for parsing the UIDVALIDITY property from the SELECT - response and storing it in the per-connection structure. - -- [Jiri Hruska brought this change] - - imap: Introduced the mailbox_uidvalidity variable - - Added the mailbox_uidvalidity variable to the per-connection structure - in preparation for checking the UIDVALIDITY mailbox attribute. - -- imap: Corrected comment in imap_endofresp() - -- imap: Corrected whitespace - -- [Jiri Hruska brought this change] - - imap: Added filtering of CAPABILITY and FETCH untagged responses - - Only responses that contain "CAPABILITY" and "FETCH", respectively, - will be sent to their response handler. - -- [Jiri Hruska brought this change] - - imap: Added a helper function for upcoming untagged response filtering - - RFC 3501 states that "the client MUST be prepared to accept any response - at all times" yet we assume anything received with "* " at the beginning - is the untagged response we want. - - Introduced a helper function that checks whether the input looks like a - response to specified command, so that we may filter the ones we are - interested in according to the current state. - -- [Jiri Hruska brought this change] - - imap: Moved CAPABILITY response handling to imap_state_capability_resp() - - Introduced similar handling to the FETCH responses, where even the - untagged data responses are handled by the response handler of the - individual state. - -Linus Nielsen Feltzing (26 Feb 2013) -- Remove unused variable in smtp_state_data_resp() - -Steve Holme (25 Feb 2013) -- email: Small tidy up following recent changes - -- smtp: Removed bytecountp from the per-request structure - - Removed this pointer to a downloaded bytes counter because it was set in - smtp_init() to point to the same variable the transfer functions keep - the count in (k->bytecount), effectively making the code in transfer.c - "*k->bytecountp = k->bytecount" a no-op. - -- pop3: Removed bytecountp from the per-request structure - - Removed this pointer to a downloaded bytes counter because it was set in - pop3_init() to point to the same variable the transfer functions keep - the count in (k->bytecount), effectively making the code in transfer.c - "*k->bytecountp = k->bytecount" a no-op. - -- [Jiri Hruska brought this change] - - imap: Removed bytecountp from the per-request structure - - Removed this pointer to a downloaded bytes counter because it was set in - imap_init() to point to the same variable the transfer functions keep - the count in (k->bytecount), effectively making the code in transfer.c - "*k->bytecountp = k->bytecount" a no-op. - -- [Jiri Hruska brought this change] - - imap: Adjusted SELECT and FETCH function order - - Moved imap_select() and imap_fetch() to be grouped with the other - perform functions. - -- [Jiri Hruska brought this change] - - imap: Adjusted SELECT and FETCH state order in imap_statemach_act() - - Exchanged the position of these states in the switch statements to - match the state enum, execution and function order. - -- imap: Minor tidy up of comments in imap_parse_url_path() - - Tidy up of comments before next round of imap changes. - -- imap: Fixed incorrect comparison for STARTTLS in imap_endofresp() - - Corrected the comparison type in addition to commit 1dac29fa83a9. - -- DOCS: Corrected IMAP URL examples according to RFC5092 - - URL examples that included the UID weren't technically correct although - would pass the curl parser. - -Nick Zitzmann (24 Feb 2013) -- darwinssl: fix undefined $ssllib warning in runtests.pl - - I also added --with-darwinssl to the list of SSL options in configure. - -Steve Holme (24 Feb 2013) -- imap: Added check for new internal imap response code - -- imap: Changed the order of the response types in imap_endofresp() - - From a maintenance point of view the code reads better to view tagged - responses, then untagged followed by continuation responses. - - Additionally, this matches the order of responses in POP3. - -- [Jiri Hruska brought this change] - - imap: Added stricter parsing of continuation responses - - Enhanced the parsing to only allow continuation responses in some - states. - -- imap: Simplified memcmp() in tagged response parsing - -- [Jiri Hruska brought this change] - - imap: Reworked the logic of untagged command responses - -- imap: Corrected spacing of trailing brace - -- [Jiri Hruska brought this change] - - imap: Added stricter parsing of tagged command responses - - Enhanced the parsing of tagged responses which must start with "OK", - "NO" or "BAD" - -- [Jiri Hruska brought this change] - - imap: Simplified command response test in imap_endofresp() - -- [Jiri Hruska brought this change] - - imap: Corrected comment in imap_endofresp() - -- DOCS: Corrected layout of POP3 and IMAP URL examples - - Corrected layout issues with the POP3 and IMAP URL examples introduced - in commit cb3ae6894fb2. - -- DOCS: Updated CURLOPT_URL section following recent POP3 and IMAP changes - - Updated the POP3 sub-section to refer to message ID rather than mailbox. - - Added an IMAP sub-section with example URLs depicting the specification - of mailbox, uid and section. - -- pop3: Refactored the mailbox variable as it didn't reflect it's purpose - - Updated the mailbox variable to correctly reflect it's purpose. The - name mailbox was a leftover from when IMAP and POP3 support was - initially added to curl. - -- FEATURES: Updated following recent IMAP changes - -- [Jiri Hruska brought this change] - - imap: Added the ability to FETCH a specific UID and SECTION - - Updated the FETCH command to send the UID and SECTION parsed from the - URL. By default the BODY specifier doesn't include a section, BODY[] is - now sent whereas BODY[TEXT] was previously sent. In my opinion - retrieving just the message text is rarely useful when dealing with - emails, as the headers are required for example, so that functionality - is not retained. In can however be simulated by adding SECTION=TEXT to - the URL. - - Also updated test801 and test1321 due to the BODY change. - -- email: Additional tidy up of comments following recent changes - -- smtp: Removed some FTP heritage leftovers - - Removed user and passwd from the SMTP struct as these cannot be set on - a per-request basis and are leftover from legacy FTP code. - - Changed some comments still using FTP terminology. - -- smtp: Moved the per-request variables to the per-request data structure - - Moved the rcpt variable from the per-connection struct smtp_conn to the - new per-request struct and fixed references accordingly. - -- pop3: Introduced a custom SMTP structure for per-request data - - Created a new SMTP structure and changed the type of the smtp proto - variable in connectdata from FTP* to SMTP*. - -unknown (23 Feb 2013) -- [Steve Holme brought this change] - - imap: Minor correction of comments for max line length - -Daniel Stenberg (23 Feb 2013) -- strcasestr: remove check for this unused function - -- pop3: fix compiler warning - - error: declaration of 'pop3' shadows a previous local - -Steve Holme (23 Feb 2013) -- [Jiri Hruska brought this change] - - imap: Added URL parsing of new variables - - Updated the imap_parse_url_path() function to parse uidvalidity, uid and - section parameters based on RFC-5092. - -- [Jiri Hruska brought this change] - - imap: Introduced imap_is_bchar() function - - Added imap_is_bchar() for testing if a given character is a valid bchar - or not. - -- [Jiri Hruska brought this change] - - imap: Introduced new per-request veriables - - Added uidvalidity, uid and section variables to the per-request IMAP - structure in preparation for upcoming URL parsing. - -- pingpong: Renamed curl_ftptransfer to curl_pp_transfer - -- pop3: Removed some FTP heritage leftovers - - Removed user and passwd from the POP3 struct as these cannot be set on - a per-request basis and are leftover from legacy FTP code. - - Changed some comments still using FTP terminology. - -- pop3: Moved the per-request variables to the per-request data structure - - Moved the mailbox and custom request variables from the per-connection - struct pop3_conn to the new per-request struct and fixed references - accordingly. - -- pop3: Introduced a custom POP3 structure for per-request data - - Created a new POP3 structure and changed the type of the pop3 proto - variable in connectdata from FTP* to POP*. - -- [Jiri Hruska brought this change] - - imap: Fixed escaping of mailbox names - - Used imap_atom() to escape mailbox names in imap_select(). - -- pingpong: Moved curl_ftptransfer definition to pingpong.h - - Moved the ftp transfer structure into pingpong.h so other protocols that - require it don't have to include ftp.h. - -- urldata.h: Fixed comment for opt_no_body variable - - Corrected comment for opt_no_body variable to CURLOPT_NOBODY. - -- email: Minor tidy up following IMAP changes - -- [Jiri Hruska brought this change] - - imap: Removed more FTP leftovers - - Changed some variables and comments still using FTP terminology. - -- [Jiri Hruska brought this change] - - imap: Removed some FTP heritage leftovers - - Removed user and passwd from the IMAP struct as these cannot be set on - a per-request basis and are leftover from legacy FTP code. - -- [Jiri Hruska brought this change] - - imap: Introduced a custom IMAP structure for per-request data - - Created a new IMAP structure and changed the type of the imap proto - variable in connectdata from FTP* to the new IMAP*. - - Moved the mailbox variable from the per-connection struct imap_conn to - the new per-request struct and fixed references accordingly. - -- pop3: Updated do phrase clean-up comment - - Following commit 65644b833532 for the IMAP module updated the clean-up - comment in POP3. - -- imap: Fixed memory leak when performing multiple selects - - Moved the clean-up of the mailbox variable from imap_disconnect() to - imap_done() as this variable is allocated in the do phase, yet would - have only been freed only once if multiple selects where preformed - on a single connection. - -Daniel Stenberg (22 Feb 2013) -- [Alexander Klauer brought this change] - - Documentation: Typo in docs/CONTRIBUTE - - Fixes a typo get → git in docs/CONTRIBUTE. - -- [Alexander Klauer brought this change] - - repository: ignore patch files generated by git - - Ignores the patch files generated by the 'git format-patch' command. - -- [Alexander Klauer brought this change] - - libcurl documentation: clarifications and typos - - * Elaborates on default values of some curl_easy_setopt() options. - * Reminds the user to cast variadic arguments to curl_easy_setopt() to - 'void *' where curl internally interprets them as such. - * Clarifies the working of the CURLOPT_SEEKFUNCTION option for - curl_easy_setopt(). - * Fixes typo 'forth' → 'fourth'. - * Elaborates on CURL_SOCKET_TIMEOUT. - * Adds some missing periods. - * Notes that the return value of curl_version() must not be passed to - free(). - -- [Alexander Klauer brought this change] - - lib/url.c: Generic read/write data pointers - - Always interprets the pointer passed with the CURLOPT_WRITEDATA or - CURLOPT_READDATA options of curl_easy_setopt() as a void pointer in - order to avoid problems in environments where FILE and void pointers - have non-trivial conversion. - -- [Alexander Klauer brought this change] - - libcurl documentation: updates HTML index - - * Adds several links to documentation of library functions which were - missing. - * Marks documentation of deprecated library functions "(deprecated)". - * Removes spurious .html suffixes. - -- ossl_seed: avoid recursive seeding! - -Steve Holme (22 Feb 2013) -- [Jiri Hruska brought this change] - - Fixed checking the socket if there is data waiting in the cache - - Use Curl_pp_moredata() in Curl_pp_multi_statemach() to check if there is - more data to be received, rather than the socket state, as a task could - hang waiting for more data from the socket itself. - -- imap.c: Fixed an incorrect variable reference - - Fixed an incorrect variable reference which was introduced in commit - a1701eea289f as a result of a copy and paste from SMTP/POP3. - -- [Jiri Hruska brought this change] - - pingpong: Introduce Curl_pp_moredata() - - A simple function to test whether the PP is not sending and there are - still more data in its receiver cache. This will be later utilized to: - - 1) Change Curl_pp_multi_statemach() and Curl_pp_easy_statemach() to - not test socket state and just call user's statemach_act() function - when there are more data to process, because otherwise the task would - just hang, waiting for more data from the socket. - - 2) Allow PP users to read multiple responses by looping as long as there - are more data available and current phase is not finished. - (Currently needed for correct processing of IMAP SELECT responses.) - -Nick Zitzmann (19 Feb 2013) -- FEATURES: why yes, we do support metalink - - I just noticed Metalink support wasn't listed as a feature of the tool. - -- metalink: fix improbable crash parsing metalink filename - - The this_url pointer wasn't being initialized, so if strdup() would return - null when copying the filename in a metalink file, then hilarity would - ensue during the cleanup phase. This change was brought to you by clang, - which noticed this and raised a warning. - -Yang Tse (19 Feb 2013) -- smtp.c: fix enumerated type mixed with another type - -- polarssl threadlock cleanup - -Nick Zitzmann (18 Feb 2013) -- docs: schannel and darwinssl documentation improvements - - Schannel and darwinssl use the certificates built into the - OS to do vert verification instead of bundles. darwinssl - is thread-safe. Corrected typos in the NSS docs. - -Daniel Stenberg (18 Feb 2013) -- resolver_error: remove wrong error message output - - The attempt to use gai_strerror() or alternative function didn't work as - the 'sock_error' field didn't contain the proper error code. But since - this hasn't been reported and thus isn't really a big deal I decided to - just scrap the whole attempt to output the detailed resolver error and - instead remain with just stating that the resolving of the name failed. - -- [Kim Vandry brought this change] - - Curl_resolver_is_resolved: show proper host name on failed resolve - -- Curl_resolver_is_resolved: fix compiler warning - - conversion to 'int' from 'long int' may alter its value - -- compiler warning fix - - follow-up to commit ed7174c6f66, rename 'wait' to 'block' - -- compiler warning fix: declaration of 'wait' shadows a global declaration - - It seems older gcc installations (at least) will cause warnings if we - name a variable 'wait'. Now changed to 'block' instead. - - Reported by: Jiří Hruška - Bug: http://curl.haxx.se/mail/lib-2013-02/0247.html - -Nick Zitzmann (17 Feb 2013) -- MacOSX-Framework: Make script work in Xcode 4.0 and later - - Apple made a number of changes to Xcode 4. The SDKs were moved, the entire - Developer folder was moved, and PowerPC support was removed. The script - will now adapt to those changes and should be future-proofed against - additional changes in case Apple moves the Developer folder ever again. - Also, the minimum OS X version compiler option was removed, so that the - framework can be built against the latest SDK but still run in older cats. - -Daniel Stenberg (17 Feb 2013) -- docs: refer to CURLOPT_ACCEPT_ENCODING instead of the old name - -Steve Holme (16 Feb 2013) -- email: Tidied up result code variables - - Tidied up result variables to be consistent in name, declaration order - and default values. - -Nick Zitzmann (16 Feb 2013) -- ntlm_core: fix compiler warning when building with clang - - Fixed a 64-to-32 compiler warning raised when building with - clang and the --with-darwinssl option. - -Daniel Stenberg (16 Feb 2013) -- Guile-curl: a new libcurl binding - -- polarsslthreadlock: #include the proper memory and debug includes - - Pointed out by Steve Holme - -Steve Holme (16 Feb 2013) -- email: Removed unnecessary forward declaration - - Due to the reordering of functions in commit 586f5d361474 the forward - declaration to state_upgrade_tls() are no longer required. - -- pop3.c: Added reference to RFC-5034 - -Daniel Stenberg (15 Feb 2013) -- [Willem Sparreboom brought this change] - - PolarSSL: Change to cURL coding style - - Repaired all curl/lib/checksrc.pl warnings in the previous four patches - -- [Willem Sparreboom brought this change] - - PolarSSL: WIN32 threading support for entropy - - Added WIN32 threading support for PolarSSL entropy if - --enable-threaded-resolver config flag is set and process.h can be found. - -- [Willem Sparreboom brought this change] - - PolarSSL: pthread support for entropy - - Added pthread support for polarssl entropy if --enable-threaded-resolver - config flag is set and pthread.h can be found. - -- [Willem Sparreboom brought this change] - - PolarSSL: changes to entropy/ctr_drbg/HAVEGE_RANDOM - - Add non-threaded entropy and ctr_drbg and removed HAVEGE_RANDOM define - -- [Willem Sparreboom brought this change] - - PolarSSL: added human readable error strings - - Print out human readable error strings for PolarSSL related errors - -Steve Holme (15 Feb 2013) -- pop3: Removed unnecessary state changes on failure - -- imap: Removed unnecessary state change on failure - -Daniel Stenberg (15 Feb 2013) -- metalink_cleanup: yet another follow-up fix - -- metalink_cleanup: define it without argument - - Since the function takes no argument, the macro shouldn't take one as - some compilers will error out on that. - -- rename "easy" statemachines: call them block instead - - ... since they're not used by the easy interface really, I wanted to - remove the association. Also, I unified the pingpong statemachine driver - into a single function with a 'wait' argument: Curl_pp_statemach. - -Yang Tse (15 Feb 2013) -- [Gisle Vanem brought this change] - - curl_setup_once.h: definition of HAVE_CLOSE_S defines sclose() to close_s() - -- [Gisle Vanem brought this change] - - config-dos.h: define HAVE_CLOSE_S for MSDOS/Watt-32 - -- [Gisle Vanem brought this change] - - config-dos.h: define strerror() to strerror_s_() for High-C - -- [Gisle Vanem brought this change] - - config-dos.h: define HAVE_TERMIOS_H only for djgpp - -Steve Holme (14 Feb 2013) -- smtp.c: Fixed a trailing whitespace - - Remove tailing whitespace introduced in commit 7ed689d24a4e. - -- pop3: Fixed blocking SSL connect when connecting via POP3S - - A call to Curl_ssl_connect() was accidentally left in when the SSL/TLS - connection layer was reworked in 7.29. Not only would this cause the - connection to block but had the additional overhead of calling the - non-blocking connect a little bit later. - -- smtp: Refactored the smtp_state_auth_resp() function - - Renamed smtp_state_auth_resp() function to match the implementations in - IMAP and POP3. - -Daniel Stenberg (14 Feb 2013) -- remove ifdefs - - Clarify the code by reducing ifdefs - -- strlcat: remove function - - This function was only used twice, both in places where performance - isn't crucial (socks + if2ip). Removing the use of this function removes - the need to have our private version for systems without it == reduced - amount of code. - - Also, in the SOCKS case it is clearly better to fail gracefully rather - than to truncate the results. - - This work was triggered by a bug report on the strcal prototype in - strequal.h. - - strlcat was added in commit db70cd28 in February 2001! - - Bug: http://curl.haxx.se/bug/view.cgi?id=1192 - Reported by: Jeremy Huddleston - -- Curl_FormBoundary: made static - - As Curl_FormBoundary() is no longer used outside of this file (since - commit ad7291c1a9d), it is now renamed to formboundary() and is made - static. - -- ossl_seed: fix the last resort PRNG seeding - - Instead of just abusing the pseudo-randomizer from Curl_FormBoundary(), - this now uses Curl_ossl_random() to get entropy. - -Steve Holme (13 Feb 2013) -- email: Tidy up before additional IMAP work - - Replaced two explicit comparisons of CURLE_OK with boolean alternatives. - - General tidy up of comments. - -- smtp: Removed duplicate pingpong structure initialisation - - The smtp_connect() function was setting the member variables of the - pingpong structure twice, once before calling Curl_pp_init() and once - after! - -Yang Tse (13 Feb 2013) -- move msvc IDE related files to 'vs' directory tree - - Use 'vs' directory tree given that 'vc' intended one clashes - with an already existing build target in file Makefile.dist. - -Daniel Stenberg (13 Feb 2013) -- install-sh: updated to support multiple source files as arguments - - Version 7.29.0 uses Makefiles generated with a newer version of the - autotools than the previous 7.28.1. These Makefiles try to install - e.g. header files by calling install-sh with multiple source files as - arguments. The bundled install-sh is to old and does not support this. - - The problem only occurs, if install-sh is actually being used, ie. the - platform install executable is to old or not usable. Example: Solaris - 10. - - The files install-sh and mkinstalldirs are now updated with the automake - 1.11.3 versions. A better fix might be to completely remove them from - git and force the files to be added/created during buildconf. - - Bug: http://curl.haxx.se/bug/view.cgi?id=1195 - Reported by: Rainer Jung - -Yang Tse (13 Feb 2013) -- move msvc IDE related files to 'vc' directory tree - -- msvc IDE 'vc' directory tree preparation - -Steve Holme (12 Feb 2013) -- imap: Corrected a whitespace issue from previous commit - - Fixed a small whitespace issue that crept in there in commit - 508cdf4da4d7. - -- email: Another post optimisation of endofresp() tidy up - -- sasl: Fixed null pointer reference when decoding empty digest challenge - - Fixed a null pointer reference when an empty challenge is passed to the - Curl_sasl_create_digest_md5_message() function. - - Bug: http://sourceforge.net/p/curl/bugs/1193/ - Reported by: Saran Neti - -- email: Post optimisation of endofresp() tidy up - - Removed unnecessary end of line check and return. - -Nick Zitzmann (12 Feb 2013) -- darwinssl: Fix send glitchiness with data > 32 or so KB - - An ambiguity in the SSLWrite() documentation lead to a bad inference in the - code where we assumed SSLWrite() returned the amount of bytes written to - the socket, when that is not actually true; it returns the amount of data - that is buffered for writing to the socket if it returns errSSLWouldBlock. - Now darwinssl_send() returns CURLE_AGAIN if data is buffered but not written. - - Reference URL: http://curl.haxx.se/mail/lib-2013-02/0145.html - -Steve Holme (12 Feb 2013) -- pingpong.h: Fixed line length over 78 characters from b56c9eb48e3c - -- pingpong: Optimised the endofresp() function - - Reworked the pp->endofresp() function so that the conndata, line and - line length are passed down to it just as with Curl_client_write() - rather than each implementation of the function having to query - these values. - - Additionally changed the int return type to bool as this is more - representative of the function's usage. - -- email: Post STARTLS capability code tidy up (Part Three) - - Corrected the order of the upgrade_tls() functions and moved the handler - upgrade and getsock() functions out from the middle of the state related - functions. - -- email: Post STARTLS capability code tidy up (Part Two) - - Corrected the order of the pop3_state_capa() / imap_state_capability() - and the pop3_state_capa_resp() / imap_state_capability_resp() functions - to match the execution order. - -Daniel Stenberg (11 Feb 2013) -- [ulion brought this change] - - SOCKS: fix socks proxy when noproxy matched - - Test 1212 added to verify - - Bug: http://curl.haxx.se/bug/view.cgi?id=1190 - -Steve Holme (11 Feb 2013) -- ntlm: Updated comments for the addition of SASL support to IMAP in v7.29 - -- RELEASE-NOTES: Updated following the recent imap/pop3/smtp changes - -Linus Nielsen Feltzing (10 Feb 2013) -- Fix NULL pointer reference when closing an unused multi handle. - -Steve Holme (10 Feb 2013) -- email: Post STARTLS capability code tidy up (Part One) - - Corrected the order of the CAPA / CAPABILITY state machine constants to - match the execution order. - -- imap: Fixed memory leak following commit f6010d9a0359 - -- smtp: Added support for the STARTTLS capability (Part Two) - - Added honoring of the tls_supported flag when starting a TLS upgrade - rather than unconditionally attempting it. If the use_ssl flag is set - to CURLUSESSL_TRY and the server doesn't support TLS upgrades then the - connection will continue to authenticate. If this flag is set to - CURLUSESSL_ALL then the connection will complete with a failure as it - did previously. - -- pop3: Added support for the STLS capability (Part Three) - - Added honoring of the tls_supported flag when starting a TLS upgrade - rather than unconditionally attempting it. If the use_ssl flag is set - to CURLUSESSL_TRY and the server doesn't support TLS upgrades then the - connection will continue to authenticate. If this flag is set to - CURLUSESSL_ALL then the connection will complete with a failure as it - did previously. - -- imap: Added support for the STARTTLS capability (Part Three) - - Added honoring of the tls_supported flag when starting a TLS upgrade - rather than unconditionally attempting it. If the use_ssl flag is set - to CURLUSESSL_TRY and the server doesn't support TLS upgrades then the - connection will continue to authenticate. If this flag is set to - CURLUSESSL_ALL then the connection will complete with a failure as it - did previously. - -Daniel Stenberg (10 Feb 2013) -- [Alessandro Ghedini brought this change] - - htmltitle: fix suggested build command - -Steve Holme (10 Feb 2013) -- pop3: Added support for the STLS capability (Part Two) - - Added sending of initial CAPA command before STLS is sent. This allows - for the detection of the capability before trying to upgrade the - connection. - -- imap: Added support for the STARTTLS capability (Part Two) - - Added sending of initial CAPABILITY command before STARTTLS is sent. - This allows for the detection of the capability before trying to - upgrade the connection. - -- smtp: Added support for the STLS capability (Part One) - - Introduced detection of the STARTTLS capability, in order to add support - for TLS upgrades without unconditionally sending the STARTTLS command. - -- pop3: Added support for the STLS capability (Part One) - - Introduced detection of the STLS capability, in order to add support - for TLS upgrades without unconditionally sending the STLS command. - -- imap: Added support for the STARTTLS capability (Part One) - - Introduced detection of the STARTTLS capability, in order to add support - for TLS upgrades without unconditionally sending the STARTTLS command. |