diff --git a/include/haproxy/proxy-t.h b/include/haproxy/proxy-t.h index f2fdf01d5..aa8038dd1 100644 --- a/include/haproxy/proxy-t.h +++ b/include/haproxy/proxy-t.h @@ -46,7 +46,6 @@ enum pr_state { PR_STNEW = 0, /* proxy has not been initialized yet */ PR_STREADY, /* proxy has been initialized and is ready */ - PR_STPAUSED, /* frontend is paused (during hot restart) */ PR_STSTOPPED, /* proxy is stopped (end of a restart) */ } __attribute__((packed)); diff --git a/src/proxy.c b/src/proxy.c index 06fb0d9f6..bae8c1410 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -1288,8 +1288,7 @@ int pause_proxy(struct proxy *p) { struct listener *l; - if (!(p->cap & PR_CAP_FE) || - p->state == PR_STSTOPPED || p->state == PR_STPAUSED) + if (!(p->cap & PR_CAP_FE) || p->state == PR_STSTOPPED || !p->li_ready) return 1; ha_warning("Pausing %s %s.\n", proxy_cap_str(p->cap), p->id); @@ -1303,8 +1302,6 @@ int pause_proxy(struct proxy *p) send_log(p, LOG_WARNING, "%s %s failed to enter pause mode.\n", proxy_cap_str(p->cap), p->id); return 0; } - - p->state = PR_STPAUSED; return 1; } @@ -1370,7 +1367,7 @@ int resume_proxy(struct proxy *p) struct listener *l; int fail; - if (p->state != PR_STPAUSED) + if (p->state == PR_STSTOPPED || !p->li_paused) return 1; ha_warning("Enabling %s %s.\n", proxy_cap_str(p->cap), p->id); @@ -1401,7 +1398,6 @@ int resume_proxy(struct proxy *p) } } - p->state = PR_STREADY; if (fail) { pause_proxy(p); return 0; @@ -2222,8 +2218,8 @@ static int cli_parse_disable_frontend(char **args, char *payload, struct appctx if (px->state == PR_STSTOPPED) return cli_msg(appctx, LOG_NOTICE, "Frontend was previously shut down, cannot disable.\n"); - if (px->state == PR_STPAUSED) - return cli_msg(appctx, LOG_NOTICE, "Frontend is already disabled.\n"); + if (!px->li_ready) + return cli_msg(appctx, LOG_NOTICE, "All sockets are already disabled.\n"); HA_SPIN_LOCK(PROXY_LOCK, &px->lock); ret = pause_proxy(px); @@ -2254,8 +2250,8 @@ static int cli_parse_enable_frontend(char **args, char *payload, struct appctx * if (px->state == PR_STSTOPPED) return cli_err(appctx, "Frontend was previously shut down, cannot enable.\n"); - if (px->state != PR_STPAUSED) - return cli_msg(appctx, LOG_NOTICE, "Frontend is already enabled.\n"); + if (px->li_ready == px->li_all) + return cli_msg(appctx, LOG_NOTICE, "All sockets are already enabled.\n"); HA_SPIN_LOCK(PROXY_LOCK, &px->lock); ret = resume_proxy(px);