mirror of
https://github.com/curl/curl.git
synced 2026-08-26 11:43:32 +03:00
fix refreshing of obsolete dns cache entries
- cache entries must be also refreshed when they are in use - have the cache count as inuse reference too, freeing timestamp == 0 special value - use timestamp == 0 for CURLOPT_RESOLVE entries which don't get refreshed - remove CURLOPT_RESOLVE special inuse reference (timestamp == 0 will prevent refresh) - fix Curl_hostcache_clean - CURLOPT_RESOLVE entries don't have a special reference anymore, and it would also release non CURLOPT_RESOLVE references - fix locking in Curl_hostcache_clean - fix unit1305.c: hash now keeps a reference, need to set inuse = 1
This commit is contained in:
parent
369430cd17
commit
0db831976e
3 changed files with 36 additions and 42 deletions
|
|
@ -65,11 +65,10 @@ void Curl_global_host_cache_dtor(void);
|
|||
|
||||
struct Curl_dns_entry {
|
||||
Curl_addrinfo *addr;
|
||||
/* timestamp == 0 -- entry not in hostcache
|
||||
timestamp != 0 -- entry is in hostcache */
|
||||
/* timestamp == 0 -- CURLOPT_RESOLVE entry, doesn't timeout */
|
||||
time_t timestamp;
|
||||
long inuse; /* use-counter, make very sure you decrease this
|
||||
when you're done using the address you received */
|
||||
/* use-counter, use Curl_resolv_unlock to release reference */
|
||||
long inuse;
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue