summaryrefslogtreecommitdiffstats
path: root/etc/inc/upgrade_config.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2010-08-23 18:15:57 +0000
committerErmal <eri@pfsense.org>2010-08-23 18:15:57 +0000
commit4f1ebacbfb78c855b85d447f2de7f397d7117167 (patch)
treeea9fceb11d9e6fe72dd4e1be2a27523b3ba81f0e /etc/inc/upgrade_config.inc
parent25a2bf77d77de2ad0f5a9f3c9daf18b88e90b844 (diff)
downloadpfsense-4f1ebacbfb78c855b85d447f2de7f397d7117167.zip
pfsense-4f1ebacbfb78c855b85d447f2de7f397d7117167.tar.gz
Ticket #769. Convert assigned openvpn interfaces by using custom options to 2.0 style assigned openvpn interfaces. This upgrade removes the 'dev tun#' from cutom options and upgrades the assigned interface name to new style.
Diffstat (limited to 'etc/inc/upgrade_config.inc')
-rw-r--r--etc/inc/upgrade_config.inc50
1 files changed, 50 insertions, 0 deletions
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index 24f56f7..eb1e425 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -1415,6 +1415,31 @@ function upgrade_051_to_052() {
/* allocate vpnid */
$server['vpnid'] = $vpnid++;
+ if (!empty($server['custom_options'])) {
+ $cstmopts = array();
+ $tmpcstmopts = explode(";", $server['custom_options']);
+ $assigned = false;
+ $tmpstr = "";
+ foreach ($tmpcstmopts as $tmpcstmopt) {
+ $tmpstr = str_replace(" ", "", $tmpcstmopt);
+ if (substr($tmpstr,0 ,6) == "devtun") {
+ $assigned = true;
+ continue;
+ } else
+ $cstmopts[] = $tmpcstmopt;
+ }
+ $server['custom_options'] = implode(";", $cstmopts);
+ if ($assigned == true) {
+ $realif = substr($tmpstr, 3);
+ foreach ($config['interfaces'] as $iface => $cfgif) {
+ if ($cfgif['if'] == $realif) {
+ $config['interfaces'][$iface]['if'] = "ovpns{$server['vpnid']}";
+ break;
+ }
+ }
+ }
+ }
+
$config['openvpn']['openvpn-server'][] = $server;
}
unset($config['installedpackages']['openvpnserver']);
@@ -1489,6 +1514,31 @@ function upgrade_051_to_052() {
/* allocate vpnid */
$client['vpnid'] = $vpnid++;
+ if (!empty($client['custom_options'])) {
+ $cstmopts = array();
+ $tmpcstmopts = explode(";", $client['custom_options']);
+ $assigned = false;
+ $tmpstr = "";
+ foreach ($tmpcstmopts as $tmpcstmopt) {
+ $tmpstr = str_replace(" ", "", $tmpcstmopt);
+ if (substr($tmpstr,0 ,6) == "devtun") {
+ $assigned = true;
+ continue;
+ } else
+ $cstmopts[] = $tmpcstmopt;
+ }
+ $client['custom_options'] = implode(";", $cstmopts);
+ if ($assigned == true) {
+ $realif = substr($tmpstr, 3);
+ foreach ($config['interfaces'] as $iface => $cfgif) {
+ if ($cfgif['if'] == $realif) {
+ $config['interfaces'][$iface]['if'] = "ovpnc{$client['vpnid']}";
+ break;
+ }
+ }
+ }
+ }
+
if (!empty($client['disable']))
$client['disable'] = true;
else
OpenPOWER on IntegriCloud