X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftimedate%2Ftimedatectl.c;h=9926a8a8803b83591a42ef5000156dfd31164a03;hb=84f6181c2ac99a0514ca5e0c8fc8c8e284caf789;hp=777a3a32e320e9410289866f739172a01614470c;hpb=ffc06c3513d9a0693c7f810d03b20705127ba55a;p=elogind.git diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 777a3a32e..9926a8a88 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -193,14 +193,14 @@ 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 = {}; - const struct bus_properties_map map[] = { - { "s", "Timezone", &info.timezone }, - { "b", "LocalRTC", &info.rtc_local }, - { "b", "NTP", &info.ntp_enabled }, - { "b", "CanNTP", &info.ntp_capable }, - { "b", "NTPSynchronized", &info.ntp_synced}, - { "t", "TimeUSec", &info.time }, - { "t", "RTCTimeUSec", &info.rtc_time }, + static const struct bus_properties_map map[] = { + { "Timezone", "s", NULL, offsetof(StatusInfo, timezone) }, + { "LocalRTC", "b", NULL, offsetof(StatusInfo, rtc_local) }, + { "NTP", "b", NULL, offsetof(StatusInfo, ntp_enabled) }, + { "CanNTP", "b", NULL, offsetof(StatusInfo, ntp_capable) }, + { "NTPSynchronized", "b", NULL, offsetof(StatusInfo, ntp_synced) }, + { "TimeUSec", "t", NULL, offsetof(StatusInfo, time) }, + { "RTCTimeUSec", "t", NULL, offsetof(StatusInfo, rtc_time) }, {} }; int r; @@ -210,7 +210,8 @@ static int show_status(sd_bus *bus, char **args, unsigned n) { r = bus_map_all_properties(bus, "org.freedesktop.timedate1", "/org/freedesktop/timedate1", - map); + map, + &info); if (r < 0) goto fail; @@ -580,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) + if (r <= 0) goto finish; - else if (r == 0) { - ret = EXIT_SUCCESS; - 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; }