lock the DNS cache properly before adding an entry when using asynch DNS

This commit is contained in:
Daniel Stenberg 2003-10-20 08:45:33 +00:00
parent b84607ff7b
commit 31b6bb6a41

View File

@ -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);
}
}