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.
This commit is contained in:
Willy Tarreau 2023-01-12 20:03:38 +01:00
parent 1714680cec
commit 4c1d3a953d
3 changed files with 4 additions and 10 deletions

View File

@ -96,8 +96,8 @@ enum li_status {
/* unused 0x0002 */ /* unused 0x0002 */
/* unused 0x0004 */ /* unused 0x0004 */
/* unused 0x0008 */ /* unused 0x0008 */
#define LI_O_TCP_L4_RULES 0x0010 /* run TCP L4 rules checks on the incoming connection */ /* unused 0x0010 */
#define LI_O_TCP_L5_RULES 0x0020 /* run TCP L5 rules checks on the incoming session */ /* unused 0x0020 */
/* unused 0x0040 */ /* unused 0x0040 */
/* unused 0x0080 */ /* unused 0x0080 */
/* unused 0x0100 */ /* unused 0x0100 */

View File

@ -4328,12 +4328,6 @@ init_proxies_list_stage2:
li_init_per_thr(listener); li_init_per_thr(listener);
} }
#endif #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 */ /* Release unused SSL configs */

View File

@ -190,7 +190,7 @@ int session_accept_fd(struct connection *cli_conn)
/* now evaluate the tcp-request layer4 rules. We only need a session /* now evaluate the tcp-request layer4 rules. We only need a session
* and no stream for these rules. * 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. */ /* 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)); setsockopt(cfd, SOL_SOCKET, SO_LINGER, (struct linger *) &nolinger, sizeof(struct linger));
ret = 0; /* successful termination */ ret = 0; /* successful termination */
@ -433,7 +433,7 @@ int conn_complete_session(struct connection *conn)
conn->flags |= CO_FL_XPRT_TRACKED; conn->flags |= CO_FL_XPRT_TRACKED;
/* we may have some tcp-request-session rules */ /* 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; goto fail;
session_count_new(sess); session_count_new(sess);