summaryrefslogtreecommitdiff
path: root/src/mod_status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_status.c')
-rw-r--r--src/mod_status.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/mod_status.c b/src/mod_status.c
index 80c0040..028cbc7 100644
--- a/src/mod_status.c
+++ b/src/mod_status.c
@@ -560,6 +560,8 @@ static handler_t mod_status_handle_server_status_text(server *srv, connection *c
double avg;
time_t ts;
char buf[32];
+ unsigned int k;
+ unsigned int l;
b = chunkqueue_get_append_buffer(con->write_queue);
@@ -588,6 +590,22 @@ static handler_t mod_status_handle_server_status_text(server *srv, connection *c
buffer_append_long(b, srv->conns->used);
BUFFER_APPEND_STRING_CONST(b, "\n");
+ BUFFER_APPEND_STRING_CONST(b, "IdleServers: ");
+ buffer_append_long(b, srv->conns->size - srv->conns->used);
+ BUFFER_APPEND_STRING_CONST(b, "\n");
+
+ /* output scoreboard */
+ BUFFER_APPEND_STRING_CONST(b, "Scoreboard: ");
+ for (k = 0; k < srv->conns->used; k++) {
+ connection *c = srv->conns->ptr[k];
+ const char *state = connection_get_short_state(c->state);
+ buffer_append_string_len(b, state, 1);
+ }
+ for (l = 0; l < srv->conns->size - srv->conns->used; l++) {
+ BUFFER_APPEND_STRING_CONST(b, "_");
+ }
+ BUFFER_APPEND_STRING_CONST(b, "\n");
+
/* set text/plain output */
response_header_overwrite(srv, con, CONST_STR_LEN("Content-Type"), CONST_STR_LEN("text/plain"));