mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-28 08:30:46 +00:00
[BUG] stats: admin web interface must check the proxy state
Similar to the stats socket bug, we must check that the proxy is not disabled before trying to enable/disable a server. Even if a disabled proxy is not displayed, someone can inject a faulty proxy name in the POST parameters. So, we must ensure that no disabled proxy can be used.
This commit is contained in:
parent
613f0df88b
commit
1e2a170cf8
@ -2934,7 +2934,7 @@ int http_process_req_stat_post(struct session *s, struct buffer *req)
|
||||
if (backend && action && get_backend_server(backend, value, &px, &sv)) {
|
||||
switch (action) {
|
||||
case 1:
|
||||
if (! (sv->state & SRV_MAINTAIN)) {
|
||||
if ((px->state != PR_STSTOPPED) && !(sv->state & SRV_MAINTAIN)) {
|
||||
/* Not already in maintenance, we can change the server state */
|
||||
sv->state |= SRV_MAINTAIN;
|
||||
set_server_down(sv);
|
||||
@ -2942,7 +2942,7 @@ int http_process_req_stat_post(struct session *s, struct buffer *req)
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if ((sv->state & SRV_MAINTAIN)) {
|
||||
if ((px->state != PR_STSTOPPED) && (sv->state & SRV_MAINTAIN)) {
|
||||
/* Already in maintenance, we can change the server state */
|
||||
set_server_up(sv);
|
||||
sv->health = sv->rise; /* up, but will fall down at first failure */
|
||||
|
Loading…
Reference in New Issue
Block a user