X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.c;h=02153b929fb9e19fa78d1dbb47616d74a1333ebc;hp=1f8c47ccbebe0a4bb03055292dbcc863a56419d3;hb=71a681ae50175a569bf832d2615fd11994c41d73;hpb=ec68d13789bdbc5b72a070cd3f17b413008fa96e diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index 1f8c47ccbeb..02153b929fb 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -1,9 +1,12 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #include #include -#include #include +#include +#include +#include #if HAVE_LIBIDN2 #include @@ -79,14 +82,14 @@ static int manager_process_link(sd_netlink *rtnl, sd_netlink_message *mm, void * goto fail; if (is_new) - log_debug("Found new link %i/%s", ifindex, l->name); + log_debug("Found new link %i/%s", ifindex, l->ifname); break; } case RTM_DELLINK: if (l) { - log_debug("Removing link %i/%s", l->ifindex, l->name); + log_debug("Removing link %i/%s", l->ifindex, l->ifname); link_remove_user(l); link_free(l); } @@ -507,12 +510,10 @@ static int manager_sigusr1(sd_event_source *s, const struct signalfd_siginfo *si assert(si); assert(m); - f = open_memstream(&buffer, &size); + f = open_memstream_unlocked(&buffer, &size); if (!f) return log_oom(); - (void) __fsetlocking(f, FSETLOCKING_BYCALLER); - LIST_FOREACH(scopes, scope, m->dns_scopes) dns_scope_dump(scope, f); @@ -580,7 +581,7 @@ int manager_new(Manager **ret) { .dnssec_mode = DEFAULT_DNSSEC_MODE, .dns_over_tls_mode = DEFAULT_DNS_OVER_TLS_MODE, .enable_cache = true, - .dns_stub_listener_mode = DNS_STUB_LISTENER_UDP, + .dns_stub_listener_mode = DNS_STUB_LISTENER_YES, .read_resolv_conf = true, .need_builtin_fallbacks = true, .etc_hosts_last = USEC_INFINITY, @@ -596,6 +597,12 @@ int manager_new(Manager **ret) { if (r < 0) log_warning_errno(r, "Failed to parse configuration file: %m"); +#if ENABLE_DNS_OVER_TLS + r = dnstls_manager_init(m); + if (r < 0) + return r; +#endif + r = sd_event_default(&m->event); if (r < 0) return r; @@ -676,6 +683,10 @@ Manager *manager_free(Manager *m) { while (m->dns_streams) dns_stream_unref(m->dns_streams); +#if ENABLE_DNS_OVER_TLS + dnstls_manager_free(m); +#endif + hashmap_free(m->links); hashmap_free(m->dns_transactions); @@ -689,7 +700,7 @@ Manager *manager_free(Manager *m) { manager_mdns_stop(m); manager_dns_stub_stop(m); - sd_bus_unref(m->bus); + sd_bus_flush_close_unref(m->bus); sd_event_source_unref(m->sigusr1_event_source); sd_event_source_unref(m->sigusr2_event_source);