mirror of
https://github.com/moparisthebest/curl
synced 2025-02-28 17:31:46 -05:00
Merge branch 'master' of github.com:bagder/curl
This commit is contained in:
commit
481c61d060
11
CHANGES
11
CHANGES
@ -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.
|
||||||
|
@ -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:
|
||||||
|
|
||||||
@ -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)
|
||||||
|
@ -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
|
||||||
|
@ -1060,21 +1060,22 @@ CURLcode Curl_readwrite(struct connectdata *conn,
|
|||||||
if(result)
|
if(result)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
if(data->set.timeout &&
|
if(k->keepon) {
|
||||||
(Curl_tvdiff(k->now, k->start) >= data->set.timeout)) {
|
if(data->set.timeout &&
|
||||||
if(k->size != -1) {
|
(Curl_tvdiff(k->now, k->start) >= data->set.timeout)) {
|
||||||
failf(data, "Operation timed out after %ld milliseconds with %"
|
if(k->size != -1) {
|
||||||
FORMAT_OFF_T " out of %" FORMAT_OFF_T " bytes received",
|
failf(data, "Operation timed out after %ld milliseconds with %"
|
||||||
Curl_tvdiff(k->now, k->start), k->bytecount, k->size);
|
FORMAT_OFF_T " out of %" FORMAT_OFF_T " bytes received",
|
||||||
} else {
|
Curl_tvdiff(k->now, k->start), k->bytecount, k->size);
|
||||||
failf(data, "Operation timed out after %ld milliseconds with %"
|
} else {
|
||||||
FORMAT_OFF_T " bytes received",
|
failf(data, "Operation timed out after %ld milliseconds with %"
|
||||||
Curl_tvdiff(k->now, k->start), k->bytecount);
|
FORMAT_OFF_T " bytes received",
|
||||||
|
Curl_tvdiff(k->now, k->start), k->bytecount);
|
||||||
|
}
|
||||||
|
return CURLE_OPERATION_TIMEDOUT;
|
||||||
}
|
}
|
||||||
return CURLE_OPERATION_TIMEDOUT;
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
if(!k->keepon) {
|
|
||||||
/*
|
/*
|
||||||
* The transfer has been performed. Just make some general checks before
|
* The transfer has been performed. Just make some general checks before
|
||||||
* returning.
|
* returning.
|
||||||
|
@ -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;
|
||||||
|
|
||||||
@ -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);
|
||||||
@ -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;
|
||||||
@ -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) {
|
||||||
@ -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…
x
Reference in New Issue
Block a user