"<option value=\"enable\">Enable</option>"
"<option value=\"stop\">Soft Stop</option>"
"<option value=\"start\">Soft Start</option>"
+ "<option value=\"shutdown\">Kill Sessions</option>"
"</select>"
"<input type=\"hidden\" name=\"b\" value=\"#%d\">"
" <input type=\"submit\" value=\"Apply\">"
else if (strcmp(value, "start") == 0) {
action = ST_ADM_ACTION_START;
}
+ else if (strcmp(value, "shutdown") == 0) {
+ action = ST_ADM_ACTION_SHUTDOWN;
+ }
else {
si->applet.ctx.stats.st_code = STAT_STATUS_ERRP;
goto out;
altered_servers++;
total_servers++;
break;
+ case ST_ADM_ACTION_SHUTDOWN:
+ if (px->state != PR_STSTOPPED) {
+ struct session *sess, *sess_bck;
+
+ list_for_each_entry_safe(sess, sess_bck, &sv->actconns, by_srv)
+ if (sess->srv_conn == sv)
+ session_shutdown(sess, SN_ERR_KILLED);
+
+ altered_servers++;
+ total_servers++;
+ }
+ break;
}
} else {
/* the server name is unknown or ambiguous (duplicate names) */