static void dns_cache_clear_entry( struct tr_ptrArray * cache, const char * host ) { struct dns_cache_item key; key.host = (char*) host; dns_cache_item_free( tr_ptrArrayRemoveSorted( cache, &key, dns_cache_compare ) ); }
static void dns_cache_item_unlink_and_free(DnsCache *c, DnsCacheItem *i) { DnsCacheItem *first; assert(c); if (!i) return; first = hashmap_get(c->by_key, i->key); LIST_REMOVE(by_key, first, i); if (first) assert_se(hashmap_replace(c->by_key, first->key, first) >= 0); else hashmap_remove(c->by_key, i->key); prioq_remove(c->by_expiry, i, &i->prioq_idx); dns_cache_item_free(i); }