diff options
Diffstat (limited to 'src/dbus-common.c')
-rw-r--r-- | src/dbus-common.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/dbus-common.c b/src/dbus-common.c index 25b718ec02..bb9cf2e2ab 100644 --- a/src/dbus-common.c +++ b/src/dbus-common.c @@ -104,8 +104,16 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private, DBusError * /* If we are root, then let's not go via the bus */ if (geteuid() == 0 && t == DBUS_BUS_SYSTEM) { - if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", error))) - return -EIO; + + if (!(bus = dbus_connection_open_private("unix:path=/dev/.run/systemd/private", error))) { +#ifndef LEGACY + dbus_error_free(error); + + /* Retry with the pre v21 socket name, to ease upgrades */ + if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", error))) +#endif + return -EIO; + } dbus_connection_set_exit_on_disconnect(bus, FALSE); |