diff --git a/lib/hostares.c b/lib/hostares.c index 035d0e222..1db0f4320 100644 --- a/lib/hostares.c +++ b/lib/hostares.c @@ -75,6 +75,7 @@ #include "share.h" #include "strerror.h" #include "url.h" +#include "multiif.h" #include "connect.h" /* for the Curl_sockerrno() proto */ #define _MPRINTF_REPLACE /* use our functions only */ @@ -109,9 +110,20 @@ int Curl_resolv_getsock(struct connectdata *conn, int numsocks) { + struct timeval maxtime; + 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); + + Curl_expire(conn->data, + (timeout.tv_sec * 1000) + (timeout.tv_usec/1000) ); + return max; }