X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogin%2Finhibit.c;h=d5ea1d913cd91b404e1ace06ced17004ce93fb7a;hp=e20af74ef0949d873b9f44b93ec6e4aa0021d61a;hb=edc501d4674dadc304d45a7e1c5b69e207eb8cd4;hpb=5b30bef856e89a571df57b7b953e9a1409d9aced diff --git a/src/login/inhibit.c b/src/login/inhibit.c index e20af74ef..d5ea1d913 100644 --- a/src/login/inhibit.c +++ b/src/login/inhibit.c @@ -64,7 +64,7 @@ static int inhibit(sd_bus *bus, sd_bus_error *error) { if (r < 0) 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,18 +112,17 @@ 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; } -static int help(void) { - +static void help(void) { printf("%s [OPTIONS...] {COMMAND} ...\n\n" "Execute a process while inhibiting shutdown/sleep/idle.\n\n" " -h --help Show this help\n" @@ -135,10 +134,8 @@ static int help(void) { " --who=STRING A descriptive string who is inhibiting\n" " --why=STRING A descriptive string why is being inhibited\n" " --mode=MODE One of block or delay\n" - " --list List active inhibitors\n", - program_invocation_short_name); - - return 0; + " --list List active inhibitors\n" + , program_invocation_short_name); } static int parse_argv(int argc, char *argv[]) { @@ -168,12 +165,13 @@ static int parse_argv(int argc, char *argv[]) { assert(argc >= 0); assert(argv); - while ((c = getopt_long(argc, argv, "+h", options, NULL)) >= 0) { + while ((c = getopt_long(argc, argv, "+h", options, NULL)) >= 0) switch (c) { case 'h': - return help(); + help(); + return 0; case ARG_VERSION: puts(PACKAGE_STRING); @@ -206,7 +204,6 @@ static int parse_argv(int argc, char *argv[]) { default: assert_not_reached("Unhandled option"); } - } if (arg_action == ACTION_INHIBIT && argc == 1) arg_action = ACTION_LIST; @@ -221,7 +218,7 @@ static int parse_argv(int argc, char *argv[]) { int main(int argc, char *argv[]) { _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_bus_unref_ sd_bus *bus = NULL; + _cleanup_bus_close_unref_ sd_bus *bus = NULL; int r; log_parse_environment(); @@ -233,7 +230,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;