chiark / gitweb /
bus: dbus-daemons' access messages are a bit too verbose
[elogind.git] / src / libsystemd-bus / bus-error.c
index c347b101bc479e809478ea063d6f687ecf5ffd26..35e261464067abfe8c18807fcfeaaa4b4f0cc5c5 100644 (file)
@@ -448,11 +448,18 @@ int sd_bus_error_set_errnof(sd_bus_error *e, int error, const char *format, ...)
 
 const char *bus_error_message(const sd_bus_error *e, int error) {
 
+        if (e) {
+                /* Sometimes the D-Bus server is a little bit too verbose with
+                 * its error messages, so let's override them here */
+                if (sd_bus_error_has_name(e, SD_BUS_ERROR_ACCESS_DENIED))
+                        return "Access denied";
+
+                if (e->message)
+                        return e->message;
+        }
+
         if (error < 0)
                 error = -error;
 
-        if (e && e->message)
-                return e->message;
-
         return strerror(error);
 }