in native/common/jk_status.c [3053:3244]
static void form_all_members(jk_ws_service_t *s,
status_endpoint_t *p,
jk_worker_t *jw,
const char *attribute,
jk_log_context_t *l)
{
const char *name = NULL;
lb_worker_t *lb = NULL;
status_worker_t *w = p->worker;
const char *aname;
unsigned int i;
JK_TRACE_ENTER(l);
if (!attribute) {
jk_log(l, JK_LOG_WARNING,
"Status worker '%s' missing request parameter '%s'",
w->name, JK_STATUS_ARG_ATTRIBUTE);
JK_TRACE_EXIT(l);
return;
}
else {
if (!strcmp(attribute, JK_STATUS_ARG_LBM_ACTIVATION))
aname=JK_STATUS_ARG_LBM_TEXT_ACTIVATION;
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_FACTOR))
aname=JK_STATUS_ARG_LBM_TEXT_FACTOR;
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_ROUTE))
aname=JK_STATUS_ARG_LBM_TEXT_ROUTE;
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_REDIRECT))
aname=JK_STATUS_ARG_LBM_TEXT_REDIRECT;
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DOMAIN))
aname=JK_STATUS_ARG_LBM_TEXT_DOMAIN;
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DISTANCE))
aname=JK_STATUS_ARG_LBM_TEXT_DISTANCE;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CACHE_TO))
aname=JK_STATUS_ARG_AJP_TEXT_CACHE_TO;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_PING_TO))
aname=JK_STATUS_ARG_AJP_TEXT_PING_TO;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CONNECT_TO))
aname=JK_STATUS_ARG_AJP_TEXT_CONNECT_TO;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_PREPOST_TO))
aname=JK_STATUS_ARG_AJP_TEXT_PREPOST_TO;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_REPLY_TO))
aname=JK_STATUS_ARG_AJP_TEXT_REPLY_TO;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_RETRIES))
aname=JK_STATUS_ARG_AJP_TEXT_RETRIES;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_RETRY_INT))
aname=JK_STATUS_ARG_AJP_TEXT_RETRY_INT;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CPING_INT))
aname=JK_STATUS_ARG_AJP_TEXT_CPING_INT;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_REC_OPTS))
aname=JK_STATUS_ARG_AJP_TEXT_REC_OPTS;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_BUSY_LIMIT))
aname=JK_STATUS_ARG_AJP_TEXT_BUSY_LIMIT;
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_MAX_PK_SZ))
aname=JK_STATUS_ARG_AJP_TEXT_MAX_PK_SZ;
else {
jk_log(l, JK_LOG_WARNING,
"Status worker '%s' unknown attribute '%s'",
w->name, attribute);
JK_TRACE_EXIT(l);
return;
}
}
if (jw->type == JK_LB_WORKER_TYPE) {
lb = (lb_worker_t *)jw->worker_private;
name = lb->name;
if (JK_IS_DEBUG_LEVEL(l))
jk_log(l, JK_LOG_DEBUG,
"Status worker '%s' producing edit form for attribute '%s' [%s] of all members of lb worker '%s'",
w->name, attribute, aname, name);
}
else {
jk_log(l, JK_LOG_WARNING,
"Status worker '%s' worker type not implemented",
w->name);
JK_TRACE_EXIT(l);
return;
}
if (lb) {
jk_putv(s, "<hr/><h3>Edit attribute '", aname,
"' for all members of load balancer ",
name, "</h3>\n", NULL);
status_start_form(s, p, "get", JK_STATUS_CMD_UPDATE, NULL, l);
jk_putv(s, "<table><tr>"
"<th>Balanced Worker</th><th>", aname, "</th>"
"</tr>", NULL);
for (i = 0; i < lb->num_of_workers; i++) {
lb_sub_worker_t *wr = &(lb->lb_workers[i]);
jk_worker_t *jw = wr->worker;
ajp_worker_t *aw = (ajp_worker_t *)jw->worker_private;;
jk_putv(s, "<tr><td>", wr->name, "</td><td>\n", NULL);
if (!strcmp(attribute, JK_STATUS_ARG_LBM_ACTIVATION)) {
jk_printf(s, l, "Active: <input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"radio\"", i);
jk_printf(s, l, " value=\"%d\"", JK_LB_ACTIVATION_ACTIVE);
if (wr->activation == JK_LB_ACTIVATION_ACTIVE)
jk_puts(s, " checked=\"checked\"");
jk_puts(s, "/> | \n");
jk_printf(s, l, "Disabled: <input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"radio\"", i);
jk_printf(s, l, " value=\"%d\"", JK_LB_ACTIVATION_DISABLED);
if (wr->activation == JK_LB_ACTIVATION_DISABLED)
jk_puts(s, " checked=\"checked\"");
jk_puts(s, "/> | \n");
jk_printf(s, l, "Stopped: <input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"radio\"", i);
jk_printf(s, l, " value=\"%d\"", JK_LB_ACTIVATION_STOPPED);
if (wr->activation == JK_LB_ACTIVATION_STOPPED)
jk_puts(s, " checked=\"checked\"");
jk_puts(s, "/>\n");
}
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_FACTOR)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", wr->lb_factor);
}
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_ROUTE)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_putv(s, "value=\"", wr->route, NULL);
jk_printf(s, l, "\" maxlength=\"%d\"/>\n", JK_MAX_NAME_LEN);
}
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_REDIRECT)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_putv(s, "value=\"", wr->redirect, NULL);
jk_printf(s, l, "\" maxlength=\"%d\"/>\n", JK_MAX_NAME_LEN);
}
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DOMAIN)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_putv(s, "value=\"", wr->domain, NULL);
jk_printf(s, l, "\" maxlength=\"%d\"/>\n", JK_MAX_NAME_LEN);
}
else if (!strcmp(attribute, JK_STATUS_ARG_LBM_DISTANCE)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", wr->distance);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CACHE_TO)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->cache_timeout);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_PING_TO)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->ping_timeout);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CONNECT_TO)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->connect_timeout);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_PREPOST_TO)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->prepost_timeout);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_REPLY_TO)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->reply_timeout);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_RETRIES)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->retries);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_RETRY_INT)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->retry_interval);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_CPING_INT)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->conn_ping_interval);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_REC_OPTS)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->recovery_opts);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_BUSY_LIMIT)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->busy_limit);
}
else if (!strcmp(attribute, JK_STATUS_ARG_AJP_MAX_PK_SZ)) {
jk_printf(s, l, "<input name=\"" JK_STATUS_ARG_MULT_VALUE_BASE "%d\" type=\"text\"", i);
jk_printf(s, l, "value=\"%d\"/>\n", aw->max_packet_size);
}
jk_puts(s, "</td></tr>");
}
jk_puts(s, "</table>\n");
jk_puts(s, "<br/><input type=\"submit\" value=\"Update Balancer\"/></form>\n");
}
JK_TRACE_EXIT(l);
}