Revision tags: curl-7_39_0, curl-7_38_0 |
|
#
cacdc27f |
| 25-Aug-2014 |
Daniel Stenberg |
low-speed-limit: avoid timeout flood Introducing Curl_expire_latest(). To be used when we the code flow only wants to get called at a later time that is "no later than X" so that som
low-speed-limit: avoid timeout flood Introducing Curl_expire_latest(). To be used when we the code flow only wants to get called at a later time that is "no later than X" so that something can be checked (and another timeout be added). The low-speed logic for example could easily be made to set very many expire timeouts if it would be called faster or sooner than what it had set its own timer and this goes for a few other timers too that aren't explictiy checked for timer expiration in the code. If there's no condition the code that says if(time-passed >= TIME), then Curl_expire_latest() is preferred to Curl_expire(). If there exists such a condition, it is on the other hand important that Curl_expire() is used and not the other. Bug: http://curl.haxx.se/mail/lib-2014-06/0235.html Reported-by: Florian Weimer
show more ...
|
Revision tags: curl-7_37_1, curl-7_37_0, curl-7_36_0, curl-7_35_0 |
|
#
3b183df9 |
| 05-Jan-2014 |
Daniel Stenberg |
multi: remove MULTI_TIMEOUT_INACCURACY With the recently added timeout "reminder" functionality, there's no reason left for us to execute timeout code before the time is ripe. Simpli
multi: remove MULTI_TIMEOUT_INACCURACY With the recently added timeout "reminder" functionality, there's no reason left for us to execute timeout code before the time is ripe. Simplifies the handling too. This will make the *TIMEOUT and *CONNECTTIMEOUT options more accurate again, which probably is most important when the *_MS versions are used. In multi_socket, make sure to update 'now' after having handled activity on a socket.
show more ...
|
Revision tags: curl-7_34_0 |
|
#
be28223f |
| 02-Dec-2013 |
Daniel Stenberg |
multi: add timer inaccuracy margin to timeout/connecttimeout Since all systems have inaccuracy in the timeout handling it is imperative that we add an inaccuracy margin to the general ti
multi: add timer inaccuracy margin to timeout/connecttimeout Since all systems have inaccuracy in the timeout handling it is imperative that we add an inaccuracy margin to the general timeout and connecttimeout handling with the multi interface. This way, when the timeout fires we should be fairly sure that it has passed the timeout value and will be suitably detected. For cases where the timeout fire before the actual timeout, we would otherwise consume the timeout action and still not run the timeout code since the condition wasn't met. Reported-by: He Qin Bug: http://curl.haxx.se/bug/view.cgi?id=1298
show more ...
|
Revision tags: curl-7_33_0 |
|
#
a691e044 |
| 27-Aug-2013 |
Daniel Stenberg |
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 bee
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.
show more ...
|
Revision tags: curl-7_32_0, curl-7_31_0 |
|
#
88c5c63f |
| 19-Jun-2013 |
Daniel Stenberg |
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 mult
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
show more ...
|
#
64206728 |
| 26-Apr-2013 |
Daniel Stenberg |
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
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.
show more ...
|
Revision tags: curl-7_30_0 |
|
#
0f147887 |
| 15-Feb-2013 |
Linus Nielsen Feltzing |
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 opt
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.
show more ...
|
Revision tags: curl-7_29_0 |
|
#
4a5aa668 |
| 04-Jan-2013 |
Yang Tse |
Revert changes relative to lib/*.[ch] recent renaming This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use
Revert changes relative to lib/*.[ch] recent renaming This reverts renaming and usage of lib/*.h header files done 28-12-2012, reverting 2 commits: f871de0... build: make use of 76 lib/*.h renamed files ffd8e12... build: rename 76 lib/*.h files This also reverts removal of redundant include guard (redundant thanks to changes in above commits) done 2-12-2013, reverting 1 commit: c087374... curl_setup.h: remove redundant include guard This also reverts renaming and usage of lib/*.c source files done 3-12-2013, reverting 3 commits: 13606bb... build: make use of 93 lib/*.c renamed files 5b6e792... build: rename 93 lib/*.c files 7d83dff... build: commit 13606bbfde follow-up 1 Start of related discussion thread: http://curl.haxx.se/mail/lib-2013-01/0012.html Asking for confirmation on pushing this revertion commit: http://curl.haxx.se/mail/lib-2013-01/0048.html Confirmation summary: http://curl.haxx.se/mail/lib-2013-01/0079.html NOTICE: The list of 2 files that have been modified by other intermixed commits, while renamed, and also by at least one of the 6 commits this one reverts follows below. These 2 files will exhibit a hole in history unless git's '--follow' option is used when viewing logs. lib/curl_imap.h lib/curl_smtp.h
show more ...
|
#
ec691ca3 |
| 28-Dec-2012 |
Yang Tse |
lib/*.h: use our standard naming scheme for header inclusion guards
|
Revision tags: curl-7_28_1, curl-7_28_0, curl-7_27_0, curl-7_26_0, curl-7_25_0, curl-7_24_0, curl-7_23_1, curl-7_23_0, curl-7_22_0, curl-7_21_7, curl-7_21_6, curl-7_21_5, curl-7_21_4, curl-7_21_3, curl-7_21_2, curl-7_21_1 |
|
#
232ad654 |
| 10-Aug-2010 |
Daniel Stenberg |
multi: support timeouts Curl_expire() is now expanded to hold a list of timeouts for each easy handle. Only the closest in time will be the one used as the primary timeout for the ha
multi: support timeouts Curl_expire() is now expanded to hold a list of timeouts for each easy handle. Only the closest in time will be the one used as the primary timeout for the handle and will be used for the splay tree (which sorts and lists all handles within the multi handle). When the main timeout has triggered/expired, the next timeout in time that is kept in the list will be moved to the main timeout position and used as the key to splay with. This way, all timeouts that are set with Curl_expire() internally will end up as a proper timeout. Previously any Curl_expire() that set a _later_ timeout than what was already set was just silently ignored and thus missed. Setting Curl_expire() with timeout 0 (zero) will cancel all previously added timeouts. Corrects known bug #62.
show more ...
|
Revision tags: curl-7_21_0, curl-7_20_1 |
|
#
2309b4e3 |
| 24-Mar-2010 |
Daniel Stenberg |
remove the CVSish $Id$ lines
|
Revision tags: curl-7_20_0, curl-7_19_7, curl-7_19_6 |
|
#
2c166812 |
| 10-Jun-2009 |
Yang Tse |
Adjusted to take in account that... With the curl memory tracking feature decoupled from the debug build feature, CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as fol
Adjusted to take in account that... With the curl memory tracking feature decoupled from the debug build feature, CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as follows: CURLDEBUG used for curl debug memory tracking specific code (--enable-curldebug) DEBUGBUILD used for debug enabled specific code (--enable-debug)
show more ...
|
Revision tags: curl-7_19_5, curl-7_19_4, curl-7_19_3, curl-7_19_2, curl-7_19_1 |
|
#
f591ab3b |
| 13-Sep-2008 |
Yang Tse |
fix compiler warning: defined but not used
|
Revision tags: curl-7_19_0, curl-7_18_2, curl-7_18_1, curl-7_18_0, curl-7_17_1, curl-7_17_0 |
|
#
52376766 |
| 26-Aug-2007 |
Dan Fandrich |
Fixed some minor mismatched types found by splint.
|
Revision tags: curl-7_17_0-preldapfix, curl-7_16_4, curl-7_16_3, curl-7_16_2 |
|
#
5daa6b93 |
| 10-Apr-2007 |
Daniel Stenberg |
Ravi Pratap provided fixes for HTTP pipelining
|
Revision tags: curl-7_16_1, curl-7_16_0 |
|
#
ae13c93b |
| 28-Sep-2006 |
Daniel Stenberg |
Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl would crash if a bad function sequence was used when shutting down after using the multi interface (i.e using easy_
Reported in #1561470 (http://curl.haxx.se/bug/view.cgi?id=1561470), libcurl would crash if a bad function sequence was used when shutting down after using the multi interface (i.e using easy_cleanup after multi_cleanup) so precautions have been added to make sure it doesn't any more - test case 529 was added to verify.
show more ...
|
#
b7eeb6e6 |
| 07-Sep-2006 |
Daniel Stenberg |
Major overhaul introducing http pipelining support and shared connection cache within the multi handle.
|
Revision tags: curl-7_15_6-prepipeline, curl-7_15_5, curl-7_15_4 |
|
#
686d9074 |
| 10-Apr-2006 |
Daniel Stenberg |
First curl_multi_socket() commit. Should primarily be considered as an internal code rearrange to fit the future better.
|
Revision tags: curl-7_15_3, curl-7_15_2, curl-7_15_1, curl-7_15_0, curl-7_14_1, c-ares-1_3_0, curl-7_14_0, curl-7_13_2 |
|
#
ab4086bc |
| 31-Mar-2005 |
Daniel Stenberg |
Updated the copyright year since changes have been this year.
|
Revision tags: curl-7_13_1 |
|
#
6a2e21ec |
| 09-Feb-2005 |
Daniel Stenberg |
FTP code turned into state machine. Not completely yet, but a good start. The tag 'before_ftp_statemachine' was set just before this commit in case of future need.
|
Revision tags: before_ftp_statemachine, curl-7_13_0 |
|
#
e3fa7d02 |
| 11-Jan-2005 |
Daniel Stenberg |
Renamed easy.h and multi.h to easyif.h and multiif.h to make sure they don't shadow our public headers with the former names.
|