diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-05-07 09:19:33 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-05-07 09:20:41 -0300 |
commit | e8307ae03e2769bd0ebaa4b9441ac797b50a3800 (patch) | |
tree | 0365b369ffb9cb0eaab29b1b357e6844c28bf849 /etc/inc | |
parent | 7610866f5c0761e0236bda7b298acca53e61f9c9 (diff) | |
download | pfsense-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.inc | 9 |
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']); |