summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2012-12-07 20:47:00 +0000
committerErmal <eri@pfsense.org>2012-12-07 20:47:15 +0000
commit66c73aab00fc80028a1fbf2eceec18380268c55e (patch)
tree56f36f4d56947dcc041bb7bdcc4c0ee8e8699a7b /etc
parent0b73e6f2466194cfa6cc2b72180db84fba3f81fa (diff)
downloadpfsense-66c73aab00fc80028a1fbf2eceec18380268c55e.zip
pfsense-66c73aab00fc80028a1fbf2eceec18380268c55e.tar.gz
Fixes #2703 correctly remove ips from v6 interfaces. Also cleanup the srd0 bits here
Diffstat (limited to 'etc')
-rw-r--r--etc/inc/interfaces.inc34
1 files changed, 12 insertions, 22 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index f8435be..28dc04d 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -1120,31 +1120,30 @@ function interface_bring_down($interface = "wan", $destroy = false) {
sleep(3);
unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}.conf");
if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
mwexec("/usr/sbin/arp -d -i {$realif} -a");
}
break;
case "6rd":
- $realif = "srd0";
- if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
- if ($destroy == true)
- pfSense_interface_flags($realif, -IFF_UP);
- }
- break;
case "6to4":
$realif = "stf0";
if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
}
break;
default:
if(does_interface_exist("$realif")) {
- mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " delete", true);
+ $ip6 = get_interface_ipv6($interface);
+ if (is_ipaddrv6($ip6))
+ mwexec("/sbin/ifconfig " . escapeshellarg($realif) . " inet6 {$ip6} delete", true);
if ($destroy == true)
pfSense_interface_flags($realif, -IFF_UP);
mwexec("/usr/sbin/arp -d -i {$realif} -a");
@@ -1177,7 +1176,7 @@ function interface_bring_down($interface = "wan", $destroy = false) {
}
if ($destroy == true) {
- if (preg_match("/^[a-z0-9]+_vip|^tun|^ovpn|^gif|^gre|^lagg|^bridge|vlan|^stf|^srd/i", $realif))
+ if (preg_match("/^[a-z0-9]+_vip|^tun|^ovpn|^gif|^gre|^lagg|^bridge|vlan|^stf/i", $realif))
pfSense_interface_destroy($realif);
}
@@ -3154,15 +3153,7 @@ function interface_6rd_configure($interface = "wan") {
/* convert the 128 bits for the broker address back into a valid IPv6 address */
$rd6prefix = convert_128bit_to_ipv6($rd6prefixbin);
- /* setup the stf interface */
- /* use the srd device
- mwexec("/sbin/ifconfig srd0 destroy");
- mwexec("/sbin/ifconfig srd0 create");
- mwexec("/sbin/ifconfig srd0 v4plen {$wancfg['prefix-6rd-v4plen']} pfix {$rd6prefix} plen {$rd6prefixlen} braddr {$wancfg['gateway-6rd']}");
- log_error("Created 6rd interface srd0 v4plen {$wancfg['prefix-6rd-v4plen']} pfix {$rd6prefix} plen {$rd6prefixlen} braddr {$wancfg['gateway-6rd']}");
- */
/* stf approach only works when embedding the entire 32 bits of the v4 */
- mwexec("/sbin/ifconfig stf0 destroy");
mwexec("/sbin/ifconfig stf0 create");
mwexec("/sbin/ifconfig stf0 inet6 {$rd6prefix}/{$rd6prefixlen}");
log_error("Created 6rd interface stf0 {$rd6prefix}/{$rd6prefixlen}");
@@ -3171,16 +3162,15 @@ function interface_6rd_configure($interface = "wan") {
file_put_contents("{$g['tmp_path']}/{$wanif}_routerv6", "{$rd6brgw}\n");
file_put_contents("{$g['tmp_path']}/{$wanif}_defaultgwv6", "{$rd6brgw}\n");
- if (is_ipaddrv4($ip4gateway)) {
+ if (is_ipaddrv4($ip4gateway))
mwexec("route change -host " . $wancfg['gateway-6rd'] . " {$ip4gateway}");
- }
/* configure dependent interfaces */
foreach($iflist as $if => $ifname) {
if($config['interfaces'][$if]['track6-interface'] == $interface)
interface_track6_configure($if);
}
-
+
return 0;
}
OpenPOWER on IntegriCloud