diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml index 5fde9664d..1ccd924b6 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogFrontend.xml @@ -240,6 +240,20 @@ true + + frontend.stickiness_counter + + checkbox + + true + + + frontend.stickiness_counter_key + + text + HAProxy documentation for a full description.]]> + true + frontend.stickiness_length diff --git a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml index d4a690779..982e9c0ae 100644 --- a/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml +++ b/net/haproxy/src/opnsense/mvc/app/models/OPNsense/HAProxy/HAProxy.xml @@ -454,6 +454,16 @@ lower Should be a number between 1 and 5 characters followed by either "k", "m" or "g". + + 1 + N + + + src + N + /^([0-9a-zA-Z._]){1,32}$/u + Should be a string between 1 and 32 characters. + 1 16384 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 eebeac93e..bd0954a1d 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -542,6 +542,12 @@ {% if table_type is defined %} stick-table type {{table_type}} {%if add_length is defined %}len {{data_length}} {% endif %}size {{proxy.stickiness_size}} expire {{proxy.stickiness_expire}} {{stickiness_store}} {% endif %} +{# # sticky counters (frontends only) #} +{%- if backend == False -%} +{%- if proxy.stickiness_counter|default("0") == "1" and proxy.stickiness_counter_key != '' %} + tcp-request connection track-sc0 {{proxy.stickiness_counter_key}} +{%- endif -%} +{%- endif -%} {# # stick-table persistence (backends only) #} {%- if backend == True -%} {%- if proxy.stickiness_pattern == "cookievalue" %}