struct Curl_multi *multi = (struct Curl_multi *)multi_handle;
struct SessionHandle *data = (struct SessionHandle *)easy_handle;
struct SessionHandle *new_closure = NULL;
- struct curl_hash *hostcache = NULL;
/* First, make some basic checks that the CURLM handle is a good handle */
if(!GOOD_MULTI_HANDLE(multi))
if(!timeoutlist)
return CURLM_OUT_OF_MEMORY;
- /* In case multi handle has no hostcache yet, allocate one */
- if(!multi->hostcache) {
- hostcache = Curl_mk_dnscache();
- if(!hostcache) {
- free(data);
- Curl_llist_destroy(timeoutlist, NULL);
- return CURLM_OUT_OF_MEMORY;
- }
- }
-
/* In case multi handle has no closure_handle yet, allocate
a new easy handle to use when closing cached connections */
if(!multi->closure_handle) {
new_closure = (struct SessionHandle *)curl_easy_init();
if(!new_closure) {
- Curl_hash_destroy(hostcache);
free(data);
Curl_llist_destroy(timeoutlist, NULL);
return CURLM_OUT_OF_MEMORY;
multi->closure_handle->state.conn_cache = multi->conn_cache;
}
- /* In case hostcache has been allocated above,
- it is associated now with the multi handle. */
- if(hostcache)
- multi->hostcache = hostcache;
-
/* Make easy handle use timeout list initialized above */
data->state.timeoutlist = timeoutlist;
timeoutlist = NULL;