return 0;
}
+static int manager_dns_configuration_listen(Manager *m);
+
static int on_dns_configuration_event(
sd_varlink *link,
sd_json_variant *parameters,
assert(link);
if (error_id) {
+ if (streq(error_id, SD_VARLINK_ERROR_DISCONNECTED)) {
+ log_debug("DNS configuration monitor disconnected, reconnecting...");
+
+ return manager_dns_configuration_listen(m);
+ }
+
log_warning("DNS configuration event error, ignoring: %s", error_id);
return 0;
}
if (!m->requires_dns)
return 0;
+ m->varlink_client = sd_varlink_unref(m->varlink_client);
+
r = sd_varlink_connect_address(&vl, "/run/systemd/resolve/io.systemd.Resolve.Monitor");
if (r < 0)
return log_error_errno(r, "Failed to connect to io.systemd.Resolve.Monitor: %m");