X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.c;h=a2de2edb48f5a76d2398dc3abbd2ca03bcea352a;hp=6bb089451f1b8d1a09d07f1df4e1abe3eb9fb3ff;hb=3e684349c2cead2e6fd2f816c34eb17daba23a49;hpb=96c76ac49c28ba397fc8db3a40505b875c65ef16 diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index 6bb089451..a2de2edb4 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -536,10 +536,8 @@ Manager *manager_free(Manager *m) { dns_scope_free(m->unicast_scope); - while (m->dns_servers) - dns_server_free(m->dns_servers); - while (m->fallback_dns_servers) - dns_server_free(m->fallback_dns_servers); + manager_flush_dns_servers(m, DNS_SERVER_SYSTEM); + manager_flush_dns_servers(m, DNS_SERVER_FALLBACK); hashmap_free(m->links); hashmap_free(m->dns_transactions); @@ -1771,6 +1769,18 @@ void manager_verify_all(Manager *m) { dns_zone_verify_all(&s->zone); } +void manager_flush_dns_servers(Manager *m, DnsServerType t) { + assert(m); + + if (t == DNS_SERVER_SYSTEM) + while (m->dns_servers) + dns_server_free(m->dns_servers); + + if (t == DNS_SERVER_FALLBACK) + while (m->fallback_dns_servers) + dns_server_free(m->fallback_dns_servers); +} + static const char* const support_table[_SUPPORT_MAX] = { [SUPPORT_NO] = "no", [SUPPORT_YES] = "yes",