You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2008/01/03 12:28:34 UTC

svn commit: r608454 - in /tomcat/connectors/trunk/jk: native/common/jk_status.c xdocs/miscellaneous/changelog.xml

Author: rjung
Date: Thu Jan  3 03:28:29 2008
New Revision: 608454

URL: http://svn.apache.org/viewvc?rev=608454&view=rev
Log:
Include server local time in status worker output.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_status.c
    tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/connectors/trunk/jk/native/common/jk_status.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_status.c?rev=608454&r1=608453&r2=608454&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Thu Jan  3 03:28:29 2008
@@ -149,6 +149,10 @@
 #define JK_STATUS_WAIT_AFTER_UPDATE        "3"
 #define JK_STATUS_REFRESH_DEF              "10"
 #define JK_STATUS_ESC_CHARS                ("<>?\"")
+#define JK_STATUS_TIME_FMT_HTML            "%a, %d %b %Y %T %Z"
+#define JK_STATUS_TIME_FMT_TEXT            "%Y%m%d%H%M%S"
+#define JK_STATUS_TIME_FMT_TZ              "%Z"
+#define JK_STATUS_TIME_BUF_SZ              (80)
 
 #define JK_STATUS_HEAD                     "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" \
                                            "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"" \
@@ -432,6 +436,13 @@
     jk_printf(s, "%*s%s=\"%d\"\n", indentation, "", key, value);
 }
 
+static void jk_print_xml_att_long(jk_ws_service_t *s,
+                                  int indentation,
+                                  const char *key, long value)
+{
+    jk_printf(s, "%*s%s=\"%ld\"\n", indentation, "", key, value);
+}
+
 static void jk_print_xml_att_uint32(jk_ws_service_t *s,
                                     int indentation,
                                     const char *key, jk_uint32_t value)
@@ -470,6 +481,18 @@
     }
 }
 
+static void jk_print_prop_att_long(jk_ws_service_t *s, status_worker_t *w,
+                                   const char *name,
+                                   const char *key, long value)
+{
+    if (name) {
+        jk_printf(s, "%s.%s.%s=%ld\n", w->prefix, name, key, value);
+    }
+    else {
+        jk_printf(s, "%s.%s=%ld\n", w->prefix, key, value);
+    }
+}
+
 static void jk_print_prop_att_uint32(jk_ws_service_t *s, status_worker_t *w,
                                      const char *name,
                                      const char *key, jk_uint32_t value)
@@ -3209,6 +3232,23 @@
     }
 
     if (!err) {
+        char buf_time[JK_STATUS_TIME_BUF_SZ];
+        char buf_tz[JK_STATUS_TIME_BUF_SZ];
+        int rc_time;
+        time_t clock = time(NULL);
+        long unix_seconds = (long)clock;
+#ifdef _MT_CODE_PTHREAD
+        struct tm res;
+        struct tm *tms = localtime_r(&clock, &res);
+#else
+        struct tm *tms = localtime(&clock);
+#endif
+        if (mime == JK_STATUS_MIME_HTML)
+            rc_time = strftime(buf_time, JK_STATUS_TIME_BUF_SZ, JK_STATUS_TIME_FMT_HTML, tms);
+        else {
+            rc_time = strftime(buf_time, JK_STATUS_TIME_BUF_SZ, JK_STATUS_TIME_FMT_TEXT, tms);
+        }
+        strftime(buf_tz, JK_STATUS_TIME_BUF_SZ, JK_STATUS_TIME_FMT_TZ, tms);
         if (cmd == JK_STATUS_CMD_UPDATE) {
             /* lock shared memory */
             jk_shm_lock();
@@ -3278,6 +3318,13 @@
                 if ((cmd == JK_STATUS_CMD_LIST) ||
                     (cmd == JK_STATUS_CMD_SHOW) ||
                     (cmd == JK_STATUS_CMD_VERSION)) {
+                    if (rc_time > 0 ) {
+                        jk_print_xml_start_elt(s, w, 0, 0, "time");
+                        jk_print_xml_att_string(s, 2, "datetime", buf_time);
+                        jk_print_xml_att_string(s, 2, "tz", buf_tz);
+                        jk_print_xml_att_long(s, 2, "unix", unix_seconds);
+                        jk_print_xml_stop_elt(s, 0, 1);
+                    }
                     jk_print_xml_start_elt(s, w, 0, 0, "software");
                     jk_print_xml_att_string(s, 2, "web_server", s->server_software);
                     jk_print_xml_att_string(s, 2, "jk_version", JK_EXPOSED_VERSION);
@@ -3304,6 +3351,13 @@
                 if ((cmd == JK_STATUS_CMD_LIST) ||
                     (cmd == JK_STATUS_CMD_SHOW) ||
                     (cmd == JK_STATUS_CMD_VERSION)) {
+                    if (rc_time > 0) {
+                        jk_puts(s, "Time:");
+                        jk_printf(s, " datetime=%s", buf_time);
+                        jk_printf(s, " tz=%s", buf_tz);
+                        jk_printf(s, " unix=%ld", unix_seconds);
+                        jk_puts(s, "\n");
+                    }
                     jk_puts(s, "Software:");
                     jk_printf(s, " web_server=\"%s\"", s->server_software);
                     jk_printf(s, " jk_version=%s", JK_EXPOSED_VERSION);
@@ -3328,6 +3382,11 @@
                 if ((cmd == JK_STATUS_CMD_LIST) ||
                     (cmd == JK_STATUS_CMD_SHOW) ||
                     (cmd == JK_STATUS_CMD_VERSION)) {
+                    if (rc_time > 0) {
+                        jk_print_prop_att_string(s, w, NULL, "time_datetime", buf_time);
+                        jk_print_prop_att_string(s, w, NULL, "time_tz", buf_tz);
+                        jk_print_prop_att_long(s, w, NULL, "time_unix", unix_seconds);
+                    }
                     jk_print_prop_att_string(s, w, NULL, "web_server", s->server_software);
                     jk_print_prop_att_string(s, w, NULL, "jk_version", JK_EXPOSED_VERSION);
                 }
@@ -3367,10 +3426,15 @@
                     (cmd == JK_STATUS_CMD_SHOW) ||
                     (cmd == JK_STATUS_CMD_VERSION)) {
                     jk_putv(s, "<table><tr><td>Server Version:</td><td>",
-                            s->server_software, "</td></tr>\n", NULL);
+                            s->server_software, "</td><td>&nbsp;&nbsp;&nbsp;</td><td>", NULL);
+                    if (rc_time > 0) {
+                        jk_putv(s, "Server Time:</td><td>", buf_time, NULL);
+                    }
+                    jk_puts(s, "</td></tr>\n");
                     jk_putv(s, "<tr><td>JK Version:</td><td>",
-                            JK_EXPOSED_VERSION, "</td></tr></table>\n", NULL);
-                    jk_puts(s, "<hr/>\n");
+                            JK_EXPOSED_VERSION, "</td><td></td><td>", NULL);
+                    jk_printf(s, "Unix Seconds:</td><td>%d", unix_seconds);
+                    jk_puts(s, "</td></tr></table>\n<hr/>\n");
                 }
                 if (cmd == JK_STATUS_CMD_LIST ||
                     cmd == JK_STATUS_CMD_SHOW) {

Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=608454&r1=608453&r2=608454&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Thu Jan  3 03:28:29 2008
@@ -43,6 +43,9 @@
   <br />
   <subsection name="Native">
     <changelog>
+      <update>
+        Status: Include server local time in output. (rjung)
+      </update>
       <fix>
         <bug>44116</bug>: Fix handling of multiple JSESSIONID cookies. (rjung)
       </fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org