From 3e66f270b1c28d91e2230fd10d00993ebc0ee576 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Tue, 20 Jul 2021 16:50:54 +0200 Subject: [PATCH] unbound: migrate to single model #4327 --- plist | 1 + .../OPNsense/Unbound/Migrations/M1_0_0.php | 80 +++++++++++++++++++ .../app/models/OPNsense/Unbound/Unbound.xml | 4 +- .../templates/OPNsense/Unbound/core/dot.conf | 2 +- 4 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_0.php diff --git a/plist b/plist index 6ba2a87dc..4f3ebbb4f 100644 --- a/plist +++ b/plist @@ -557,6 +557,7 @@ /usr/local/opnsense/mvc/app/models/OPNsense/TrafficShaper/TrafficShaper.xml /usr/local/opnsense/mvc/app/models/OPNsense/Unbound/ACL/ACL.xml /usr/local/opnsense/mvc/app/models/OPNsense/Unbound/Menu/Menu.xml +/usr/local/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_0.php /usr/local/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.php /usr/local/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml /usr/local/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_0.php b/src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_0.php new file mode 100644 index 000000000..a5207aebe --- /dev/null +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_0.php @@ -0,0 +1,80 @@ +object(); + + if (empty($config->OPNsense->unboundplus)) { + return; + } + + $mdlNode = $config->OPNsense->unboundplus; + + foreach (['dnsbl', 'miscellaneous'] as $strip) { + if (!empty($mdlNode->$strip)) { + $model->$strip->setAttributeValue('version', null); + } + } + + if (!empty($mdlNode->miscellaneous->dotservers)) { + foreach (explode(',', (string)$mdlNode->miscellaneous->dotservers) as $dot) { + $dotNode = $model->dots->dot->add(); + $dotData = explode('@', $dot, 2); + + $dotEnabled = new BooleanField('enabled', 'enabled'); + $dotEnabled->setValue('1'); + $dotNode->addChildNode('enabled', $dotEnabled); + + $dotServer = new NetworkField('server', 'server'); + $dotServer->setValue($dotData[0]); + $dotNode->addChildNode('server', $dotServer); + + if (!empty($dotData[1])) { + $dotPort = new PortField('port', 'port'); + $dotPort->setValue($dotData[1]); + $dotNode->addChildNode('port', $dotPort); + } + } + } + } +} diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml index 8820390c3..7d9630219 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml @@ -1,7 +1,7 @@ //OPNsense/unboundplus Unbound configuration - 0.0.0 + 1.0.0 unbound.enable @@ -65,7 +65,7 @@ Y - Y + N N diff --git a/src/opnsense/service/templates/OPNsense/Unbound/core/dot.conf b/src/opnsense/service/templates/OPNsense/Unbound/core/dot.conf index 266c16602..05141d115 100644 --- a/src/opnsense/service/templates/OPNsense/Unbound/core/dot.conf +++ b/src/opnsense/service/templates/OPNsense/Unbound/core/dot.conf @@ -12,7 +12,7 @@ forward-zone: name: "." forward-tls-upstream: yes {% for dot in dots %} - forward-addr: {{ dot.server }}@{{ dot.port }}{% if dot.verify %}#{{ dot.verify }}{% endif %} + forward-addr: {{ dot.server }}{% if dot.port %}@{{ dot.port }}{% endif %}{% if dot.verify %}#{{ dot.verify }}{% endif %} {% endfor %} {% endif %}