summaryrefslogtreecommitdiffstats
path: root/lib/asyn-ares.c
diff options
context:
space:
mode:
authorCurl Upstream <curl-library@cool.haxx.se>2017-06-14 06:08:56 (GMT)
committerBrad King <brad.king@kitware.com>2017-06-14 14:46:35 (GMT)
commit06d6d6c4aee149cd6560b919ef6935ef0867d921 (patch)
treed62adabf2b4b10030abf4a759b520e5edb6dd517 /lib/asyn-ares.c
parentfd7d521c9d70655618db8232d45e5aaf81700f91 (diff)
downloadCMake-06d6d6c4aee149cd6560b919ef6935ef0867d921.zip
CMake-06d6d6c4aee149cd6560b919ef6935ef0867d921.tar.gz
CMake-06d6d6c4aee149cd6560b919ef6935ef0867d921.tar.bz2
curl 2017-06-14 (54b636f1)
Code extracted from: https://github.com/curl/curl.git at commit 54b636f14546d3fde9f9c67c3b32701d78563161 (curl-7_54_1).
Diffstat (limited to 'lib/asyn-ares.c')
-rw-r--r--lib/asyn-ares.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/asyn-ares.c b/lib/asyn-ares.c
index 281fb03..11a914f 100644
--- a/lib/asyn-ares.c
+++ b/lib/asyn-ares.c
@@ -232,7 +232,7 @@ int Curl_resolver_getsock(struct connectdata *conn,
milli = (timeout->tv_sec * 1000) + (timeout->tv_usec/1000);
if(milli == 0)
milli += 10;
- Curl_expire_latest(conn->data, milli);
+ Curl_expire(conn->data, milli, EXPIRE_ASYNC_NAME);
return max;
}
@@ -373,7 +373,6 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
/* Wait for the name resolve query to complete. */
while(!result) {
struct timeval *tvp, tv, store;
- long timediff;
int itimeout;
int timeout_ms;
@@ -402,8 +401,13 @@ CURLcode Curl_resolver_wait_resolv(struct connectdata *conn,
result = CURLE_ABORTED_BY_CALLBACK;
else {
struct timeval now2 = Curl_tvnow();
- timediff = Curl_tvdiff(now2, now); /* spent time */
- timeout -= timediff?timediff:1; /* always deduct at least 1 */
+ time_t timediff = Curl_tvdiff(now2, now); /* spent time */
+ if(timediff <= 0)
+ timeout -= 1; /* always deduct at least 1 */
+ else if(timediff > timeout)
+ timeout = -1;
+ else
+ timeout -= (long)timediff;
now = now2; /* for next loop */
}
if(timeout < 0)