return r;
r = sd_bus_default_system(&m->bus);
- if (r < 0)
+ if (r < 0 && r != -ENOENT) /* TODO: drop when we can rely on kdbus */
return r;
m->udev = udev_new();
int manager_bus_listen(Manager *m) {
int r;
+ assert(m->event);
+
+ if (!m->bus) /* TODO: drop when we can rely on kdbus */
+ return 0;
+
r = sd_bus_attach_event(m->bus, m->event, 0);
if (r < 0)
return r;
Link *link;
Iterator i;
unsigned count = 0;
+ const char *domainname = NULL;
int r;
assert(m);
struct in_addr *nameservers;
size_t nameservers_size;
- r = sd_dhcp_client_get_dns(link->dhcp, &nameservers, &nameservers_size);
- if (r >= 0) {
- unsigned j;
+ if (link->network->dhcp_dns) {
+ r = sd_dhcp_client_get_dns(link->dhcp, &nameservers, &nameservers_size);
+ if (r >= 0) {
+ unsigned j;
+
+ for (j = 0; j < nameservers_size; j++)
+ append_dns(f, &nameservers[j], AF_INET, &count);
+ }
+ }
- for (j = 0; j < nameservers_size; j++)
- append_dns(f, &nameservers[j], AF_INET, &count);
+ if (link->network->dhcp_domainname && !domainname) {
+ r = sd_dhcp_client_get_domainname(link->dhcp, &domainname);
+ if (r >= 0)
+ fprintf(f, "domain %s\n", domainname);
}
}
}