timeout = conn->data->set.timeout;
/* Wait for the name resolve query to complete. */
- while (timeout > 0) {
+ while (1) {
int nfds=0;
fd_set read_fds, write_fds;
struct timeval *tvp, tv, store;
ares_process(data->state.areschannel, &read_fds, &write_fds);
timeout -= Curl_tvdiff(Curl_tvnow(), now)/1000; /* spent time */
+ if (timeout < 0) {
+ /* our timeout, so we cancel the ares operation */
+ ares_cancel(data->state.areschannel);
+ break;
+ }
}
/* Operation complete, if the lookup was successful we now have the entry