]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
timedated: show the short timezone name when changing timezones in logs
authorLennart Poettering <lennart@poettering.net>
Tue, 29 May 2018 10:36:40 +0000 (12:36 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 29 May 2018 14:31:18 +0000 (16:31 +0200)
src/timedate/timedated.c

index e066320cffe4ade13fa2d8014fa6fe9bab893580..b7a20910622fcef82a92e249a68e08d9f452aee6 100644 (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");
         }
 
-        /* 2. Tell the kernel our timezone */
+        /* 2. Make glibc notice the new timezone */
+        tzset();
+
+        /* 3. Tell the kernel our timezone */
         clock_set_timezone(NULL);
 
         if (c->local_rtc) {
                 struct timespec ts;
                 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(tm = localtime(&ts.tv_sec));
                 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,
                    "MESSAGE_ID=" SD_MESSAGE_TIMEZONE_CHANGE_STR,
                    "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);
 
         (void) sd_bus_emit_properties_changed(sd_bus_message_get_bus(m), "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "Timezone", NULL);