chiark / gitweb /
service: fix sysv-less build
[elogind.git] / src / dbus-common.c
index 11d989d7c34de57a7dd8a62b9f41ef205f5804ec..69593cd183312cf123167f56d8e67dac0cc55e61 100644 (file)
@@ -1,4 +1,4 @@
-/*-*- Mode: C; c-basic-offset: 8 -*-*/
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 
 /***
   This file is part of systemd.
@@ -62,7 +62,7 @@ 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("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) {
@@ -76,7 +76,7 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private, DBusError *
                         *private = true;
 
         } else {
-                if (!(bus = dbus_bus_get(t, error)))
+                if (!(bus = dbus_bus_get_private(t, error)))
                         return -EIO;
 
                 if (private)
@@ -88,3 +88,14 @@ int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private, DBusError *
         *_bus = bus;
         return 0;
 }
+
+const char *bus_error_message(const DBusError *error) {
+        assert(error);
+
+        /* Sometimes the D-Bus server is a little bit too verbose with
+         * its error messages, so let's override them here */
+        if (dbus_error_has_name(error, DBUS_ERROR_ACCESS_DENIED))
+                return "Access denied";
+
+        return error->message;
+}