X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-manager.c;h=ce97ac0778ca7e6a25698bd364ed301dd11ab9e5;hb=60c35566600f45350c37f152c1093018972bd9a5;hp=4617f118675505c52f2f811f4d7c75dbef35ea79;hpb=3175fcdec5d748e8db85a3e7fe1cb67f5f6a865d;p=elogind.git diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 4617f1186..ce97ac077 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -534,13 +534,18 @@ static bool manager_check_idle(void *userdata) { int manager_run(Manager *m) { assert(m); - return bus_event_loop_with_idle( - m->event, - m->bus, - "org.freedesktop.network1", - DEFAULT_EXIT_USEC, - manager_check_idle, - m); + if (m->bus) + return bus_event_loop_with_idle( + m->event, + m->bus, + "org.freedesktop.network1", + DEFAULT_EXIT_USEC, + manager_check_idle, + m); + else + /* failed to connect to the bus, so we lose exit-on-idle logic, + this should not happen except if dbus is not around at all */ + return sd_event_loop(m->event); } int manager_load_config(Manager *m) {