mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
Fix issue related with the use of ares_timeout() result.
This commit is contained in:
parent
4bf28cb904
commit
3f3a38f9c6
2
CHANGES
2
CHANGES
@ -7,6 +7,8 @@
|
||||
Changelog
|
||||
|
||||
Daniel S (3 October 2007)
|
||||
- Yang Tse, fix issue related with the use of ares_timeout() result.
|
||||
|
||||
- Alexey Pesternikov introduced CURLOPT_OPENSOCKETFUNCTION and
|
||||
CURLOPT_OPENSOCKETDATA to set a callback that allows an application to
|
||||
replace the socket() call used by libcurl. It basically allows the app to
|
||||
|
@ -33,6 +33,7 @@ This release includes the following bugfixes:
|
||||
o re-used handle transfers with SFTP
|
||||
o curl_easy_escape() problem with byte values >= 128
|
||||
o handles chunked-encoded CONNECT responses
|
||||
o misuse of ares_timeout() result
|
||||
|
||||
This release includes the following known bugs:
|
||||
|
||||
|
@ -109,7 +109,8 @@ int Curl_resolv_getsock(struct connectdata *conn,
|
||||
|
||||
{
|
||||
struct timeval maxtime;
|
||||
struct timeval timeout;
|
||||
struct timeval timebuf;
|
||||
struct timeval *timeout;
|
||||
int max = ares_getsock(conn->data->state.areschannel,
|
||||
(int *)socks, numsocks);
|
||||
|
||||
@ -117,10 +118,10 @@ int Curl_resolv_getsock(struct connectdata *conn,
|
||||
maxtime.tv_sec = CURL_TIMEOUT_RESOLVE;
|
||||
maxtime.tv_usec = 0;
|
||||
|
||||
ares_timeout(conn->data->state.areschannel, &maxtime, &timeout);
|
||||
timeout = ares_timeout(conn->data->state.areschannel, &maxtime, &timebuf);
|
||||
|
||||
Curl_expire(conn->data,
|
||||
(timeout.tv_sec * 1000) + (timeout.tv_usec/1000) );
|
||||
(timeout->tv_sec * 1000) + (timeout->tv_usec/1000));
|
||||
|
||||
return max;
|
||||
}
|
||||
@ -254,7 +255,7 @@ CURLcode Curl_wait_for_resolv(struct connectdata *conn,
|
||||
tvp = ares_timeout(data->state.areschannel, &store, &tv);
|
||||
|
||||
/* use the timeout period ares returned to us above */
|
||||
ares_waitperform(conn, tv.tv_sec * 1000 + tv.tv_usec/1000);
|
||||
ares_waitperform(conn, tvp->tv_sec * 1000 + tvp->tv_usec/1000);
|
||||
|
||||
if(conn->async.done)
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user