]> granicus.if.org Git - apache/commitdiff
Move some modules over to using ap_time_t instead of struct tm.
authorRyan Bloom <rbb@apache.org>
Fri, 7 Jan 2000 20:38:06 +0000 (20:38 +0000)
committerRyan Bloom <rbb@apache.org>
Fri, 7 Jan 2000 20:38:06 +0000 (20:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84407 13f79535-47bb-0310-9956-ffa450edef68

modules/generators/mod_autoindex.c
modules/mappers/mod_rewrite.c
modules/metadata/mod_usertrack.c

index df8bc7fabf972cc02abec9b648478528ef15fafa..fb6dc1cc12367006b027d1befe9cef46092603a0 100644 (file)
@@ -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 {
index cd5e46c4bd19b7760ce4452c098eac75a989cc30..39475598cb0f78d8e631c0407d799b76f04fe742 100644 (file)
@@ -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);
     }
index 620741680e5117fe34b438f8565db6b0f59d71b5..ce794b883cae453a90a47bf3df83cf250883a9eb 100644 (file)
@@ -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;