mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-10 13:04:23 -04:00
bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
As mentioned at https://sourceforge.net/p/levent/bugs/293/ created a small function "evdns_base_flush_outdated_host_addresses" which removes all the previous requests of hosts , if user wants to clean up the list of hosts can call and use this function. Requires function declaration to be added in include/event2/dns.h Adding it in another patch for the same bug.
This commit is contained in:
parent
c11e7d9191
commit
954d2f94c0
13
evdns.c
13
evdns.c
@ -4044,6 +4044,19 @@ evdns_base_free(struct evdns_base *base, int fail_requests)
|
|||||||
evdns_base_free_and_unlock(base, fail_requests);
|
evdns_base_free_and_unlock(base, fail_requests);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
evdns_base_flush_outdated_host_addresses(struct evdns_base *base)
|
||||||
|
{
|
||||||
|
EVDNS_LOCK(base);
|
||||||
|
struct hosts_entry *victim;
|
||||||
|
while ((victim = TAILQ_FIRST(&base->hostsdb))) {
|
||||||
|
TAILQ_REMOVE(&base->hostsdb, victim, next);
|
||||||
|
mm_free(victim);
|
||||||
|
}
|
||||||
|
EVDNS_UNLOCK(base);
|
||||||
|
EVTHREAD_FREE_LOCK(base->lock, EVTHREAD_LOCKTYPE_RECURSIVE);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
evdns_shutdown(int fail_requests)
|
evdns_shutdown(int fail_requests)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user