|
|
|
@ -20,7 +20,7 @@
|
|
|
|
|
* }
|
|
|
|
|
*
|
|
|
|
|
* Todo:
|
|
|
|
|
* - add querystring parameters like refresh=X and format=plain
|
|
|
|
|
* - add querystring parameter format=plain
|
|
|
|
|
*
|
|
|
|
|
* Author:
|
|
|
|
|
* Copyright (c) 2008-2009 Thomas Porzelt
|
|
|
|
@ -30,6 +30,7 @@
|
|
|
|
|
|
|
|
|
|
#include <lighttpd/base.h>
|
|
|
|
|
#include <lighttpd/collect.h>
|
|
|
|
|
#include <lighttpd/encoding.h>
|
|
|
|
|
|
|
|
|
|
LI_API gboolean mod_status_init(liModules *mods, liModule *mod);
|
|
|
|
|
LI_API gboolean mod_status_free(liModules *mods, liModule *mod);
|
|
|
|
@ -317,7 +318,6 @@ static void status_collect_cb(gpointer cbdata, gpointer fdata, GPtrArray *result
|
|
|
|
|
|
|
|
|
|
if (complete) {
|
|
|
|
|
GString *html;
|
|
|
|
|
GString *css;
|
|
|
|
|
GString *tmpstr;
|
|
|
|
|
GString *count_req, *count_bin, *count_bout;
|
|
|
|
|
guint uptime;
|
|
|
|
@ -364,14 +364,33 @@ static void status_collect_cb(gpointer cbdata, gpointer fdata, GPtrArray *result
|
|
|
|
|
|
|
|
|
|
g_string_append_len(html, header, sizeof(header)-1);
|
|
|
|
|
|
|
|
|
|
/* auto refresh */
|
|
|
|
|
{
|
|
|
|
|
gchar *val;
|
|
|
|
|
guint len;
|
|
|
|
|
gchar c;
|
|
|
|
|
|
|
|
|
|
if (li_querystring_find(vr->request.uri.query, CONST_STR_LEN("refresh"), &val, &len)) {
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN("<meta http-equiv=\"refresh\" content=\""));
|
|
|
|
|
/* temp char swap */
|
|
|
|
|
c = val[len]; val[len] = '\0';
|
|
|
|
|
li_string_encode_append(val, html, LI_ENCODING_HTML);
|
|
|
|
|
val[len] = c;
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN("\">\n"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* css */
|
|
|
|
|
css = _OPTION(vr, p, 0).string;
|
|
|
|
|
if (!css || !css->len) /* default css */
|
|
|
|
|
g_string_append_len(html, css_default, sizeof(css_default)-1);
|
|
|
|
|
else if (g_str_equal(css->str, "blue")) /* blue css */
|
|
|
|
|
g_string_append_len(html, css_blue, sizeof(css_blue)-1);
|
|
|
|
|
else /* external css */
|
|
|
|
|
g_string_append_printf(html, " <link rel=\"stylesheet\" rev=\"stylesheet\" href=\"%s\" media=\"screen\" />\n", css->str);
|
|
|
|
|
{
|
|
|
|
|
GString *css = _OPTION(vr, p, 0).string;
|
|
|
|
|
|
|
|
|
|
if (!css || !css->len) /* default css */
|
|
|
|
|
g_string_append_len(html, css_default, sizeof(css_default)-1);
|
|
|
|
|
else if (g_str_equal(css->str, "blue")) /* blue css */
|
|
|
|
|
g_string_append_len(html, css_blue, sizeof(css_blue)-1);
|
|
|
|
|
else /* external css */
|
|
|
|
|
g_string_append_printf(html, " <link rel=\"stylesheet\" rev=\"stylesheet\" href=\"%s\" media=\"screen\" />\n", css->str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(
|
|
|
|
|
" </head>\n"
|
|
|
|
@ -667,19 +686,39 @@ static gint str_comp(gconstpointer a, gconstpointer b) {
|
|
|
|
|
|
|
|
|
|
static liHandlerResult status_info_runtime(liVRequest *vr, liPlugin *p) {
|
|
|
|
|
GString *html;
|
|
|
|
|
GString* css = _OPTION(vr, p, 0).string;
|
|
|
|
|
|
|
|
|
|
html = g_string_sized_new(2047);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(header));
|
|
|
|
|
|
|
|
|
|
if (!css || !css->len) /* default css */
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(css_default));
|
|
|
|
|
else if (g_str_equal(css->str, "blue")) /* blue css */
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(css_blue));
|
|
|
|
|
else /* external css */
|
|
|
|
|
g_string_append_printf(html, " <link rel=\"stylesheet\" rev=\"stylesheet\" href=\"%s\" media=\"screen\" />\n", css->str);
|
|
|
|
|
/* auto refresh */
|
|
|
|
|
{
|
|
|
|
|
gchar *val;
|
|
|
|
|
guint len;
|
|
|
|
|
gchar c;
|
|
|
|
|
|
|
|
|
|
if (li_querystring_find(vr->request.uri.query, CONST_STR_LEN("refresh"), &val, &len)) {
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN("<meta http-equiv=\"refresh\" content=\""));
|
|
|
|
|
/* temp char swap */
|
|
|
|
|
c = val[len]; val[len] = '\0';
|
|
|
|
|
li_string_encode_append(val, html, LI_ENCODING_HTML);
|
|
|
|
|
val[len] = c;
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN("\">\n"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* css */
|
|
|
|
|
{
|
|
|
|
|
GString* css = _OPTION(vr, p, 0).string;
|
|
|
|
|
|
|
|
|
|
if (!css || !css->len) /* default css */
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(css_default));
|
|
|
|
|
else if (g_str_equal(css->str, "blue")) /* blue css */
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(css_blue));
|
|
|
|
|
else /* external css */
|
|
|
|
|
g_string_append_printf(html, " <link rel=\"stylesheet\" rev=\"stylesheet\" href=\"%s\" media=\"screen\" />\n", css->str);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g_string_append_len(html, CONST_STR_LEN(
|
|
|
|
|
" </head>\n"
|
|
|
|
|