mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
BUG/MINOR: rhttp: prevent listener suspend
Ensure "disable frontend" on a reverse HTTP listener is forbidden by returing -1 on suspend callback. Suspending such a listener has unknown effect and so is not properly implemented for now. This should be backported up to 2.9.
This commit is contained in:
parent
ceebb09744
commit
2770ef352e
@ -10,6 +10,7 @@ int rhttp_bind_receiver(struct receiver *rx, char **errmsg);
|
|||||||
int rhttp_bind_listener(struct listener *listener, char *errmsg, int errlen);
|
int rhttp_bind_listener(struct listener *listener, char *errmsg, int errlen);
|
||||||
void rhttp_enable_listener(struct listener *l);
|
void rhttp_enable_listener(struct listener *l);
|
||||||
void rhttp_disable_listener(struct listener *l);
|
void rhttp_disable_listener(struct listener *l);
|
||||||
|
int rhttp_suspend_listener(struct listener *l);
|
||||||
struct connection *rhttp_accept_conn(struct listener *l, int *status);
|
struct connection *rhttp_accept_conn(struct listener *l, int *status);
|
||||||
void rhttp_unbind_receiver(struct listener *l);
|
void rhttp_unbind_receiver(struct listener *l);
|
||||||
int rhttp_set_affinity(struct connection *conn, int new_tid);
|
int rhttp_set_affinity(struct connection *conn, int new_tid);
|
||||||
|
@ -33,6 +33,7 @@ struct protocol proto_rhttp = {
|
|||||||
.listen = rhttp_bind_listener,
|
.listen = rhttp_bind_listener,
|
||||||
.enable = rhttp_enable_listener,
|
.enable = rhttp_enable_listener,
|
||||||
.disable = rhttp_disable_listener,
|
.disable = rhttp_disable_listener,
|
||||||
|
.suspend = rhttp_suspend_listener,
|
||||||
.add = default_add_listener,
|
.add = default_add_listener,
|
||||||
.unbind = rhttp_unbind_receiver,
|
.unbind = rhttp_unbind_receiver,
|
||||||
.resume = default_resume_listener,
|
.resume = default_resume_listener,
|
||||||
@ -370,6 +371,13 @@ int rhttp_bind_listener(struct listener *listener, char *errmsg, int errlen)
|
|||||||
return ERR_ALERT | ERR_FATAL;
|
return ERR_ALERT | ERR_FATAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Do not support "disable frontend" for rhttp protocol. */
|
||||||
|
int rhttp_suspend_listener(struct listener *l)
|
||||||
|
{
|
||||||
|
send_log(l->bind_conf->frontend, LOG_ERR, "cannot disable a reverse-HTTP listener.\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
void rhttp_enable_listener(struct listener *l)
|
void rhttp_enable_listener(struct listener *l)
|
||||||
{
|
{
|
||||||
if (l->rx.rhttp.state < LI_PRECONN_ST_INIT) {
|
if (l->rx.rhttp.state < LI_PRECONN_ST_INIT) {
|
||||||
|
Loading…
Reference in New Issue
Block a user