X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.c;h=12883952b1eee1099a789e6679464e10d1e839c3;hb=cd1b20f90abb1e49d60d8c3f4a7665ca93bea436;hp=5061d39c4630b6ac9f1994adc492e708182eef53;hpb=edc501d4674dadc304d45a7e1c5b69e207eb8cd4;p=elogind.git diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index 5061d39c4..12883952b 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -77,6 +77,10 @@ static int manager_process_link(sd_rtnl *rtnl, sd_rtnl_message *mm, void *userda if (r < 0) goto fail; + r = link_update_monitor(l); + if (r < 0) + goto fail; + if (is_new) log_debug("Found new link %i/%s", ifindex, l->name); @@ -524,14 +528,11 @@ Manager *manager_free(Manager *m) { if (!m) return NULL; - while (m->dns_queries) - dns_query_free(m->dns_queries); - - hashmap_free(m->dns_transactions); - while ((l = hashmap_first(m->links))) link_free(l); - hashmap_free(m->links); + + while (m->dns_queries) + dns_query_free(m->dns_queries); dns_scope_free(m->unicast_scope); @@ -540,6 +541,9 @@ Manager *manager_free(Manager *m) { while (m->fallback_dns_servers) dns_server_free(m->fallback_dns_servers); + hashmap_free(m->links); + hashmap_free(m->dns_transactions); + sd_event_source_unref(m->network_event_source); sd_network_monitor_unref(m->network_monitor);