summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/network/networkd-link.c6
-rw-r--r--src/network/networkd-manager.c7
-rw-r--r--units/systemd-networkd.service.in2
3 files changed, 12 insertions, 3 deletions
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 7f692d1f9b..f1a2695e83 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -325,11 +325,15 @@ static int set_hostname(sd_bus *bus, const char *hostname) {
_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",
diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
index 8eaf101df3..c630ed7ed9 100644
--- a/src/network/networkd-manager.c
+++ b/src/network/networkd-manager.c
@@ -55,7 +55,7 @@ int manager_new(Manager **ret) {
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();
@@ -288,6 +288,11 @@ int manager_rtnl_listen(Manager *m) {
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;
diff --git a/units/systemd-networkd.service.in b/units/systemd-networkd.service.in
index 850193b53c..835c07ddcd 100644
--- a/units/systemd-networkd.service.in
+++ b/units/systemd-networkd.service.in
@@ -9,7 +9,7 @@
Description=Network Service
Documentation=man:systemd-networkd.service(8)
DefaultDependencies=no
-After=dbus.socket
+After=dbus.service
Before=network.target
Wants=network.target
ConditionCapability=CAP_NET_ADMIN