X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fcore%2Fmanager.c;h=c75c1e1a4ebace040fc5753131d549dde5352147;hb=eb9da376d76b48585b3b63b4f91903b54f7abd36;hp=b45a2e11a5a1cde016bd0b529e9468fc33346a10;hpb=51d122af23533b0b8318911c4fc8b128ad8eafb7;p=elogind.git diff --git a/src/core/manager.c b/src/core/manager.c index b45a2e11a..c75c1e1a4 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -486,6 +486,7 @@ static int manager_default_environment(Manager *m) { int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **_m) { Manager *m; int r = -ENOMEM; + bool try_bus_connect = false; assert(_m); assert(running_as >= 0); @@ -557,15 +558,18 @@ int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **_m) { if (r < 0) goto fail; - /* Try to connect to the busses, if possible. */ - if ((running_as == SYSTEMD_USER && getenv("DBUS_SESSION_BUS_ADDRESS")) || - running_as == SYSTEMD_SYSTEM) { - r = bus_init(m, reexecuting || running_as != SYSTEMD_SYSTEM); - if (r < 0) - goto fail; - } else + if (running_as == SYSTEMD_SYSTEM) + try_bus_connect = reexecuting; + else if (getenv("DBUS_SESSION_BUS_ADDRESS")) + try_bus_connect = true; + else log_debug("Skipping DBus session bus connection attempt - no DBUS_SESSION_BUS_ADDRESS set..."); + /* Try to connect to the busses, if possible. */ + r = bus_init(m, try_bus_connect); + if (r < 0) + goto fail; + m->taint_usr = dir_is_empty("/usr") > 0; *_m = m; @@ -672,7 +676,7 @@ static unsigned manager_dispatch_gc_queue(Manager *m) { unit_gc_sweep(u, gc_marker); - LIST_REMOVE(Unit, gc_queue, m->gc_queue, u); + LIST_REMOVE(gc_queue, m->gc_queue, u); u->in_gc_queue = false; n++; @@ -1792,7 +1796,7 @@ int manager_loop(Manager *m) { manager_check_finished(m); /* There might still be some zombies hanging around from - * before we were exec()'ed. Leat's reap them */ + * before we were exec()'ed. Let's reap them. */ r = manager_dispatch_sigchld(m); if (r < 0) return r; @@ -2058,7 +2062,7 @@ void manager_dispatch_bus_query_pid_done( int manager_open_serialization(Manager *m, FILE **_f) { char *path = NULL; - int fd; + int fd = -1; FILE *f; assert(_f);