Loading lib/hostip.c +17 −6 Original line number Diff line number Diff line Loading @@ -195,6 +195,23 @@ hostcache_prune(curl_hash *hostcache, int cache_timeout, int now) hostcache_timestamp_remove); } void Curl_hostcache_prune(struct SessionHandle *data) { time_t now; if(data->share) Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE); time(&now); /* Remove outdated and unused entries from the hostcache */ hostcache_prune(data->hostcache, data->set.dns_cache_timeout, now); if(data->share) Curl_share_unlock(data, CURL_LOCK_DATA_DNS); } #ifdef HAVE_SIGSETJMP /* Beware this is a global and unique instance */ sigjmp_buf curl_jmpenv; Loading Loading @@ -249,12 +266,6 @@ cache_resolv_response(struct SessionHandle *data, dns->timestamp = now; /* used now */ dns->inuse++; /* mark entry as in-use */ /* Remove outdated and unused entries from the hostcache */ hostcache_prune(data->hostcache, data->set.dns_cache_timeout, now); /* free the allocated entry_id again */ free(entry_id); Loading lib/hostip.h +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ void Curl_freeaddrinfo(Curl_addrinfo *freeaddr); /* free cached name info */ void Curl_freednsinfo(void *freethis); /* prune old entries from the DNS cache */ void Curl_hostcache_prune(struct SessionHandle *data); #ifdef CURLDEBUG void curl_freeaddrinfo(struct addrinfo *freethis, int line, const char *source); Loading lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -3227,6 +3227,8 @@ CURLcode Curl_done(struct connectdata *conn) NULL, Curl_scan_cache_used); #endif Curl_hostcache_prune(data); /* kill old DNS cache entries */ /* this calls the protocol-specific function pointer previously set */ if(conn->curl_done) result = conn->curl_done(conn); Loading Loading
lib/hostip.c +17 −6 Original line number Diff line number Diff line Loading @@ -195,6 +195,23 @@ hostcache_prune(curl_hash *hostcache, int cache_timeout, int now) hostcache_timestamp_remove); } void Curl_hostcache_prune(struct SessionHandle *data) { time_t now; if(data->share) Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE); time(&now); /* Remove outdated and unused entries from the hostcache */ hostcache_prune(data->hostcache, data->set.dns_cache_timeout, now); if(data->share) Curl_share_unlock(data, CURL_LOCK_DATA_DNS); } #ifdef HAVE_SIGSETJMP /* Beware this is a global and unique instance */ sigjmp_buf curl_jmpenv; Loading Loading @@ -249,12 +266,6 @@ cache_resolv_response(struct SessionHandle *data, dns->timestamp = now; /* used now */ dns->inuse++; /* mark entry as in-use */ /* Remove outdated and unused entries from the hostcache */ hostcache_prune(data->hostcache, data->set.dns_cache_timeout, now); /* free the allocated entry_id again */ free(entry_id); Loading
lib/hostip.h +3 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,9 @@ void Curl_freeaddrinfo(Curl_addrinfo *freeaddr); /* free cached name info */ void Curl_freednsinfo(void *freethis); /* prune old entries from the DNS cache */ void Curl_hostcache_prune(struct SessionHandle *data); #ifdef CURLDEBUG void curl_freeaddrinfo(struct addrinfo *freethis, int line, const char *source); Loading
lib/url.c +2 −0 Original line number Diff line number Diff line Loading @@ -3227,6 +3227,8 @@ CURLcode Curl_done(struct connectdata *conn) NULL, Curl_scan_cache_used); #endif Curl_hostcache_prune(data); /* kill old DNS cache entries */ /* this calls the protocol-specific function pointer previously set */ if(conn->curl_done) result = conn->curl_done(conn); Loading