Loading CHANGES +11 −0 Original line number Original line Diff line number Diff line Loading @@ -7,6 +7,17 @@ Changelog Changelog Daniel Stenberg (24 Mar 2010) Daniel Stenberg (24 Mar 2010) - Bob Richmond: There's an annoying situation where libcurl will read new HTTP response data from a socket, then check if it's a timeout if one is set. If the last packet received constitutes the end of the response body, libcurl still treats it as a timeout condition and reports a message like: "Operation timed out after 3000 milliseconds with 876 out of 876 bytes received" It should only a timeout if the timer lapsed and we DIDN'T receive the end of the response body yet. - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported to us by Massimo Callegari. There's a new test case 572 that verifies this to us by Massimo Callegari. There's a new test case 572 that verifies this now. now. Loading RELEASE-NOTES +3 −1 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ This release includes the following bugfixes: o chunked-encoding with Content-Length: header problem o chunked-encoding with Content-Length: header problem o multi interface HTTP POST over a proxy using PROXYTUNNEL o multi interface HTTP POST over a proxy using PROXYTUNNEL o RTSP GET_PARAMETER o RTSP GET_PARAMETER o timeout after last data chunk was handled This release includes the following known bugs: This release includes the following known bugs: Loading @@ -52,6 +53,7 @@ advice from friends like these: Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw, Ben Greear, Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw, Ben Greear, Ryan Chan, Markus Duft, Andrei Benea, Jacob Moshenko, Daniel Johnson, Ryan Chan, Markus Duft, Andrei Benea, Jacob Moshenko, Daniel Johnson, Constantine Sapuntzakis, Douglas Steinwand, Thomas Lopatic, Hauke Duden, Constantine Sapuntzakis, Douglas Steinwand, Thomas Lopatic, Hauke Duden, Akos Pasztory, Kenny To, Christopher Conroy, Massimo Callegari Akos Pasztory, Kenny To, Christopher Conroy, Massimo Callegari, Bob Richmond Thanks! (and sorry if I forgot to mention someone) Thanks! (and sorry if I forgot to mention someone) lib/hostip.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -624,9 +624,9 @@ int Curl_resolv_timeout(struct connectdata *conn, */ */ rc = Curl_resolv(conn, hostname, port, entry); rc = Curl_resolv(conn, hostname, port, entry); #ifdef USE_ALARM_TIMEOUT clean_up: clean_up: #ifdef USE_ALARM_TIMEOUT if (timeout > 0) { if (timeout > 0) { #ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION Loading lib/transfer.c +14 −13 Original line number Original line Diff line number Diff line Loading @@ -1060,6 +1060,7 @@ CURLcode Curl_readwrite(struct connectdata *conn, if(result) if(result) return result; return result; if(k->keepon) { if(data->set.timeout && if(data->set.timeout && (Curl_tvdiff(k->now, k->start) >= data->set.timeout)) { (Curl_tvdiff(k->now, k->start) >= data->set.timeout)) { if(k->size != -1) { if(k->size != -1) { Loading @@ -1073,8 +1074,8 @@ CURLcode Curl_readwrite(struct connectdata *conn, } } return CURLE_OPERATION_TIMEDOUT; return CURLE_OPERATION_TIMEDOUT; } } } if(!k->keepon) { else { /* /* * The transfer has been performed. Just make some general checks before * The transfer has been performed. Just make some general checks before * returning. * returning. Loading tests/libtest/lib572.c +0 −6 Original line number Original line Diff line number Diff line Loading @@ -69,9 +69,7 @@ int test(char *URL) test_setopt(curl, CURLOPT_RTSP_TRANSPORT, "Planes/Trains/Automobiles"); test_setopt(curl, CURLOPT_RTSP_TRANSPORT, "Planes/Trains/Automobiles"); test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP); test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading @@ -82,7 +80,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri); test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri); free(stream_uri); free(stream_uri); stream_uri = NULL; stream_uri = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); /* PUT style GET_PARAMETERS */ /* PUT style GET_PARAMETERS */ params = open("log/file572.txt", O_RDONLY); params = open("log/file572.txt", O_RDONLY); Loading @@ -101,7 +98,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_UPLOAD, 1L); test_setopt(curl, CURLOPT_UPLOAD, 1L); test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size); test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading @@ -109,7 +105,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_UPLOAD, 0L); test_setopt(curl, CURLOPT_UPLOAD, 0L); fclose(paramsf); fclose(paramsf); paramsf = NULL; paramsf = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); /* Heartbeat GET_PARAMETERS */ /* Heartbeat GET_PARAMETERS */ if((stream_uri = suburl(URL, request++)) == NULL) { if((stream_uri = suburl(URL, request++)) == NULL) { Loading @@ -120,7 +115,6 @@ int test(char *URL) free(stream_uri); free(stream_uri); stream_uri = NULL; stream_uri = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading Loading
CHANGES +11 −0 Original line number Original line Diff line number Diff line Loading @@ -7,6 +7,17 @@ Changelog Changelog Daniel Stenberg (24 Mar 2010) Daniel Stenberg (24 Mar 2010) - Bob Richmond: There's an annoying situation where libcurl will read new HTTP response data from a socket, then check if it's a timeout if one is set. If the last packet received constitutes the end of the response body, libcurl still treats it as a timeout condition and reports a message like: "Operation timed out after 3000 milliseconds with 876 out of 876 bytes received" It should only a timeout if the timer lapsed and we DIDN'T receive the end of the response body yet. - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported - Christopher Conroy fixed a problem with RTSP and GET_PARAMETER reported to us by Massimo Callegari. There's a new test case 572 that verifies this to us by Massimo Callegari. There's a new test case 572 that verifies this now. now. Loading
RELEASE-NOTES +3 −1 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ This release includes the following bugfixes: o chunked-encoding with Content-Length: header problem o chunked-encoding with Content-Length: header problem o multi interface HTTP POST over a proxy using PROXYTUNNEL o multi interface HTTP POST over a proxy using PROXYTUNNEL o RTSP GET_PARAMETER o RTSP GET_PARAMETER o timeout after last data chunk was handled This release includes the following known bugs: This release includes the following known bugs: Loading @@ -52,6 +53,7 @@ advice from friends like these: Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw, Ben Greear, Daniel Fandrich, Patrick Monnerat, Pat Ray, Wesley Miaw, Ben Greear, Ryan Chan, Markus Duft, Andrei Benea, Jacob Moshenko, Daniel Johnson, Ryan Chan, Markus Duft, Andrei Benea, Jacob Moshenko, Daniel Johnson, Constantine Sapuntzakis, Douglas Steinwand, Thomas Lopatic, Hauke Duden, Constantine Sapuntzakis, Douglas Steinwand, Thomas Lopatic, Hauke Duden, Akos Pasztory, Kenny To, Christopher Conroy, Massimo Callegari Akos Pasztory, Kenny To, Christopher Conroy, Massimo Callegari, Bob Richmond Thanks! (and sorry if I forgot to mention someone) Thanks! (and sorry if I forgot to mention someone)
lib/hostip.c +1 −1 Original line number Original line Diff line number Diff line Loading @@ -624,9 +624,9 @@ int Curl_resolv_timeout(struct connectdata *conn, */ */ rc = Curl_resolv(conn, hostname, port, entry); rc = Curl_resolv(conn, hostname, port, entry); #ifdef USE_ALARM_TIMEOUT clean_up: clean_up: #ifdef USE_ALARM_TIMEOUT if (timeout > 0) { if (timeout > 0) { #ifdef HAVE_SIGACTION #ifdef HAVE_SIGACTION Loading
lib/transfer.c +14 −13 Original line number Original line Diff line number Diff line Loading @@ -1060,6 +1060,7 @@ CURLcode Curl_readwrite(struct connectdata *conn, if(result) if(result) return result; return result; if(k->keepon) { if(data->set.timeout && if(data->set.timeout && (Curl_tvdiff(k->now, k->start) >= data->set.timeout)) { (Curl_tvdiff(k->now, k->start) >= data->set.timeout)) { if(k->size != -1) { if(k->size != -1) { Loading @@ -1073,8 +1074,8 @@ CURLcode Curl_readwrite(struct connectdata *conn, } } return CURLE_OPERATION_TIMEDOUT; return CURLE_OPERATION_TIMEDOUT; } } } if(!k->keepon) { else { /* /* * The transfer has been performed. Just make some general checks before * The transfer has been performed. Just make some general checks before * returning. * returning. Loading
tests/libtest/lib572.c +0 −6 Original line number Original line Diff line number Diff line Loading @@ -69,9 +69,7 @@ int test(char *URL) test_setopt(curl, CURLOPT_RTSP_TRANSPORT, "Planes/Trains/Automobiles"); test_setopt(curl, CURLOPT_RTSP_TRANSPORT, "Planes/Trains/Automobiles"); test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP); test_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_SETUP); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading @@ -82,7 +80,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri); test_setopt(curl, CURLOPT_RTSP_STREAM_URI, stream_uri); free(stream_uri); free(stream_uri); stream_uri = NULL; stream_uri = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); /* PUT style GET_PARAMETERS */ /* PUT style GET_PARAMETERS */ params = open("log/file572.txt", O_RDONLY); params = open("log/file572.txt", O_RDONLY); Loading @@ -101,7 +98,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_UPLOAD, 1L); test_setopt(curl, CURLOPT_UPLOAD, 1L); test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size); test_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t) file_info.st_size); fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading @@ -109,7 +105,6 @@ int test(char *URL) test_setopt(curl, CURLOPT_UPLOAD, 0L); test_setopt(curl, CURLOPT_UPLOAD, 0L); fclose(paramsf); fclose(paramsf); paramsf = NULL; paramsf = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); /* Heartbeat GET_PARAMETERS */ /* Heartbeat GET_PARAMETERS */ if((stream_uri = suburl(URL, request++)) == NULL) { if((stream_uri = suburl(URL, request++)) == NULL) { Loading @@ -120,7 +115,6 @@ int test(char *URL) free(stream_uri); free(stream_uri); stream_uri = NULL; stream_uri = NULL; fprintf(stderr, "CPC: %s:%d\n", __FILE__, __LINE__); res = curl_easy_perform(curl); res = curl_easy_perform(curl); if(res) if(res) goto test_cleanup; goto test_cleanup; Loading