1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-06 16:59:03 +03:00

timedated: show the short timezone name when changing timezones in logs

This commit is contained in:
Lennart Poettering 2018-05-29 12:36:40 +02:00
parent 7ef7e15bd7
commit 8a50b96f81

View File

@ -552,14 +552,17 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
return sd_bus_error_set_errnof(error, r, "Failed to set time zone: %m"); return sd_bus_error_set_errnof(error, r, "Failed to set time zone: %m");
} }
/* 2. Tell the kernel our timezone */ /* 2. Make glibc notice the new timezone */
tzset();
/* 3. Tell the kernel our timezone */
clock_set_timezone(NULL); clock_set_timezone(NULL);
if (c->local_rtc) { if (c->local_rtc) {
struct timespec ts; struct timespec ts;
struct tm *tm; struct tm *tm;
/* 3. Sync RTC from system clock, with the new delta */ /* 4. Sync RTC from system clock, with the new delta */
assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0); assert_se(clock_gettime(CLOCK_REALTIME, &ts) == 0);
assert_se(tm = localtime(&ts.tv_sec)); assert_se(tm = localtime(&ts.tv_sec));
clock_set_hwclock(tm); clock_set_hwclock(tm);
@ -568,7 +571,9 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
log_struct(LOG_INFO, log_struct(LOG_INFO,
"MESSAGE_ID=" SD_MESSAGE_TIMEZONE_CHANGE_STR, "MESSAGE_ID=" SD_MESSAGE_TIMEZONE_CHANGE_STR,
"TIMEZONE=%s", c->zone, "TIMEZONE=%s", c->zone,
LOG_MESSAGE("Changed time zone to '%s'.", c->zone), "TIMEZONE_SHORTNAME=%s", tzname[daylight],
"DAYLIGHT=%i", daylight,
LOG_MESSAGE("Changed time zone to '%s' (%s).", c->zone, tzname[daylight]),
NULL); NULL);
(void) sd_bus_emit_properties_changed(sd_bus_message_get_bus(m), "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "Timezone", NULL); (void) sd_bus_emit_properties_changed(sd_bus_message_get_bus(m), "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "Timezone", NULL);