X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Ftimedate%2Ftimedatectl.c;h=6a36af04f7f4c7cf413954b8a84809abe09da84f;hp=461540e89b4db5b656bc3808e02257429264129d;hb=d5d217eae1b3ba978c4ddd6a2ef2de4621329662;hpb=9f6eb1cd58f2ddf2eb6ba0e4de056e13d938af75 diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 461540e89..6a36af04f 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -58,6 +58,9 @@ static void polkit_agent_open_if_enabled(void) { if (!arg_ask_password) return; + if (arg_transport != BUS_TRANSPORT_LOCAL) + return; + polkit_agent_open(); } @@ -191,7 +194,6 @@ static void print_status_info(const StatusInfo *i) { } static int show_status(sd_bus *bus, char **args, unsigned n) { - _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL; StatusInfo info = {}; static const struct bus_properties_map map[] = { { "Timezone", "s", NULL, offsetof(StatusInfo, timezone) }, @@ -410,12 +412,12 @@ static int help(void) { "Query or change system time and date settings.\n\n" " -h --help Show this help\n" " --version Show package version\n" - " --adjust-system-clock\n" - " Adjust system clock when changing local RTC mode\n" " --no-pager Do not pipe output into a pager\n" " --no-ask-password Do not prompt for password\n" " -H --host=[USER@]HOST Operate on remote host\n" - " -M --machine=CONTAINER Operate on local container\n\n" + " -M --machine=CONTAINER Operate on local container\n" + " --adjust-system-clock\n" + " Adjust system clock when changing local RTC mode\n\n" "Commands:\n" " status Show current time settings\n" " set-time TIME Set system time\n" @@ -445,7 +447,7 @@ static int parse_argv(int argc, char *argv[]) { { "machine", required_argument, NULL, 'M' }, { "no-ask-password", no_argument, NULL, ARG_NO_ASK_PASSWORD }, { "adjust-system-clock", no_argument, NULL, ARG_ADJUST_SYSTEM_CLOCK }, - { NULL, 0, NULL, 0 } + {} }; int c; @@ -458,8 +460,7 @@ static int parse_argv(int argc, char *argv[]) { switch (c) { case 'h': - help(); - return 0; + return help(); case ARG_VERSION: puts(PACKAGE_STRING); @@ -492,8 +493,7 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; default: - log_error("Unknown option code %c", c); - return -EINVAL; + assert_not_reached("Unhandled option"); } } @@ -581,33 +581,27 @@ static int timedatectl_main(sd_bus *bus, int argc, char *argv[]) { } int main(int argc, char *argv[]) { - int r, ret = EXIT_FAILURE; _cleanup_bus_unref_ sd_bus *bus = NULL; + int r; setlocale(LC_ALL, ""); log_parse_environment(); log_open(); r = parse_argv(argc, argv); - if (r < 0) - goto finish; - else if (r == 0) { - ret = EXIT_SUCCESS; + if (r <= 0) goto finish; - } r = bus_open_transport(arg_transport, arg_host, false, &bus); if (r < 0) { log_error("Failed to create bus connection: %s", strerror(-r)); - ret = EXIT_FAILURE; goto finish; } r = timedatectl_main(bus, argc, argv); - ret = r < 0 ? EXIT_FAILURE : r; finish: pager_close(); - return ret; + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; }