From cca920acb0f5925b2451999ea39baaef67f2cecc Mon Sep 17 00:00:00 2001 From: Frank Wall Date: Tue, 10 Feb 2026 17:04:38 +0100 Subject: [PATCH] net/haproxy: support converts in more ACLs --- net/haproxy/pkg-descr | 5 ++ .../templates/OPNsense/HAProxy/haproxy.conf | 77 ++++++++++++++++--- 2 files changed, 71 insertions(+), 11 deletions(-) diff --git a/net/haproxy/pkg-descr b/net/haproxy/pkg-descr index 75ae2c0e4..e7c26f768 100644 --- a/net/haproxy/pkg-descr +++ b/net/haproxy/pkg-descr @@ -6,6 +6,11 @@ very high loads while needing persistence or Layer7 processing. Plugin Changelog ================ +5.1 + +Added: +* more conditions have support for converters + 5.0 WARNING: This is a new major release, which may result in diff --git a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf index e722821ee..2e9c90d76 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -448,7 +448,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_conn_cnt(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_conn_cnt_comparison ~ ' ' ~ acl_data.sc_conn_cnt) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_conn_cnt(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_conn_cnt_comparison ~ ' ' ~ acl_data.sc_conn_cnt) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -460,7 +465,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_conn_cur(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_conn_cur_comparison ~ ' ' ~ acl_data.sc_conn_cur) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_conn_cur(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_conn_cur_comparison ~ ' ' ~ acl_data.sc_conn_cur) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -472,7 +482,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_conn_rate(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_conn_rate_comparison ~ ' ' ~ acl_data.sc_conn_rate) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_conn_rate(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_conn_rate_comparison ~ ' ' ~ acl_data.sc_conn_rate) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -784,7 +799,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_err_cnt(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_err_cnt_comparison ~ ' ' ~ acl_data.sc_http_err_cnt) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_err_cnt(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_err_cnt_comparison ~ ' ' ~ acl_data.sc_http_err_cnt) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -796,7 +816,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_err_rate(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_err_rate_comparison ~ ' ' ~ acl_data.sc_http_err_rate) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_err_rate(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_err_rate_comparison ~ ' ' ~ acl_data.sc_http_err_rate) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -808,7 +833,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_fail_cnt(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_fail_cnt_comparison ~ ' ' ~ acl_data.sc_http_fail_cnt) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_fail_cnt(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_fail_cnt_comparison ~ ' ' ~ acl_data.sc_http_fail_cnt) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -820,7 +850,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_fail_rate(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_fail_rate_comparison ~ ' ' ~ acl_data.sc_http_fail_rate) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_fail_rate(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_fail_rate_comparison ~ ' ' ~ acl_data.sc_http_fail_rate) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -832,7 +867,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_req_cnt(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_req_cnt_comparison ~ ' ' ~ acl_data.sc_http_req_cnt) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_req_cnt(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_req_cnt_comparison ~ ' ' ~ acl_data.sc_http_req_cnt) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -844,7 +884,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_http_req_rate(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_http_req_rate_comparison ~ ' ' ~ acl_data.sc_http_req_rate) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_http_req_rate(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_http_req_rate_comparison ~ ' ' ~ acl_data.sc_http_req_rate) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -964,7 +1009,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_sess_cnt(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_sess_cnt_comparison ~ ' ' ~ acl_data.sc_sess_cnt) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_sess_cnt(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_sess_cnt_comparison ~ ' ' ~ acl_data.sc_sess_cnt) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters @@ -976,7 +1026,12 @@ {% else %} {% set table_data = '' %} {% endif %} -{% do acl_options.append('sc_sess_rate(' ~ acl_data.sc_number ~ table_data ~ ') ' ~ acl_data.sc_sess_rate_comparison ~ ' ' ~ acl_data.sc_sess_rate) %} +{% if acl_data.converter|default("") != "" %} +{% set converter_data = ',' ~ acl_data.converter %} +{% else %} +{% set converter_data = '' %} +{% endif %} +{% do acl_options.append('sc_sess_rate(' ~ acl_data.sc_number ~ table_data ~ ')' ~ converter_data ~ ' ' ~ acl_data.sc_sess_rate_comparison ~ ' ' ~ acl_data.sc_sess_rate) %} {% else %} {% set acl_enabled = '0' %} # ERROR: missing parameters