X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Ftimedate%2Ftimedatectl.c;fp=src%2Ftimedate%2Ftimedatectl.c;h=44d329ecc2817c4408bd158139e43f731b500a62;hp=9e04f8f7bf6ff64adcf22167d7ad900cec0e8002;hb=3e5e74d5b7f6fcbeff7b6e4e06abd931aab14c48;hpb=c03d5c8e766792a298d8bcdf550c2fd01dd7b959 diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 9e04f8f7b..44d329ecc 100644 --- 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")) { - 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"); } + 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; - } 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