chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
timedatectl: fix when queried system has differn't timezone
[elogind.git]
/
src
/
timedate
/
timedatectl.c
diff --git
a/src/timedate/timedatectl.c
b/src/timedate/timedatectl.c
index 9e04f8f7bf6ff64adcf22167d7ad900cec0e8002..44d329ecc2817c4408bd158139e43f731b500a62 100644
(file)
--- a/
src/timedate/timedatectl.c
+++ b/
src/timedate/timedatectl.c
@@
-106,14
+106,21
@@
static void print_status_info(const StatusInfo *i) {
/* Enforce the values of /etc/localtime */
if (getenv("TZ")) {
/* Enforce the values of /etc/localtime */
if (getenv("TZ")) {
- fprintf(stderr, "Warning: Ignoring the TZ variable.
Reading the system's time zone setting only.
\n\n");
+ fprintf(stderr, "Warning: Ignoring the TZ variable.\n\n");
unsetenv("TZ");
}
unsetenv("TZ");
}
+ r = setenv("TZ", i->timezone, false);
+ if (r < 0) {
+ log_error_errno(errno, "Failed to set TZ environment variable: %m");
+ exit(EXIT_FAILURE);
+ }
+ tzset();
+
if (i->time != 0) {
sec = (time_t) (i->time / USEC_PER_SEC);
have_time = true;
if (i->time != 0) {
sec = (time_t) (i->time / USEC_PER_SEC);
have_time = true;
- } else if (
arg_transport == BUS_TRANSPORT_LOCAL
) {
+ } else if (
IN_SET(arg_transport, BUS_TRANSPORT_REMOTE, BUS_TRANSPORT_MACHINE)
) {
sec = time(NULL);
have_time = true;
} else
sec = time(NULL);
have_time = true;
} else