X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=sidebyside;f=src%2Flogin%2Finhibit.c;h=24e8fb04bd5544d733ff3b92ebcf581e7aa62f48;hb=638ca89c53e2b897cfb3f627f4acbc7d09af2f4c;hp=404881be6ef7aaa2d6b85552c2fd85838df948c7;hpb=45a7c6b5d373170eda2fa7bdb8fa81b49865f316;p=elogind.git diff --git a/src/login/inhibit.c b/src/login/inhibit.c index 404881be6..24e8fb04b 100644 --- a/src/login/inhibit.c +++ b/src/login/inhibit.c @@ -62,9 +62,9 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { r = sd_bus_message_read_basic(reply, SD_BUS_TYPE_UNIX_FD, &fd); if (r < 0) - return -EIO; + return r; - r = dup(fd); + r = fcntl(fd, F_DUPFD_CLOEXEC, 3); if (r < 0) return -errno; @@ -92,7 +92,7 @@ static int print_inhibitors(sd_bus *bus, sd_bus_error *error) { r = sd_bus_message_enter_container(reply, SD_BUS_TYPE_ARRAY, "(ssssuu)"); if (r < 0) - return -EIO; + return bus_log_parse_error(r); while ((r = sd_bus_message_read(reply, "(ssssuu)", &what, &who, &why, &mode, &uid, &pid)) > 0) { _cleanup_free_ char *comm = NULL, *u = NULL; @@ -100,11 +100,11 @@ static int print_inhibitors(sd_bus *bus, sd_bus_error *error) { get_process_comm(pid, &comm); u = uid_to_name(uid); - printf(" Who: %s (UID %lu/%s, PID %lu/%s)\n" + printf(" Who: %s (UID "UID_FMT"/%s, PID "PID_FMT"/%s)\n" " What: %s\n" " Why: %s\n" " Mode: %s\n\n", - who, (unsigned long) uid, strna(u), (unsigned long) pid, strna(comm), + who, uid, strna(u), pid, strna(comm), what, why, mode); @@ -112,11 +112,11 @@ static int print_inhibitors(sd_bus *bus, sd_bus_error *error) { n++; } if (r < 0) - return -EIO; + return bus_log_parse_error(r); r = sd_bus_message_exit_container(reply); if (r < 0) - return -EIO; + return bus_log_parse_error(r); printf("%u inhibitors listed.\n", n); return 0; @@ -160,7 +160,7 @@ static int parse_argv(int argc, char *argv[]) { { "why", required_argument, NULL, ARG_WHY }, { "mode", required_argument, NULL, ARG_MODE }, { "list", no_argument, NULL, ARG_LIST }, - { NULL, 0, NULL, 0 } + {} }; int c; @@ -173,8 +173,7 @@ static int parse_argv(int argc, char *argv[]) { switch (c) { case 'h': - help(); - return 0; + return help(); case ARG_VERSION: puts(PACKAGE_STRING); @@ -201,9 +200,11 @@ static int parse_argv(int argc, char *argv[]) { arg_action = ACTION_LIST; break; - default: - log_error("Unknown option code %c", c); + case '?': return -EINVAL; + + default: + assert_not_reached("Unhandled option"); } } @@ -232,7 +233,7 @@ int main(int argc, char *argv[]) { if (r == 0) return EXIT_SUCCESS; - r = sd_bus_open_system(&bus); + r = sd_bus_default_system(&bus); if (r < 0) { log_error("Failed to connect to bus: %s", strerror(-r)); return EXIT_FAILURE;