OpenWrt – Rev 1

Subversion Repositories:
Rev:
--- a/src/time/__tz.c
+++ b/src/time/__tz.c
@@ -25,6 +25,9 @@ static int r0[5], r1[5];
 static const unsigned char *zi, *trans, *index, *types, *abbrevs, *abbrevs_end;
 static size_t map_size;
 
+static const char *tzfile;
+static size_t tzfile_size;
+
 static char old_tz_buf[32];
 static char *old_tz = old_tz_buf;
 static size_t old_tz_size = sizeof old_tz_buf;
@@ -125,6 +128,15 @@ static void do_tzset()
                "/usr/share/zoneinfo/\0/share/zoneinfo/\0/etc/zoneinfo/\0";
 
        s = getenv("TZ");
+
+       /* if TZ is empty try to read it from /etc/TZ */
+       if (!s || !*s) {
+               if (tzfile)
+                       __munmap((void*)tzfile, tzfile_size);
+
+               s = tzfile = (void *)__map_file("/etc/TZ", &tzfile_size);
+       }
+
        if (!s) s = "/etc/localtime";
        if (!*s) s = __utc;