diff options
author | Renato Botelho <garga@FreeBSD.org> | 2014-09-24 18:43:05 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2014-09-24 18:43:05 -0300 |
commit | c11b7ffe562fc68047e4a10d6b42cffd24bc0439 (patch) | |
tree | 840f00ef8e67bae5b74d466a1eaaa2a102f32f7a | |
parent | 90a9593094d0baa2fd40c2edb730f427f436720f (diff) | |
download | pfsense-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
-rw-r--r-- | etc/inc/upgrade_config.inc | 28 |
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; |