#include "af-list.h"
#include "alloc-util.h"
+#include "bus-polkit.h"
#include "dirent-util.h"
#include "dns-domain.h"
#include "fd-util.h"
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);
}
}
(void) manager_write_resolv_conf(m);
+ (void) manager_send_changed(m, "DNS");
return 0;
}
static int on_hostname_change(sd_event_source *es, int fd, uint32_t revents, void *userdata) {
_cleanup_free_ char *full_hostname = NULL, *llmnr_hostname = NULL, *mdns_hostname = NULL;
Manager *m = userdata;
+ bool llmnr_hostname_changed;
int r;
assert(m);
if (r < 0)
return 0; /* ignore invalid hostnames */
+ llmnr_hostname_changed = !streq(llmnr_hostname, m->llmnr_hostname);
if (streq(full_hostname, m->full_hostname) &&
- streq(llmnr_hostname, m->llmnr_hostname) &&
+ !llmnr_hostname_changed &&
streq(mdns_hostname, m->mdns_hostname))
return 0;
free_and_replace(m->mdns_hostname, mdns_hostname);
manager_refresh_rrs(m);
+ (void) manager_send_changed(m, "LLMNRHostname");
return 0;
}
.dns_stub_tcp_fd = -1,
.hostname_fd = -1,
- .llmnr_support = RESOLVE_SUPPORT_YES,
- .mdns_support = RESOLVE_SUPPORT_YES,
+ .llmnr_support = DEFAULT_LLMNR_MODE,
+ .mdns_support = DEFAULT_MDNS_MODE,
.dnssec_mode = DEFAULT_DNSSEC_MODE,
.dns_over_tls_mode = DEFAULT_DNS_OVER_TLS_MODE,
- .enable_cache = true,
+ .enable_cache = DNS_CACHE_MODE_YES,
.dns_stub_listener_mode = DNS_STUB_LISTENER_YES,
.read_resolv_conf = true,
.need_builtin_fallbacks = true,
.etc_hosts_last = USEC_INFINITY,
.etc_hosts_mtime = USEC_INFINITY,
+ .etc_hosts_ino = 0,
+ .etc_hosts_dev = 0,
.read_etc_hosts = true,
};
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;
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);
manager_mdns_stop(m);
manager_dns_stub_stop(m);
+ bus_verify_polkit_async_registry_free(m->polkit_registry);
+
sd_bus_flush_close_unref(m->bus);
sd_event_source_unref(m->sigusr1_event_source);
free_and_replace(m->mdns_hostname, k);
manager_refresh_rrs(m);
+ (void) manager_send_changed(m, "LLMNRHostname");
return 0;
}
void manager_cleanup_saved_user(Manager *m) {
_cleanup_closedir_ DIR *d = NULL;
struct dirent *de;
- int r;
assert(m);
if (dot_or_dot_dot(de->d_name))
continue;
- r = parse_ifindex(de->d_name, &ifindex);
- if (r < 0) /* Probably some temporary file from a previous run. Delete it */
+ ifindex = parse_ifindex(de->d_name);
+ if (ifindex < 0) /* Probably some temporary file from a previous run. Delete it */
goto rm;
l = hashmap_get(m->links, INT_TO_PTR(ifindex));
continue;
rm:
- p = strappend("/run/systemd/resolve/netif/", de->d_name);
+ p = path_join("/run/systemd/resolve/netif", de->d_name);
if (!p) {
log_oom();
return;