From: Ryan Bloom Date: Fri, 7 Jan 2000 20:38:06 +0000 (+0000) Subject: Move some modules over to using ap_time_t instead of struct tm. X-Git-Tag: 1.3.10~24 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2dbb9e6e0a0968b423c90a33e4a4a2cc46852c82;p=apache Move some modules over to using ap_time_t instead of struct tm. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84407 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/generators/mod_autoindex.c b/modules/generators/mod_autoindex.c index df8bc7fabf..fb6dc1cc12 100644 --- a/modules/generators/mod_autoindex.c +++ b/modules/generators/mod_autoindex.c @@ -1273,7 +1273,7 @@ static void output_directories(struct ent **ar, int n, autoindex_config_rec *d, request_rec *r, int autoindex_opts, char keyid, char direction) { - int x; + int x, rv; char *name = r->uri; char *tp; int static_columns = (autoindex_opts & SUPPRESS_COLSORT); @@ -1404,8 +1404,11 @@ static void output_directories(struct ent **ar, int n, if (!(autoindex_opts & SUPPRESS_LAST_MOD)) { if (ar[x]->lm != -1) { char time_str[MAX_STRING_LEN]; - struct tm *ts = localtime(&ar[x]->lm); - strftime(time_str, MAX_STRING_LEN, "%d-%b-%Y %H:%M ", ts); + ap_time_t *ts = NULL; + ap_make_time(&ts, r->pool); + ap_set_ansitime(ts, ar[x]->lm); + ap_strftime(time_str, &rv, MAX_STRING_LEN, + "%d-%b-%Y %H:%M ", ts); ap_rputs(time_str, r); } else { diff --git a/modules/mappers/mod_rewrite.c b/modules/mappers/mod_rewrite.c index cd5e46c4bd..39475598cb 100644 --- a/modules/mappers/mod_rewrite.c +++ b/modules/mappers/mod_rewrite.c @@ -3556,8 +3556,14 @@ static char *lookup_variable(request_rec *r, char *var) { const char *result; char resultbuf[LONG_STRING_LEN]; - time_t tc; - struct tm *tm; + ap_time_t *tm = NULL; + ap_int32_t tmvalue = 0; + ap_int32_t year; + ap_int32_t mon; + ap_int32_t mday; + ap_int32_t hour; + ap_int32_t min; + ap_int32_t sec; request_rec *rsub; #ifndef WIN32 struct passwd *pw; @@ -3667,42 +3673,49 @@ static char *lookup_variable(request_rec *r, char *var) /* underlaying Unix system stuff */ else if (strcasecmp(var, "TIME_YEAR") == 0) { - tc = time(NULL); - tm = localtime(&tc); + ap_make_init_time(&tm, r->pool); + ap_explode_time(tm, APR_LOCALTIME); + ap_get_year(tm, &year); ap_snprintf(resultbuf, sizeof(resultbuf), "%02d%02d", - (tm->tm_year / 100) + 19, tm->tm_year % 100); + (year / 100) + 19, year % 100); result = resultbuf; } #define MKTIMESTR(format, tmfield) \ - tc = time(NULL); \ - tm = localtime(&tc); \ - ap_snprintf(resultbuf, sizeof(resultbuf), format, tm->tmfield); \ + ap_make_init_time(&tm, r->pool); \ + ap_explode_time(tm, APR_LOCALTIME); \ + ap_get_tmfield(tm, &tmvalue); \ + ap_snprintf(resultbuf, sizeof(resultbuf), format, tmvalue); \ result = resultbuf; else if (strcasecmp(var, "TIME_MON") == 0) { - MKTIMESTR("%02d", tm_mon+1) + MKTIMESTR("%02d", mon+1) } else if (strcasecmp(var, "TIME_DAY") == 0) { - MKTIMESTR("%02d", tm_mday) + MKTIMESTR("%02d", mday) } else if (strcasecmp(var, "TIME_HOUR") == 0) { - MKTIMESTR("%02d", tm_hour) + MKTIMESTR("%02d", hour) } else if (strcasecmp(var, "TIME_MIN") == 0) { - MKTIMESTR("%02d", tm_min) + MKTIMESTR("%02d", min) } else if (strcasecmp(var, "TIME_SEC") == 0) { - MKTIMESTR("%02d", tm_sec) + MKTIMESTR("%02d", sec) } else if (strcasecmp(var, "TIME_WDAY") == 0) { - MKTIMESTR("%d", tm_wday) + MKTIMESTR("%d", wday) } else if (strcasecmp(var, "TIME") == 0) { - tc = time(NULL); - tm = localtime(&tc); + ap_make_init_time(&tm, r->pool); + ap_explode_time(tm, APR_LOCALTIME); + ap_get_year(tm, &year); + ap_get_mon(tm, &mon); + ap_get_mday(tm, &mday); + ap_get_hour(tm, &hour); + ap_get_min(tm, &min); + ap_get_sec(tm, &sec); ap_snprintf(resultbuf, sizeof(resultbuf), - "%02d%02d%02d%02d%02d%02d%02d", (tm->tm_year / 100) + 19, - (tm->tm_year % 100), tm->tm_mon+1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); + "%02d%02d%02d%02d%02d%02d%02d", (year / 100) + 19, + (year % 100), mon+1, mday, hour, min, sec); result = resultbuf; rewritelog(r, 1, "RESULT='%s'", result); } diff --git a/modules/metadata/mod_usertrack.c b/modules/metadata/mod_usertrack.c index 620741680e..ce794b883c 100644 --- a/modules/metadata/mod_usertrack.c +++ b/modules/metadata/mod_usertrack.c @@ -181,7 +181,6 @@ static void make_cookie(request_rec *r) #endif if (cls->expires) { - struct tm *tms; ap_time_t *when = NULL; ap_int64_t req_time; char *temp_cookie = NULL;