Fix issue related with the use of ares_timeout() result.

This commit is contained in:
Yang Tse 2007-10-03 13:19:34 +00:00
parent 4bf28cb904
commit 3f3a38f9c6
3 changed files with 8 additions and 4 deletions

View File

@ -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

View File

@ -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:

View File

@ -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;