diff --git a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogAction.xml b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogAction.xml index 396d7926d..90addff7a 100644 --- a/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogAction.xml +++ b/net/haproxy/src/opnsense/mvc/app/controllers/OPNsense/HAProxy/forms/dialogAction.xml @@ -283,6 +283,23 @@ text + + + header + + + + action.http_response_set_status_code + + text + + + + action.http_response_set_status_reason + + text + + header 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 9a4a0c0d4..4a3e48460 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 @@ -1528,6 +1528,7 @@ http-response header delete http-response header replace http-response header replace value + Set HTTP status code in response tcp-request connection accept tcp-request connection reject tcp-request content accept @@ -1658,6 +1659,16 @@ /^.{1,4096}$/u N + + 100 + 999 + Please specify a value between 100 and 999. + N + + + /^.{1,4096}$/u + N + /^.{1,4096}$/u N 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 d6893d0fa..c3392cfa6 100644 --- a/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf +++ b/net/haproxy/src/opnsense/service/templates/OPNsense/HAProxy/haproxy.conf @@ -420,6 +420,18 @@ {% set action_enabled = '0' %} # ERROR: missing parameters {% endif %} +{% elif action_data.type == 'http-response_set-status' %} +{% if action_data.http_response_set_status_code|default("") != "" %} +{% if action_data.http_response_set_status_reason|default("") != "" %} +{% set status_reason = ' reason "' ~ action_data.http_response_set_status_reason ~ '"' %} +{% else %} +{% set status_reason = '' %} +{% endif %} +{% do action_options.append('http-response set-status ' ~ action_data.http_response_set_status_code ~ status_reason) %} +{% else %} +{% set action_enabled = '0' %} + # ERROR: missing parameters +{% endif %} {% elif action_data.type == 'tcp-request_connection_accept' %} {% do action_options.append('tcp-request connection accept') %} {% elif action_data.type == 'tcp-request_connection_reject' %}