summaryrefslogtreecommitdiffstats
path: root/etc/inc
diff options
context:
space:
mode:
authorRenato Botelho <garga@FreeBSD.org>2013-05-07 09:19:33 -0300
committerRenato Botelho <garga@FreeBSD.org>2013-05-07 09:20:41 -0300
commite8307ae03e2769bd0ebaa4b9441ac797b50a3800 (patch)
tree0365b369ffb9cb0eaab29b1b357e6844c28bf849 /etc/inc
parent7610866f5c0761e0236bda7b298acca53e61f9c9 (diff)
downloadpfsense-e8307ae03e2769bd0ebaa4b9441ac797b50a3800.zip
pfsense-e8307ae03e2769bd0ebaa4b9441ac797b50a3800.tar.gz
Fixes for track6 interfaces:
. Do not remove link-local when it's already correct . Let dhcp6c deal with tracked interface IP
Diffstat (limited to 'etc/inc')
-rw-r--r--etc/inc/interfaces.inc9
1 files changed, 5 insertions, 4 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index a618323..09f21a9 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -3091,7 +3091,7 @@ function interface_track6_configure($interface = "lan", $wancfg) {
/* always configure a link-local of fe80::1:1 on the track6 interfaces */
$realif = get_real_interface($interface);
$linklocal = find_interface_ipv6_ll($realif);
- if (!empty($linklocal))
+ if (!empty($linklocal) && ($linklocal != "fe80::1:1"))
mwexec("/sbin/ifconfig {$realif} inet6 {$linklocal} delete");
mwexec("/sbin/ifconfig {$realif} inet6 fe80::1:1%{$realif}");
@@ -3267,10 +3267,11 @@ function interface_track6_dhcp6_configure($interface = "lan", $lancfg) {
$lanif = get_real_interface($interface);
$oip = find_interface_ipv6($lanif);
- if (is_ipaddrv6($oip))
+ if (is_ipaddrv6($oip) && ($wancfg['ipaddrv6'] != "dhcp6")) {
mwexec("/sbin/ifconfig {$lanif} inet6 {$oip} delete");
- unset($interface_ipv6_arr_cache[$lanif]);
- unset($interface_snv6_arr_cache[$lanif]);
+ unset($interface_ipv6_arr_cache[$lanif]);
+ unset($interface_snv6_arr_cache[$lanif]);
+ }
if ($wancfg['ipaddrv6'] == "slaac") {
$ifcfgipv6 = get_interface_ipv6($lancfg['track6-interface']);
OpenPOWER on IntegriCloud