X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdbus.c;h=64988c7ccc5831e52e12b4364c7119db81520fe1;hb=c0f9c7da07fccafed646e0a15df9bc132e3fc7fb;hp=48051f25fb76f79ebfa93def6153f371d0f346c7;hpb=d83685ac1b1c33cf2132bca6374e65ed2de276a7;p=elogind.git diff --git a/src/dbus.c b/src/dbus.c index 48051f25f..64988c7cc 100644 --- a/src/dbus.c +++ b/src/dbus.c @@ -982,7 +982,7 @@ fail: return r; } -int bus_init(Manager *m) { +int bus_init(Manager *m, bool try_bus_connect) { int r; if (set_ensure_allocated(&m->bus_connections, trivial_hash_func, trivial_compare_func) < 0 || @@ -1003,9 +1003,13 @@ int bus_init(Manager *m) { return -ENOMEM; } - if ((r = bus_init_system(m)) < 0 || - (r = bus_init_api(m)) < 0 || - (r = bus_init_private(m)) < 0) + if (try_bus_connect) { + if ((r = bus_init_system(m)) < 0 || + (r = bus_init_api(m)) < 0) + return r; + } + + if ((r = bus_init_private(m)) < 0) return r; return 0; @@ -1357,6 +1361,7 @@ static const char *error_to_dbus(int error) { return DBUS_ERROR_FILE_EXISTS; case -ETIMEDOUT: + case -ETIME: return DBUS_ERROR_TIMEOUT; case -EIO: