From 877b219c64ac0919cec19482c9e7795b0fb3ef7d Mon Sep 17 00:00:00 2001 From: Monviech <79600909+Monviech@users.noreply.github.com> Date: Fri, 7 Mar 2025 09:11:23 +0100 Subject: [PATCH] dnsmasq: Allow domain overrides to be optionally sorted by sequence number to support strict-order (#8411) * dnsmasq: Allow domain overrides to be optionally sorted by sequence number to support strict-order. * dnsmasq: Make sequence required, default to 1 and bump model version, simplify sorting in template. --- .../OPNsense/Dnsmasq/forms/dialogDomainOverride.xml | 10 ++++++++++ .../mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml | 9 ++++++++- .../service/templates/OPNsense/Dnsmasq/dnsmasq.conf | 5 +++-- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDomainOverride.xml b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDomainOverride.xml index 9981898e0..407d5d945 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDomainOverride.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDomainOverride.xml @@ -1,4 +1,14 @@
+ + domainoverride.sequence + + text + Sort with a sequence number, e.g., for strict processing order when using the "strict-order" option. + + 6em + asc + + domainoverride.domain diff --git a/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml b/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml index 7ab53cf2f..7b9f918cb 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.xml @@ -1,6 +1,6 @@ /dnsmasq - 1.0.2 + 1.0.3 @@ -94,6 +94,13 @@ + + 1 + 99999 + 1 + Y + Please enter a value between 1 and 99999. + Y N diff --git a/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf b/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf index 2184a666a..d04c63b29 100644 --- a/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf +++ b/src/opnsense/service/templates/OPNsense/Dnsmasq/dnsmasq.conf @@ -60,8 +60,9 @@ bind-interfaces bogus-priv {% endif %} -{% for override in helpers.toList('dnsmasq.domainoverrides') %} -server=/{{override.domain}}/{{override.ip}}{%if override.port %}#{{override.port}}{% endif %}{%if override.srcip %}@{{override.srcip}}{% endif %} +{# Domain Overrides can be sorted by sequence to support strict order #} +{% for override in helpers.toList('dnsmasq.domainoverrides', sortBy='sequence', sortAs='int') %} +server=/{{override.domain}}/{{override.ip}}{%if override.port %}#{{override.port}}{% endif %}{%if override.srcip %}@{{override.srcip}}{% endif +%} {% if helpers.exists('system.webgui.nodnsrebindcheck') %} rebind-domain-ok=/{{override.domain}}/ {% endif %}