aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/hostip.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/hostip.c b/lib/hostip.c
index 93a732d90..c06961e79 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -527,8 +527,16 @@ static void host_callback(void *arg, /* "struct connectdata *" */
/* pack_hostent() copies to and shrinks the target buffer */
struct hostent *he = pack_hostent(&bufp, hostent);
- dns = cache_resolv_response(conn->data, he,
+ struct SessionHandle *data = conn->data;
+
+ if(data->share)
+ Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);
+
+ dns = cache_resolv_response(data, he,
conn->async.hostname, conn->async.port);
+
+ if(data->share)
+ Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
}
}