From: Daniel Stenberg Date: Mon, 20 Oct 2003 08:45:33 +0000 (+0000) Subject: lock the DNS cache properly before adding an entry when using asynch DNS X-Git-Tag: curl-7_10_8~81 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=31b6bb6a41ce1a59d26b27be955a9073c393a796;p=thirdparty%2Fcurl.git lock the DNS cache properly before adding an entry when using asynch DNS --- diff --git a/lib/hostip.c b/lib/hostip.c index 93a732d90f..c06961e790 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); } }