X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fdbus-common.c;h=bb9cf2e2abfdec0acbc6f354c6456f10b07faafb;hb=e677657e8dddb33d1f1e32eda0ebc126e08a538d;hp=25b718ec026533463341bb382eadbbd3d03e35e8;hpb=a8f11321c209830a35edd0357e8def5d4437d854;p=elogind.git diff --git a/src/dbus-common.c b/src/dbus-common.c index 25b718ec0..bb9cf2e2a 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);