From 4c1d3a953d214e52997cdc9916e0cea4380f4d2e Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Thu, 12 Jan 2023 20:03:38 +0100 Subject: [PATCH] MINOR: listener: get rid of LI_O_TCP_L4_RULES and LI_O_TCP_L5_RULES LI_O_TCP_L4_RULES and LI_O_TCP_L5_RULES are only set by from the proxy based on the presence or absence of tcp_req l4/l5 rules. It's basically as cheap to check the list as it is to check the flag, except that there is no need to maintain a copy. Let's get rid of them, and this may ease addition of more dynamic stuff later. --- include/haproxy/listener-t.h | 4 ++-- src/cfgparse.c | 6 ------ src/session.c | 4 ++-- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/include/haproxy/listener-t.h b/include/haproxy/listener-t.h index 7f0b28603..763e8c376 100644 --- a/include/haproxy/listener-t.h +++ b/include/haproxy/listener-t.h @@ -96,8 +96,8 @@ enum li_status { /* unused 0x0002 */ /* unused 0x0004 */ /* unused 0x0008 */ -#define LI_O_TCP_L4_RULES 0x0010 /* run TCP L4 rules checks on the incoming connection */ -#define LI_O_TCP_L5_RULES 0x0020 /* run TCP L5 rules checks on the incoming session */ +/* unused 0x0010 */ +/* unused 0x0020 */ /* unused 0x0040 */ /* unused 0x0080 */ /* unused 0x0100 */ diff --git a/src/cfgparse.c b/src/cfgparse.c index 4d788dd8f..664a24a17 100644 --- a/src/cfgparse.c +++ b/src/cfgparse.c @@ -4328,12 +4328,6 @@ init_proxies_list_stage2: li_init_per_thr(listener); } #endif - - if (!LIST_ISEMPTY(&curproxy->tcp_req.l4_rules)) - listener->options |= LI_O_TCP_L4_RULES; - - if (!LIST_ISEMPTY(&curproxy->tcp_req.l5_rules)) - listener->options |= LI_O_TCP_L5_RULES; } /* Release unused SSL configs */ diff --git a/src/session.c b/src/session.c index bc042b7a1..a6cca8243 100644 --- a/src/session.c +++ b/src/session.c @@ -190,7 +190,7 @@ int session_accept_fd(struct connection *cli_conn) /* now evaluate the tcp-request layer4 rules. We only need a session * and no stream for these rules. */ - if ((l->options & LI_O_TCP_L4_RULES) && !tcp_exec_l4_rules(sess)) { + if (!LIST_ISEMPTY(&p->tcp_req.l4_rules) && !tcp_exec_l4_rules(sess)) { /* let's do a no-linger now to close with a single RST. */ setsockopt(cfd, SOL_SOCKET, SO_LINGER, (struct linger *) &nolinger, sizeof(struct linger)); ret = 0; /* successful termination */ @@ -433,7 +433,7 @@ int conn_complete_session(struct connection *conn) conn->flags |= CO_FL_XPRT_TRACKED; /* we may have some tcp-request-session rules */ - if ((sess->listener->options & LI_O_TCP_L5_RULES) && !tcp_exec_l5_rules(sess)) + if (!LIST_ISEMPTY(&sess->fe->tcp_req.l5_rules) && !tcp_exec_l5_rules(sess)) goto fail; session_count_new(sess);