Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Daniel (6 October 2006) - Bogdan Nicula's hanging test case was converted to test case 533 and the test now runs fine. Daniel (4 October 2006) - Dmitriy Sergeyev provided an example source code that crashed CVS libcurl but that worked nicely in 7.15.5. I converted it into test case 532 and Loading RELEASE-NOTES +1 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,6 @@ advice from friends like these: Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs, Peter Sylvester, David McCreedy, Dmitriy Sergeyev, Dmitry Rechkin, Jari Sundell, Ravi Pratap, Michele Bini, Jeff Pohlmeyer, Michael Wallner, Mike Protts, Cory Nelson, Bernard Leak Mike Protts, Cory Nelson, Bernard Leak, Bogdan Nicula Thanks! (and sorry if I forgot to mention someone) TODO-RELEASE +0 −2 Original line number Diff line number Diff line To get fixed in 7.16.0 (planned release: October 2006) ====================== 66 - Bogdan Nicula's test case 67 - Jeff Pohlmeyer's test case 68 - Dmitriy Sergeyev's test02.c and test03.c Loading lib/multi.c +12 −4 Original line number Diff line number Diff line Loading @@ -942,9 +942,14 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, case CURLM_STATE_WAITDO: /* Wait for our turn to DO when we're pipelining requests */ infof(easy->easy_handle, "Connection #%d: send pipe size = %d\n", #ifdef CURLDEBUG infof(easy->easy_handle, "Conn %d send pipe %d inuse %d athead %d\n", easy->easy_conn->connectindex, easy->easy_conn->send_pipe->size); easy->easy_conn->send_pipe->size, easy->easy_conn->writechannel_inuse, Curl_isHandleAtHead(easy->easy_handle, easy->easy_conn->send_pipe)); #endif if (!easy->easy_conn->writechannel_inuse && Curl_isHandleAtHead(easy->easy_handle, easy->easy_conn->send_pipe)) { Loading Loading @@ -1232,6 +1237,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, * If an error was returned, and we aren't in completed state now, * then we go to completed and consider this transfer aborted. */ if(easy->easy_conn) { /* if this has a connection, unsubscribe from the pipelines */ easy->easy_conn->writechannel_inuse = FALSE; easy->easy_conn->readchannel_inuse = FALSE; } multistate(easy, CURLM_STATE_COMPLETED); } } Loading Loading @@ -1345,7 +1355,6 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) Curl_hash_destroy(multi->hostcache); Curl_hash_destroy(multi->sockhash); #if 1 /* go over all connections that have close actions */ for(i=0; i< multi->connc->num; i++) { if(multi->connc->connects[i] && Loading @@ -1367,7 +1376,6 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) free(cl); cl= n; } #endif Curl_rm_connc(multi->connc); Loading tests/data/test533 0 → 100644 +53 −0 Original line number Diff line number Diff line <info> <keywords> FTP PASV RETR </keywords> </info> # Server-side <reply> <data> </data> <servercmd> REPLY RETR 550 the file doesn't exist REPLY SIZE 550 Can't check for file existence </servercmd> </reply> # Client-side <client> <server> ftp </server> <tool> lib533 </tool> <name> FTP RETR a non-existing file twice using the multi interface </name> <command> ftp://%HOSTIP:%FTPPORT/path/533 </command> </client> # Verify data after the test has been "shot" <verify> <strip> </strip> <protocol> USER anonymous PASS curl_by_daniel@haxx.se PWD CWD path EPSV TYPE I SIZE 533 RETR 533 EPSV SIZE 533 RETR 533 QUIT </protocol> </verify> Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Daniel (6 October 2006) - Bogdan Nicula's hanging test case was converted to test case 533 and the test now runs fine. Daniel (4 October 2006) - Dmitriy Sergeyev provided an example source code that crashed CVS libcurl but that worked nicely in 7.15.5. I converted it into test case 532 and Loading
RELEASE-NOTES +1 −1 Original line number Diff line number Diff line Loading @@ -61,6 +61,6 @@ advice from friends like these: Domenico Andreoli, Armel Asselin, Gisle Vanem, Yang Tse, Andrew Biggs, Peter Sylvester, David McCreedy, Dmitriy Sergeyev, Dmitry Rechkin, Jari Sundell, Ravi Pratap, Michele Bini, Jeff Pohlmeyer, Michael Wallner, Mike Protts, Cory Nelson, Bernard Leak Mike Protts, Cory Nelson, Bernard Leak, Bogdan Nicula Thanks! (and sorry if I forgot to mention someone)
TODO-RELEASE +0 −2 Original line number Diff line number Diff line To get fixed in 7.16.0 (planned release: October 2006) ====================== 66 - Bogdan Nicula's test case 67 - Jeff Pohlmeyer's test case 68 - Dmitriy Sergeyev's test02.c and test03.c Loading
lib/multi.c +12 −4 Original line number Diff line number Diff line Loading @@ -942,9 +942,14 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, case CURLM_STATE_WAITDO: /* Wait for our turn to DO when we're pipelining requests */ infof(easy->easy_handle, "Connection #%d: send pipe size = %d\n", #ifdef CURLDEBUG infof(easy->easy_handle, "Conn %d send pipe %d inuse %d athead %d\n", easy->easy_conn->connectindex, easy->easy_conn->send_pipe->size); easy->easy_conn->send_pipe->size, easy->easy_conn->writechannel_inuse, Curl_isHandleAtHead(easy->easy_handle, easy->easy_conn->send_pipe)); #endif if (!easy->easy_conn->writechannel_inuse && Curl_isHandleAtHead(easy->easy_handle, easy->easy_conn->send_pipe)) { Loading Loading @@ -1232,6 +1237,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi, * If an error was returned, and we aren't in completed state now, * then we go to completed and consider this transfer aborted. */ if(easy->easy_conn) { /* if this has a connection, unsubscribe from the pipelines */ easy->easy_conn->writechannel_inuse = FALSE; easy->easy_conn->readchannel_inuse = FALSE; } multistate(easy, CURLM_STATE_COMPLETED); } } Loading Loading @@ -1345,7 +1355,6 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) Curl_hash_destroy(multi->hostcache); Curl_hash_destroy(multi->sockhash); #if 1 /* go over all connections that have close actions */ for(i=0; i< multi->connc->num; i++) { if(multi->connc->connects[i] && Loading @@ -1367,7 +1376,6 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) free(cl); cl= n; } #endif Curl_rm_connc(multi->connc); Loading
tests/data/test533 0 → 100644 +53 −0 Original line number Diff line number Diff line <info> <keywords> FTP PASV RETR </keywords> </info> # Server-side <reply> <data> </data> <servercmd> REPLY RETR 550 the file doesn't exist REPLY SIZE 550 Can't check for file existence </servercmd> </reply> # Client-side <client> <server> ftp </server> <tool> lib533 </tool> <name> FTP RETR a non-existing file twice using the multi interface </name> <command> ftp://%HOSTIP:%FTPPORT/path/533 </command> </client> # Verify data after the test has been "shot" <verify> <strip> </strip> <protocol> USER anonymous PASS curl_by_daniel@haxx.se PWD CWD path EPSV TYPE I SIZE 533 RETR 533 EPSV SIZE 533 RETR 533 QUIT </protocol> </verify>