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]