summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgnhb <gnoahb@gmail.com>2010-05-18 22:40:05 +0700
committergnhb <gnoahb@gmail.com>2010-05-18 22:40:05 +0700
commitc2b2b57131adbc2cb4b5870fb812963581a4d3ee (patch)
tree4ee96cee92fd68aad0999d9d8bbcfb9883282f2a
parent2666de59fed434671d6d869558f49dc89d126a67 (diff)
downloadpfsense-c2b2b57131adbc2cb4b5870fb812963581a4d3ee.zip
pfsense-c2b2b57131adbc2cb4b5870fb812963581a4d3ee.tar.gz
PPPoE config upgrade code and bump config version in globals.inc
-rw-r--r--etc/inc/globals.inc2
-rw-r--r--etc/inc/upgrade_config.inc95
2 files changed, 96 insertions, 1 deletions
diff --git a/etc/inc/globals.inc b/etc/inc/globals.inc
index 782251a..6e2b1f6 100644
--- a/etc/inc/globals.inc
+++ b/etc/inc/globals.inc
@@ -88,7 +88,7 @@ $g = array(
"disablehelpmenu" => false,
"disablehelpicon" => false,
"debug" => false,
- "latest_config" => "6.3",
+ "latest_config" => "6.4",
"nopkg_platforms" => array("cdrom"),
"minimum_ram_warning" => "105",
"minimum_ram_warning_text" => "128 MB",
diff --git a/etc/inc/upgrade_config.inc b/etc/inc/upgrade_config.inc
index cb690d6..25b7456 100644
--- a/etc/inc/upgrade_config.inc
+++ b/etc/inc/upgrade_config.inc
@@ -1965,4 +1965,99 @@ function upgrade_062_to_063() {
}
}
+
+function upgrade_063_to_064() {
+ global $config;
+ if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
+ foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
+ if (isset($ppp['port'])){
+ $config['ppps']['ppp'][$pppid]['ports'] = $ppp['port'];
+ unset($config['ppps']['ppp'][$pppid]['port']);
+ }
+ if (!isset($ppp['type'])){
+ $config['ppps']['ppp'][$pppid]['type'] = "ppp";
+ }
+ if (!isset($ppp['ptpid'])){
+ $config['ppps']['ppp'][$pppid]['ptpid'] = uniqid('', true);
+ }
+ }
+ }
+
+ $ifcfg = &$config['interfaces'];
+
+ if (!is_array($config['ppps']['ppp']))
+ $config['ppps']['ppp'] = array();
+ $a_ppps = &$config['ppps']['ppp'];
+
+ foreach ($ifcfg as $ifname => $ifinfo) {
+ $ppp = array();
+ // For pppoe conversion
+ if ($ifinfo['ipaddr'] == "pppoe" || $ifinfo['ipaddr'] == "pptp"){
+ if (isset($ifinfo['ptpid']))
+ continue;
+ $ppp['ptpid'] = uniqid('', true);
+ $ppp['type'] = $ifinfo['ipaddr'];
+ $ppp['ports'] = $ifinfo['if'];
+ if ($ifinfo['ipaddr'] == "pppoe"){
+ $ppp['username'] = $ifinfo['pppoe_username'];
+ $ppp['password'] = base64_encode($ifinfo['pppoe_password']);
+ }
+ if ($ifinfo['ipaddr'] == "pptp"){
+ $ppp['username'] = $ifinfo['pptp_username'];
+ $ppp['password'] = base64_encode($ifinfo['pptp_password']);
+ }
+ foreach ($config['gateways']['gateway_item'] as $gateway){
+ if ($gateway['name'] == $ifname && isset($gateway['defaultgw'])){
+ $ppp['defaultgw'] = true;
+ }
+ }
+
+ if (isset($ifinfo['provider']))
+ $ppp['provider'] = $ifinfo['provider'];
+ if (isset($ifinfo['ondemand']))
+ $ppp['ondemand'] = true;
+ if (isset($ifinfo['timeout']))
+ $ppp['idletimeout'] = $ifinfo['timeout'];
+ if (isset($ifinfo['pppoe']['pppoe-reset-type'])){
+ $ppp['pppoe-reset-type'] = $ifinfo['pppoe']['pppoe-reset-type'];
+ if (is_array($config['cron']['item'])) {
+ for ($i = 0; $i < count($config['cron']['item']); $i++) {
+ $item = $config['cron']['item'][$i];
+ if (strpos($item['command'], "/conf/pppoe{$ifname}restart") !== false)
+ $config['cron']['item'][$i]['command'] = "/var/etc/pppoe_restart_" . $ppp['ptpid'];
+ }
+ }
+ }
+ if (isset($ifinfo['local']))
+ $ppp['localip'] = $ifinfo['local'];
+ if (isset($ifinfo['subnet']))
+ $ppp['subnet'] = $ifinfo['subnet'];
+ if (isset($ifinfo['remote']))
+ $ppp['gateway'] = $ifinfo['remote'];
+
+ $ifcfg[$ifname]['ptpid'] = $ppp['ptpid'];
+ if ($ifname == "wan")
+ $ifcfg[$ifname]['if'] = $ifinfo['ipaddr'] ."0";
+ else
+ $ifcfg[$ifname]['if'] = $ifinfo['ipaddr'] . substr($ifname,3);
+ unset($ifcfg[$ifname]['pppoe_username']);
+ unset($ifcfg[$ifname]['pppoe_password']);
+ unset($ifcfg[$ifname]['provider']);
+ unset($ifcfg[$ifname]['ondemand']);
+ unset($ifcfg[$ifname]['timeout']);
+ unset($ifcfg[$ifname]['pppoe_reset']);
+ unset($ifcfg[$ifname]['pppoe_preset']);
+ unset($ifcfg[$ifname]['pppoe']);
+ unset($ifcfg[$ifname]['pptp_username']);
+ unset($ifcfg[$ifname]['pptp_password']);
+ unset($ifcfg[$ifname]['local']);
+ unset($ifcfg[$ifname]['subnet']);
+ unset($ifcfg[$ifname]['remote']);
+
+ $a_ppps[] = $ppp;
+
+ }
+ }
+}
+
?>
OpenPOWER on IntegriCloud