chiark / gitweb /
Introduce udev object cleanup functions
[elogind.git] / src / login / inhibit.c
index 9cb321fc8fb1e7cc8d329decdb3d2617a3de409e..29e50c1447c920803d4937f625f8f247e204fedc 100644 (file)
@@ -96,6 +96,7 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) {
         dbus_message_iter_recurse(&iter, &sub);
         while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) {
                 const char *what, *who, *why, *mode;
+                _cleanup_free_ char *comm = NULL, *u = NULL;
                 dbus_uint32_t uid, pid;
 
                 if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRUCT)
@@ -111,11 +112,14 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) {
                     bus_iter_get_basic_and_next(&sub2, DBUS_TYPE_UINT32, &pid, false) < 0)
                         return -EIO;
 
-                printf("     Who: %s (UID %lu, PID %lu)\n"
+                get_process_comm(pid, &comm);
+                u = uid_to_name(uid);
+
+                printf("     Who: %s (UID %lu/%s, PID %lu/%s)\n"
                        "    What: %s\n"
                        "     Why: %s\n"
                        "    Mode: %s\n\n",
-                       who, (unsigned long) uid, (unsigned long) pid,
+                       who, (unsigned long) uid, strna(u), (unsigned long) pid, strna(comm),
                        what,
                        why,
                        mode);
@@ -229,7 +233,7 @@ int main(int argc, char *argv[]) {
         int r, exit_code = 0;
         DBusConnection *bus = NULL;
         DBusError error;
-        int _cleanup_close_ fd = -1;
+        _cleanup_close_ int fd = -1;
 
         dbus_error_init(&error);
 
@@ -251,7 +255,7 @@ int main(int argc, char *argv[]) {
 
                 r = print_inhibitors(bus, &error);
                 if (r < 0) {
-                        log_error("Failed to list inhibitors: %s", bus_error_message_or_strerror(&error, -r));
+                        log_error("Failed to list inhibitors: %s", bus_error(&error, r));
                         goto finish;
                 }
 
@@ -266,7 +270,7 @@ int main(int argc, char *argv[]) {
                 free(w);
 
                 if (fd < 0) {
-                        log_error("Failed to inhibit: %s", bus_error_message_or_strerror(&error, -r));
+                        log_error("Failed to inhibit: %s", bus_error(&error, r));
                         r = fd;
                         goto finish;
                 }