From: Willy Tarreau Date: Thu, 12 Jan 2023 19:03:38 +0000 (+0100) Subject: MINOR: listener: get rid of LI_O_TCP_L4_RULES and LI_O_TCP_L5_RULES X-Git-Tag: v2.8-dev3~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4c1d3a953d214e52997cdc9916e0cea4380f4d2e;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/include/haproxy/listener-t.h b/include/haproxy/listener-t.h index 7f0b28603e..763e8c3764 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 4d788dd8f0..664a24a178 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 bc042b7a10..a6cca82432 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);