From de9f860fdd52209082ee37c1718949d5c1f2dfa7 Mon Sep 17 00:00:00 2001 From: Stephan de Wit Date: Mon, 11 Apr 2022 16:30:10 +0200 Subject: [PATCH] Unbound / Domain overrides: accept _msdcs since legacy supported it. Closes #5697 --- .../Unbound/FieldTypes/UnboundDomainField.php | 72 +++++++++++++++++++ .../app/models/OPNsense/Unbound/Unbound.xml | 3 +- 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100755 src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php b/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php new file mode 100755 index 000000000..329f21ac3 --- /dev/null +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php @@ -0,0 +1,72 @@ +internalValue != null) { + $validators[] = new CallbackValidator([ + "callback" => function($data) { + if (substr($data, 0, 6) == '_msdcs') { + $subdomain = substr($data, 7); + if (substr($data, 6, 1) != '.' || !Util::isDomain($subdomain)) { + return [gettext("A valid domain must be specified after '_msdcs', prefixed with a dot")]; + } + } elseif (!Util::isDomain($data)) { + return [gettext("A valid domain must be specified")]; + } + return []; + } + ]); + } + + return $validators; + } +} diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml index 1cf57ff90..6223507b2 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml @@ -226,9 +226,8 @@ 1 Y - + Y - /^(?:(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$/i A valid domain must be specified.