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 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 */

View File

@ -4328,12 +4328,6 @@ int check_config_validity()
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 */

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
* 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);