1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-21 23:58:49 -05:00

set async.done to TRUE last in the addrinfo callback to prevent the risk that

the multi-threaded resolver does wrong
This commit is contained in:
Daniel Stenberg 2004-10-03 21:32:24 +00:00
parent be7ce435c0
commit 2ee6c33412

View File

@ -115,7 +115,6 @@ static void addrinfo_callback(void *arg, /* "struct connectdata *" */
struct connectdata *conn = (struct connectdata *)arg;
struct Curl_dns_entry *dns = NULL;
conn->async.done = TRUE;
conn->async.status = status;
if(CURL_ASYNC_SUCCESS == status) {
@ -147,6 +146,11 @@ static void addrinfo_callback(void *arg, /* "struct connectdata *" */
conn->async.dns = dns;
/* Set async.done TRUE last in this function since it may be used multi-
threaded and once this is TRUE the other thread may read fields from the
async struct */
conn->async.done = TRUE;
/* ipv4: The input hostent struct will be freed by ares when we return from
this function */
}