return 1;
}
-int bus_connect(DBusBusType t, DBusConnection **_bus, DBusError *error) {
+int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private, DBusError *error) {
DBusConnection *bus;
assert(_bus);
/* If we are root, then let's not go via the bus */
if (geteuid() == 0 && t == DBUS_BUS_SYSTEM) {
- if (!(bus = dbus_connection_open("unix:abstract=/org/freedesktop/systemd1/private", error)))
+ if (!(bus = dbus_connection_open_private("unix:abstract=/org/freedesktop/systemd1/private", error)))
return -EIO;
if (bus_check_peercred(bus) < 0) {
dbus_set_error_const(error, DBUS_ERROR_ACCESS_DENIED, "Failed to verify owner of bus.");
return -EACCES;
}
+
+ if (private)
+ *private = true;
+
} else {
- if (!(bus = dbus_bus_get(t, error)))
+ if (!(bus = dbus_bus_get_private(t, error)))
return -EIO;
+
+ if (private)
+ *private = false;
}
dbus_connection_set_exit_on_disconnect(bus, FALSE);