in native/common/jk_status.c [4062:4187]
static void list_workers_type(jk_ws_service_t *s,
status_endpoint_t *p,
int list_lb, int count,
jk_log_context_t *l)
{
const char *arg;
unsigned int i;
int mime;
unsigned int hide;
jk_worker_t *jw = NULL;
status_worker_t *w = p->worker;
JK_TRACE_ENTER(l);
status_get_string(p, JK_STATUS_ARG_MIME, NULL, &arg, l);
mime = status_mime_int(arg);
if (list_lb) {
hide = status_get_int(p, JK_STATUS_ARG_OPTIONS, 0, l) &
JK_STATUS_ARG_OPTION_NO_LB;
if (hide) {
if (mime == JK_STATUS_MIME_HTML) {
jk_puts(s, "<p>\n");
status_write_uri(s, p, "Show Load Balancing Workers", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_LB, NULL, l);
jk_puts(s, "</p>\n");
}
}
else {
if (mime == JK_STATUS_MIME_XML) {
jk_print_xml_start_elt(s, l, w, 0, 0, "balancers");
jk_print_xml_att_int(s, l, 2, "count", count);
jk_print_xml_stop_elt(s, l, 0, 0);
}
else if (mime == JK_STATUS_MIME_TXT) {
jk_printf(s, l, "Balancer Workers: count=%d\n", count);
}
else if (mime == JK_STATUS_MIME_PROP) {
jk_print_prop_att_int(s, l, w, NULL, "lb_count", count);
}
else {
jk_printf(s, l, "<hr/><h2>Listing Load Balancing Worker%s (%d Worker%s) [",
count>1 ? "s" : "", count, count>1 ? "s" : "");
status_write_uri(s, p, "Hide", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
NULL, NULL, JK_STATUS_ARG_OPTION_NO_LB, 0, NULL, l);
jk_puts(s, "]</h2>\n");
}
}
}
else {
hide = status_get_int(p, JK_STATUS_ARG_OPTIONS, 0, l) &
JK_STATUS_ARG_OPTION_NO_AJP;
if (hide) {
if (mime == JK_STATUS_MIME_HTML) {
jk_puts(s, "<p>\n");
status_write_uri(s, p, "Show AJP Workers", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
NULL, NULL, 0, JK_STATUS_ARG_OPTION_NO_AJP, NULL, l);
jk_puts(s, "</p>\n");
}
}
else {
if (mime == JK_STATUS_MIME_XML) {
jk_print_xml_start_elt(s, l, w, 0, 0, "ajp_workers");
jk_print_xml_att_int(s, l, 2, "count", count);
jk_print_xml_stop_elt(s, l, 0, 0);
}
else if (mime == JK_STATUS_MIME_TXT) {
jk_printf(s, l, "AJP Workers: count=%d\n", count);
}
else if (mime == JK_STATUS_MIME_PROP) {
jk_print_prop_att_int(s, l, w, NULL, "ajp_count", count);
}
else {
jk_printf(s, l, "<hr/><h2>Listing AJP Worker%s (%d Worker%s) [",
count>1 ? "s" : "", count, count>1 ? "s" : "");
status_write_uri(s, p, "Hide", JK_STATUS_CMD_UNKNOWN, JK_STATUS_MIME_UNKNOWN,
NULL, NULL, JK_STATUS_ARG_OPTION_NO_AJP, 0, NULL, l);
jk_puts(s, "]</h2>\n");
}
}
}
if (hide) {
JK_TRACE_EXIT(l);
return;
}
for (i = 0; i < w->we->num_of_workers; i++) {
jw = wc_get_worker_for_name(w->we->worker_list[i], l);
if (!jw) {
jk_log(l, JK_LOG_WARNING,
"Status worker '%s' could not find worker '%s'",
w->name, w->we->worker_list[i]);
continue;
}
if ((list_lb && jw->type == JK_LB_WORKER_TYPE) ||
(!list_lb && jw->type != JK_LB_WORKER_TYPE)) {
display_worker(s, p, jw, NULL, l);
}
}
if (list_lb) {
if (mime == JK_STATUS_MIME_XML) {
jk_print_xml_close_elt(s, l, w, 0, "balancers");
}
else if (mime == JK_STATUS_MIME_TXT) {
}
else if (mime == JK_STATUS_MIME_PROP) {
}
else if (mime == JK_STATUS_MIME_HTML) {
}
}
else {
if (mime == JK_STATUS_MIME_XML) {
jk_print_xml_close_elt(s, l, w, 0, "ajp_workers");
}
else if (mime == JK_STATUS_MIME_TXT) {
}
else if (mime == JK_STATUS_MIME_PROP) {
}
else if (mime == JK_STATUS_MIME_HTML) {
}
}
JK_TRACE_EXIT(l);
}