summaryrefslogtreecommitdiffstats
path: root/etc/inc/upgrade_config.inc
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2014-09-24 18:43:05 -0300
committerRenato Botelho <garga@FreeBSD.org>2014-09-24 18:43:05 -0300
commitc11b7ffe562fc68047e4a10d6b42cffd24bc0439 (patch)
tree840f00ef8e67bae5b74d466a1eaaa2a102f32f7a /etc/inc/upgrade_config.inc
parent90a9593094d0baa2fd40c2edb730f427f436720f (diff)
downloadpfsense-c11b7ffe562fc68047e4a10d6b42cffd24bc0439.zip
pfsense-c11b7ffe562fc68047e4a10d6b42cffd24bc0439.tar.gz
Remove unbound files, menu and service during config upgrade, otherwise things can go really bad with functions redeclared un base and package unbound.inc and config corrupted when upgrading from 2.1.x with unbound installed to 2.2. PBI and package section are both removed later during package upgrade
Diffstat (limited to 'etc/inc/upgrade_config.inc')
-rw-r--r--etc/inc/upgrade_config.inc28
1 files changed, 28 insertions, 0 deletions
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index 48bc846..3949185 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -3381,6 +3381,34 @@ function upgrade_110_to_111() {
mwexec('/usr/sbin/pw groupadd -n unbound -g 59', true);
mwexec('/usr/sbin/pw useradd -n unbound -c "Unbound DNS Resolver" -d /var/unbound -s /usr/sbin/nologin -u 59 -g 59', true);
+ /* cleanup old unbound package stuffs */
+ unlink_if_exists("/usr/local/pkg/unbound.xml");
+ unlink_if_exists("/usr/local/pkg/unbound.inc");
+ unlink_if_exists("/usr/local/pkg/unbound_advanced.xml");
+ unlink_if_exists("/usr/local/www/unbound_status.php");
+ unlink_if_exists("/usr/local/www/unbound_acls.php");
+ unlink_if_exists("/usr/local/bin/unbound_monitor.sh");
+
+ /* Remove old menu and service entries */
+ if (isset($config['installedpackages']['menu']) && is_array($config['installedpackages']['menu'])) {
+ foreach ($config['installedpackages']['menu'] as $idx => $menu) {
+ if ($menu['name'] != 'Unbound DNS')
+ continue;
+
+ unset($config['installedpackages']['menu'][$idx]);
+ break;
+ }
+ }
+
+ if (isset($config['installedpackages']['service']) && is_array($config['installedpackages']['service'])) {
+ foreach ($config['installedpackages']['service'] as $idx => $service) {
+ if ($service['name'] != 'unbound')
+ continue;
+ unset($config['installedpackages']['service'][$idx]);
+ break;
+ }
+ }
+
if (!isset($config['installedpackages']['unbound']['config'][0]))
return;
OpenPOWER on IntegriCloud