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
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:
{
struct timeval maxtime;
- struct timeval timeout;
+ struct timeval timebuf;
+ struct timeval *timeout;
int max = ares_getsock(conn->data->state.areschannel,
(int *)socks, numsocks);
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;
}
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;