From 31b6bb6a41ce1a59d26b27be955a9073c393a796 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 20 Oct 2003 08:45:33 +0000 Subject: lock the DNS cache properly before adding an entry when using asynch DNS --- lib/hostip.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'lib/hostip.c') 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); } } -- cgit v1.2.3