| * Copyright (C) Igor Sysoev |
| * Copyright (C) Nginx, Inc. |
| * FreeBSD does not test /etc/localtime change, however, we can workaround it |
| * by calling tzset() with TZ and then without TZ to update timezone. |
| * The trick should work since FreeBSD 2.1.0. |
| * Linux does not test /etc/localtime change in localtime(), |
| * but may stat("/etc/localtime") several times in every strftime(), |
| * therefore we use it to update timezone. |
| * Solaris does not test /etc/TIMEZONE change too and no workaround available. |
| ngx_timezone_update(void) |
| strftime(buf, 4, "%H", t); |
| ngx_localtime(time_t s, ngx_tm_t *tm) |
| #if (NGX_HAVE_LOCALTIME_R) |
| (void) localtime_r(&s, tm); |
| ngx_libc_localtime(time_t s, struct tm *tm) |
| #if (NGX_HAVE_LOCALTIME_R) |
| (void) localtime_r(&s, tm); |
| ngx_libc_gmtime(time_t s, struct tm *tm) |
| #if (NGX_HAVE_LOCALTIME_R) |