diff options
Diffstat (limited to 'src/timedate/timedated.c')
-rw-r--r-- | src/timedate/timedated.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index acfb507548..7eed31c477 100644 --- a/src/timedate/timedated.c +++ b/src/timedate/timedated.c @@ -176,20 +176,20 @@ static int read_data(void) { } } -#ifdef HAVE_SYSV_COMPAT +#ifdef TARGET_FEDORA + r = parse_env_file("/etc/sysconfig/clock", NEWLINE, + "ZONE", &tz.zone, + NULL); + + if (r < 0 && r != -ENOENT) + log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); +#endif + +#ifdef HAVE_DEBIAN r = read_one_line_file("/etc/timezone", &tz.zone); if (r < 0) { if (r != -ENOENT) log_warning("Failed to read /etc/timezone: %s", strerror(-r)); - -#ifdef TARGET_FEDORA - r = parse_env_file("/etc/sysconfig/clock", NEWLINE, - "ZONE", &tz.zone, - NULL); - - if (r < 0 && r != -ENOENT) - log_warning("Failed to read /etc/sysconfig/clock: %s", strerror(-r)); -#endif } #endif @@ -207,13 +207,16 @@ have_timezone: static int write_data_timezone(void) { int r = 0; _cleanup_free_ char *p = NULL; + +#ifdef TARGET_DEBIAN struct stat st; +#endif if (!tz.zone) { if (unlink("/etc/localtime") < 0 && errno != ENOENT) r = -errno; -#ifdef HAVE_SYSV_COMPAT +#ifdef TARGET_DEBIAN if (unlink("/etc/timezone") < 0 && errno != ENOENT) r = -errno; #endif @@ -229,7 +232,7 @@ static int write_data_timezone(void) { if (r < 0) return r; -#ifdef HAVE_SYSV_COMPAT +#ifdef TARGET_DEBIAN if (stat("/etc/timezone", &st) == 0 && S_ISREG(st.st_mode)) { r = write_one_line_file_atomic("/etc/timezone", tz.zone); if (r < 0) |