aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2013-04-06FTP: wait on both connections during active STOR stateDaniel Stenberg
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
2013-04-06connect: treat an interface bindlocal() problem as a non-fatal errorKim Vandry
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
2013-04-05Curl_open: restore default MAXCONNECTS to 5Daniel Stenberg
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.
2013-04-04easy.c: fix compiler warningYang Tse
2013-04-04http_negotiate.c: follow-up for commit 3dcc1a9cYang Tse
2013-04-04easy: Fix the broken CURLOPT_MAXCONNECTS optionLinus Nielsen Feltzing
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
2013-04-04Updated copyright date.Guenter Knauf
2013-04-04Another small output fix for --help and --version.Guenter Knauf
2013-04-04http_negotiate.c: fix several SPNEGO memory handling issuesYang Tse
2013-04-04Added a cont to specify base64 line wrap.Guenter Knauf
2013-04-04Fixed version output.Guenter Knauf
2013-04-04Added support for --help and --version options.Guenter Knauf
2013-04-04Added option to specify length of base64 output.Guenter Knauf
Based on a patch posted to the list by Richard Michael.
2013-04-02Curl_cookie_add: only increase numcookies for new cookiesYasuharu Yamada
Count up numcookies in Curl_cookie_add() only when cookie is new one
2013-04-02SO_SNDBUF: don't set SNDBUF for win32 versions vista or laterDaniel Stenberg
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
2013-04-01darwinssl: additional descriptive messages of SSL handshake errorsNick Zitzmann
(This doesn't need to appear in the release notes.)
2013-04-01code-policedDaniel Stenberg
2013-03-31tcpkeepalive: support TCP_KEEPIDLE/TCP_KEEPINTVL on win32Daniel Stenberg
Patch by: Robert Wruck Bug: http://curl.haxx.se/bug/view.cgi?id=1209
2013-03-29ftp_sendquote: use PPSENDF, not FTPSENDFDaniel Stenberg
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
2013-03-25NTLM: fix several NTLM code paths memory leaksYang Tse
2013-03-25WIN32 MemoryTracking: track wcsdup() _wcsdup() and _tcsdup() usageYang Tse
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.
2013-03-25curl_ntlm_msgs.c: revert commit 463082bea4Yang Tse
reverts unreleased invalid memory leak fix
2013-03-23Curl_proxyCONNECT: count received headersMartin Jansen
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
2013-03-21sasl: Corrected a few violations of the curl coding standardsSteve Holme
Corrected some incorrectly positioned pointer variable declarations to be "char *" rather than "char* ".
2013-03-21multi.c: Corrected a couple of violations of the curl coding standardsSteve Holme
Corrected some incorrectly positioned pointer variable declarations to be "type *" rather than "type* ".
2013-03-21multi.c: Fix compilation warningSteve Holme
warning: an enumerated type is mixed with another type
2013-03-20multi.c: fix compilation errorSteve Holme
warning: conversion from enumeration type to different enumeration type
2013-03-19darwinssl: disable ECC ciphers under Mountain Lion by defaultNick Zitzmann
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.
2013-03-18Curl_proxyCONNECT: clear 'rewindaftersend' on successOliver Schindler
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
2013-03-17imap: Fixed incorrect initial response generation for SASL AUTHENTICATESteve Holme
Fixed incorrect initial response generation for the NTLM and LOGIN SASL authentication mechanisms when the SASL-IR was detected. Introduced in commit: 6da7dc026c14.
2013-03-15HTTP proxy: insert slash in URL if missingDaniel Stenberg
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
2013-03-14curl_memory.h: introduce CURLX_NO_MEMORY_CALLBACKS usage possibilityYang Tse
This commit alone does not fix anything nor modifies existing interfaces or behaviors, although it is a prerequisite for other fixes.
2013-03-14Makefile.vc6: add missing filesYang Tse
2013-03-14pipelining: Remove dead code.Linus Nielsen Feltzing
2013-03-13Multiple pipelines and limiting the number of connections.Linus Nielsen Feltzing
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.
2013-03-13pop3: Removed unnecessary transfer cancellationSteve Holme
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.
2013-03-12pop3: Fixed continuous wait when using --ftp-listSteve Holme
Don't initiate a transfer when using --ftp-list.
2013-03-12curl_global_init: accept the CURL_GLOBAL_ACK_EINTR flagZdenek Pavlas
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
2013-03-12easy: do not ignore poll() failures other than EINTRKamil Dudka
2013-03-12curl.h: stricter CURL_EXTERN linkage decorations logicYang Tse
No API change involved. Info: http://curl.haxx.se/mail/lib-2013-02/0234.html
2013-03-10imap: Reworked some function descriptionsSteve Holme
2013-03-10imap: Added some missing comments to imap_sendf()Steve Holme
2013-03-09email: Removed hard returns from init functionsSteve Holme
2013-03-09curl_multi_wait: avoid second loop if nothing to doDaniel Stenberg
... hopefully this will also make clang-analyzer stop warning on potentional NULL dereferences (which were false positives anyway).
2013-03-09multi_runsingle: avoid NULL dereferenceDaniel Stenberg
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
2013-03-09imap: Re-factored all perform based functionsSteve Holme
Standardised the naming of all perform based functions to be in the form imap_perform_something().
2013-03-09imap: Added description comments to all perform based functionsSteve Holme
2013-03-09imap: Removed the need for separate custom request functionsSteve Holme
Moved the custom request processing into the LIST command as the logic is the same.
2013-03-09imap: Corrected typo in commentSteve Holme
2013-03-09Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibilityYang Tse