From: Zbigniew Jędrzejewski-Szmek Date: Wed, 12 Jun 2024 08:24:52 +0000 (+0200) Subject: shared/clock-util: small modernization X-Git-Tag: v257-rc1~1133^2~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18c5979465f4d4f60fbc8ed34d98f14a257bb1ff;p=thirdparty%2Fsystemd.git shared/clock-util: small modernization --- diff --git a/src/shared/clock-util.c b/src/shared/clock-util.c index 83662e75c10..9bbfdbae2eb 100644 --- a/src/shared/clock-util.c +++ b/src/shared/clock-util.c @@ -1,6 +1,5 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ -#include #include #include #include @@ -13,8 +12,7 @@ #include "macro.h" #include "string-util.h" -int clock_is_localtime(const char* adjtime_path) { - _cleanup_fclose_ FILE *f = NULL; +int clock_is_localtime(const char *adjtime_path) { int r; if (!adjtime_path) @@ -27,45 +25,42 @@ int clock_is_localtime(const char* adjtime_path) { * 0 * UTC */ - f = fopen(adjtime_path, "re"); - if (f) { - _cleanup_free_ char *line = NULL; - unsigned i; - - for (i = 0; i < 2; i++) { /* skip the first two lines */ - r = read_line(f, LONG_LINE_MAX, NULL); - if (r < 0) - return r; - if (r == 0) - return false; /* less than three lines → default to UTC */ - } - - r = read_line(f, LONG_LINE_MAX, &line); + _cleanup_fclose_ FILE *f = fopen(adjtime_path, "re"); + if (!f) { + if (errno != ENOENT) + return -errno; + + /* adjtime_path not present → default to UTC */ + return false; + } + + _cleanup_free_ char *line = NULL; + for (unsigned i = 0; i < 2; i++) { /* skip the first two lines */ + r = read_line(f, LONG_LINE_MAX, NULL); if (r < 0) return r; if (r == 0) return false; /* less than three lines → default to UTC */ + } - return streq(line, "LOCAL"); - - } else if (errno != ENOENT) - return -errno; + r = read_line(f, LONG_LINE_MAX, &line); + if (r < 0) + return r; + if (r == 0) + return false; /* less than three lines → default to UTC */ - /* adjtime not present → default to UTC */ - return false; + return streq(line, "LOCAL"); } int clock_set_timezone(int *ret_minutesdelta) { struct timespec ts; struct tm tm; - int minutesdelta; - struct timezone tz; assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0); assert_se(localtime_r(&ts.tv_sec, &tm)); - minutesdelta = tm.tm_gmtoff / 60; + int minutesdelta = tm.tm_gmtoff / 60; - tz = (struct timezone) { + struct timezone tz = { .tz_minuteswest = -minutesdelta, .tz_dsttime = 0, /* DST_NONE */ }; diff --git a/src/shared/clock-util.h b/src/shared/clock-util.h index 93fbaeb56e7..d8992f6074e 100644 --- a/src/shared/clock-util.h +++ b/src/shared/clock-util.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -int clock_is_localtime(const char* adjtime_path); +int clock_is_localtime(const char *adjtime_path); int clock_set_timezone(int *ret_minutesdelta); #define EPOCH_CLOCK_FILE "/usr/lib/clock-epoch"