diff options
author | Daniel Stenberg <daniel@haxx.se> | 2003-09-11 22:14:29 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2003-09-11 22:14:29 +0000 |
commit | 0efcb57623189dab5b772ca755841ed7494f04ca (patch) | |
tree | 911cfb66a9ecc05f98f08e7ccf9968911023bc9e /lib | |
parent | 6fde14727321fd5903cc0c951c687164e7182a42 (diff) |
For easy handles within multi handles, we share the DNS cache always.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/multi.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/lib/multi.c b/lib/multi.c index 93891bf04..ddefa9ec8 100644 --- a/lib/multi.c +++ b/lib/multi.c @@ -121,7 +121,13 @@ CURLM *curl_multi_init(void) memset(multi, 0, sizeof(struct Curl_multi)); multi->type = CURL_MULTI_HANDLE; } - + + multi->hostcache = Curl_hash_alloc(7, Curl_freednsinfo); + if(!multi->hostcache) { + /* failure, free mem and bail out */ + free(multi); + multi = NULL; + } return (CURLM *) multi; } @@ -150,6 +156,9 @@ CURLMcode curl_multi_add_handle(CURLM *multi_handle, /* set the easy handle */ easy->easy_handle = easy_handle; easy->state = CURLM_STATE_INIT; + + /* for multi interface connections, we share DNS cache automaticly */ + easy->easy_handle->hostcache = multi->hostcache; /* We add this new entry first in the list. We make our 'next' point to the previous next and our 'prev' point back to the 'first' struct */ @@ -332,16 +341,6 @@ CURLMcode curl_multi_perform(CURLM *multi_handle, int *running_handles) break; case CURLM_STATE_CONNECT: - if (Curl_global_host_cache_use(easy->easy_handle)) { - easy->easy_handle->hostcache = Curl_global_host_cache_get(); - } - else { - if (multi->hostcache == NULL) - multi->hostcache = Curl_hash_alloc(7, Curl_freednsinfo); - - easy->easy_handle->hostcache = multi->hostcache; - } - /* Connect. We get a connection identifier filled in. */ Curl_pgrsTime(easy->easy_handle, TIMER_STARTSINGLE); easy->result = Curl_connect(easy->easy_handle, &easy->easy_conn, &async); |