mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
remove_handle: call multi_done() first, then clear dns cache pointer
Closes #1960
This commit is contained in:
parent
f3e03f6c0a
commit
1e552535e1
13
lib/multi.c
13
lib/multi.c
@ -711,12 +711,6 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
|
|||||||
curl_easy_cleanup is called. */
|
curl_easy_cleanup is called. */
|
||||||
Curl_expire_clear(data);
|
Curl_expire_clear(data);
|
||||||
|
|
||||||
if(data->dns.hostcachetype == HCACHE_MULTI) {
|
|
||||||
/* stop using the multi handle's DNS cache */
|
|
||||||
data->dns.hostcache = NULL;
|
|
||||||
data->dns.hostcachetype = HCACHE_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(data->easy_conn) {
|
if(data->easy_conn) {
|
||||||
|
|
||||||
/* we must call multi_done() here (if we still own the connection) so that
|
/* we must call multi_done() here (if we still own the connection) so that
|
||||||
@ -735,6 +729,13 @@ CURLMcode curl_multi_remove_handle(struct Curl_multi *multi,
|
|||||||
Curl_getoff_all_pipelines(data, data->easy_conn);
|
Curl_getoff_all_pipelines(data, data->easy_conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(data->dns.hostcachetype == HCACHE_MULTI) {
|
||||||
|
/* stop using the multi handle's DNS cache, *after* the possible
|
||||||
|
multi_done() call above */
|
||||||
|
data->dns.hostcache = NULL;
|
||||||
|
data->dns.hostcachetype = HCACHE_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
Curl_wildcard_dtor(&data->wildcard);
|
Curl_wildcard_dtor(&data->wildcard);
|
||||||
|
|
||||||
/* destroy the timeout list that is held in the easy handle, do this *after*
|
/* destroy the timeout list that is held in the easy handle, do this *after*
|
||||||
|
Loading…
Reference in New Issue
Block a user