fw4: add support for zone log_limit
[project/firewall4.git] / root / usr / share / firewall4 / templates / redirect.uc
index 933fbd72276d1713b1aab253f581de4db0282a01..c1310a71a33f3a3a8cc71550f822595cd551f1a7 100644 (file)
        {{ fw4.concat(redirect.ipset.fields) }}{{
                redirect.ipset.invert ? ' !=' : ''
        }} @{{ redirect.ipset.name }} {%+ endif -%}
-{%+ if (redirect.counter): -%}
+{%+ if (redirect.log && zone?.log_limit): -%}
+       limit name "{{ zone.name }}.log_limit" log prefix {{ fw4.quote(redirect.log, true) }}
+               {%+ include("redirect.uc", { fw4, zone, redirect: { ...redirect, log: 0 } }) %}
+{%+ else -%}
+{%+  if (redirect.counter): -%}
        counter {%+ endif -%}
-{%+ if (redirect.log): -%}
+{%+  if (redirect.log): -%}
        log prefix {{ fw4.quote(redirect.log, true) }} {%+ endif -%}
-{% if (redirect.target == "redirect"): -%}
+{%   if (redirect.target == "redirect"): -%}
        redirect{% if (redirect.rport): %} to {{ fw4.port(redirect.rport) }}{% endif %}
-{%- elif (redirect.target == "accept" || redirect.target == "masquerade"): -%}
+{%-  elif (redirect.target == "accept" || redirect.target == "masquerade"): -%}
        {{ redirect.target }}
-{%- else -%}
+{%-  else -%}
        {{ redirect.target }} {{ redirect.raddr ? fw4.host(redirect.raddr, redirect.rport != null) : '' }}
        {%- if (redirect.rport): %}:{{ fw4.port(redirect.rport) }}{% endif %}
-{% endif %} comment {{ fw4.quote(`!fw4: ${redirect.name}`, true) }}
+{%   endif %} comment {{ fw4.quote(`!fw4: ${redirect.name}`, true) }}
+{%  endif -%}