_cleanup_bus_message_unref_ sd_bus_message *m = NULL;
int r = 0;
- assert(bus);
assert(hostname);
log_debug("Setting transient hostname: '%s'", hostname);
+ if (!bus) { /* TODO: replace by assert when we can rely on kdbus */
+ log_info("Not connected to system bus, ignoring transient hostname.");
+ return 0;
+ }
+
r = sd_bus_message_new_method_call(
bus,
"org.freedesktop.hostname1",
assert(link->manager->event);
if (!link->dhcp) {
- link->dhcp = sd_dhcp_client_new(link->manager->event);
- if (!link->dhcp)
- return -ENOMEM;
+ r = sd_dhcp_client_new(&link->dhcp);
+ if (r < 0)
+ return r;
+
+ r = sd_dhcp_client_attach_event(link->dhcp, NULL, 0);
+ if (r < 0)
+ return r;
r = sd_dhcp_client_set_index(link->dhcp, link->ifindex);
if (r < 0)
if ((link->flags & IFF_UP) != (flags & IFF_UP))
log_info_link(link,
- "power %s", flags & IFF_UP ? "on": "off");
+ "link is %s", flags & IFF_UP ? "up": "down");
if ((link->flags & IFF_LOWER_UP) != (flags & IFF_LOWER_UP)) {
if (flags & IFF_LOWER_UP) {
return r;
}
- r = sd_rtnl_message_link_set_flags(req, IFF_UP);
+ r = sd_rtnl_message_link_set_flags(req, IFF_UP, IFF_UP);
if (r < 0) {
log_error_link(link, "Could not set link flags: %s", strerror(-r));
return r;