Author: rjung
Date: Wed Aug 23 12:51:31 2006
New Revision: 434141
URL: http://svn.apache.org/viewvc?rev=434141&view=rev
Log:
New features for jk_status:
- When a request updates data, the response does a meta redirect
to the list view, so that a following browser refresh by the user does
not send the update a second time.
- Add a link to start/stop automatic refresh
- Improve formatting of the dl/dt/dd construct at the top of the status page.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_status.c
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=434141&r1=434140&r2=434141&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_status.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_status.c Wed Aug 23 12:51:31
2006
@@ -887,28 +887,79 @@
int refresh = status_int("refresh", s->query_string, -1);
s->start_response(s, 200, "OK", headers_names, headers_vhtml, 3);
s->write(s, JK_STATUS_HEAD, sizeof(JK_STATUS_HEAD) - 1);
- if (refresh >= 0) {
- jk_printf(s, "\n<meta http-equiv=\"Refresh\"
content=\"%d;url=%s?refresh=%d\">",
- refresh, s->req_uri, refresh);
+ if (cmd > 1) {
+ jk_putv(s, "\n<meta http-equiv=\"Refresh\" content=\"0;url=",
+ s->req_uri, "\">", NULL);
+ }
+ else if (cmd == 0 && refresh >= 0) {
+ jk_printf(s, "\n<meta http-equiv=\"Refresh\"
content=\"%d;url=%s?%s\">",
+ refresh, s->req_uri, s->query_string);
}
if (p->s_worker->css) {
jk_putv(s, "\n<link rel=\"stylesheet\" type=\"text/css\"
href=\"",
p->s_worker->css, "\" />\n", NULL);
}
s->write(s, JK_STATUS_HEND, sizeof(JK_STATUS_HEND) - 1);
- jk_puts(s, "<h1>JK Status Manager for ");
- jk_puts(s, s->server_name);
- jk_puts(s, "</h1>\n\n");
- jk_putv(s, "<dl><dt>Server Version: ",
- s->server_software, "</dt>\n", NULL);
- jk_putv(s, "<dt>JK Version: ",
- JK_VERSTRING, "\n</dt></dl>\n", NULL);
- /* Step 2: Display configuration */
- display_workers(s, p->s_worker, worker, l);
-
-
+ if ( cmd <= 1 ) {
+ jk_puts(s, "<h1>JK Status Manager for ");
+ jk_puts(s, s->server_name);
+ jk_puts(s, "</h1>\n\n");
+ jk_putv(s, "<dl><dt>Server Version:</dt><dd>",
+ s->server_software, "</dd>\n", NULL);
+ jk_putv(s, "<dt>JK Version:</dt><dd>",
+ JK_VERSTRING, "\n</dd></dl>\n", NULL);
+ }
+ if ( cmd == 0 ) {
+ jk_putv(s, "[<a href=\"", s->req_uri, NULL);
+ if (refresh >= 0) {
+ char *buf = jk_pool_alloc(s->pool, sizeof(char *) *
BIG_POOL_SIZE);
+ const char *str = s->query_string;
+ int result = 0;
+ int scan = 0;
+
+ while (str[scan] != 0) {
+ if (strncmp(&str[scan], "refresh=", 8) == 0) {
+ scan += 8;
+ while (str[scan] != 0 && str[scan] != '&')
+ scan++;
+ if (str[scan] == '&')
+ scan++;
+ }
+ else {
+ if (result > 0 && str[scan] != 0 && str[scan] !=
'&') {
+ buf[result] = '&';
+ result++;
+ }
+ while (str[scan] != 0 && str[scan] != '&') {
+ buf[result] = str[scan];
+ result++;
+ scan++;
+ }
+ if (str[scan] == '&')
+ scan++;
+ }
+ }
+ buf[result] = 0;
+
+ if (buf && buf[0])
+ jk_putv(s, "?", buf, NULL);
+ jk_puts(s, "\">stop");
+ }
+ else {
+ jk_puts(s, "?");
+ if (s->query_string && s->query_string[0])
+ jk_putv(s, s->query_string, "&", NULL);
+ jk_puts(s, "refresh=10\">start");
+ }
+ jk_puts(s, " auto update</a>]");
+ }
+ if ( cmd <= 1 ) {
+ /* Step 2: Display configuration */
+ display_workers(s, p->s_worker, worker, l);
+ }
+
s->write(s, JK_STATUS_BEND, sizeof(JK_STATUS_BEND) - 1);
-
+
}
else if (mime == 1) {
s->start_response(s, 200, "OK", headers_names, headers_vxml, 3);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]