X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flogin%2Finhibit.c;h=e94843be7f5fb8f68f0f9c1aa73ee68b970b38be;hb=ce0fc5f5f6debc6e37ac3ab0a3ea1c9c35b3ed99;hp=9b6613340f2324ba53fbbb547733016b1f606682;hpb=f274ece0f76b5709408821e317e87aef76123db6;p=elogind.git diff --git a/src/login/inhibit.c b/src/login/inhibit.c index 9b6613340..e94843be7 100644 --- a/src/login/inhibit.c +++ b/src/login/inhibit.c @@ -42,7 +42,7 @@ static enum { } arg_action = ACTION_INHIBIT; static int inhibit(DBusConnection *bus, DBusError *error) { - DBusMessage *reply = NULL; + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; int r; r = bus_method_call_with_reply( @@ -66,13 +66,11 @@ static int inhibit(DBusConnection *bus, DBusError *error) { DBUS_TYPE_INVALID)) r = -EIO; - dbus_message_unref(reply); - return r; } static int print_inhibitors(DBusConnection *bus, DBusError *error) { - DBusMessage *reply = NULL; + _cleanup_dbus_message_unref_ DBusMessage *reply = NULL; unsigned n = 0; DBusMessageIter iter, sub, sub2; int r; @@ -99,18 +97,9 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) { goto finish; } - printf("%-21s %-20s %-20s %-5s %6s %6s\n", - "WHAT", - "WHO", - "WHY", - "MODE", - "UID", - "PID"); - dbus_message_iter_recurse(&iter, &sub); while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { const char *what, *who, *why, *mode; - char *ewho, *ewhy; dbus_uint32_t uid, pid; if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRUCT) { @@ -130,27 +119,24 @@ static int print_inhibitors(DBusConnection *bus, DBusError *error) { goto finish; } - ewho = ellipsize(who, 20, 66); - ewhy = ellipsize(why, 20, 66); - - printf("%-21s %-20s %-20s %-5s %6lu %6lu\n", - what, ewho ? ewho : who, ewhy ? ewhy : why, mode, (unsigned long) uid, (unsigned long) pid); - - free(ewho); - free(ewhy); + printf(" Who: %s (UID %lu, PID %lu)\n" + " What: %s\n" + " Why: %s\n" + " Mode: %s\n\n", + who, (unsigned long) uid, (unsigned long) pid, + what, + why, + mode); dbus_message_iter_next(&sub); n++; } - printf("\n%u inhibitors listed.\n", n); + printf("%u inhibitors listed.\n", n); r = 0; finish: - if (reply) - dbus_message_unref(reply); - return r; } @@ -239,7 +225,10 @@ static int parse_argv(int argc, char *argv[]) { } } - if (arg_action == ACTION_INHIBIT && optind >= argc) { + if (arg_action == ACTION_INHIBIT && argc == 1) + arg_action = ACTION_LIST; + + else if (arg_action == ACTION_INHIBIT && optind >= argc) { log_error("Missing command line to execute."); return -EINVAL; }