diff options
author | marjohn56 <martin@queens-park.com> | 2017-03-11 09:59:44 +0000 |
---|---|---|
committer | marjohn56 <martin@queens-park.com> | 2017-03-12 11:03:53 +0000 |
commit | 07c304a5593e4fc7d574964bbf3641f92c16d8fa (patch) | |
tree | 199131ff0b2dee8e95e53faa230edc36d6355d11 /src/usr/local | |
parent | 718cbc2d3921627e9767e59d539386c843dffcc4 (diff) | |
download | pfsense-07c304a5593e4fc7d574964bbf3641f92c16d8fa.zip pfsense-07c304a5593e4fc7d574964bbf3641f92c16d8fa.tar.gz |
WAN flap loss of IPv6
Some hardware is taking too long to set ACCEPT_RTADV on the Interface,
this results in RTSOLD exiting and this not sending RS to start the
process. Apart from adding a delay to the start of RTSOLD which did
improve but not totally fix the issue the other change is to prevent the
call to -ACCEPT_RTADV if the interface is using DHCP6.
-ACCEPT_RTADV in the case of wancfg['dhcp6usev4iface'] || $wancfg['ipaddr']==='ppp'
Cleaning up dhcp6c kill calls.
ppp-ipv6
Changed to call kill_dhcp6client_process() to make
sure the lock files are also cleared.
Interfaces.php
Changed to call kill_dhcp6client_process() to make
sure the lock files are also cleared.
Diffstat (limited to 'src/usr/local')
-rwxr-xr-x | src/usr/local/sbin/ppp-ipv6 | 7 | ||||
-rwxr-xr-x | src/usr/local/www/interfaces.php | 5 |
2 files changed, 3 insertions, 9 deletions
diff --git a/src/usr/local/sbin/ppp-ipv6 b/src/usr/local/sbin/ppp-ipv6 index 53d9bcc..c98e1f1 100755 --- a/src/usr/local/sbin/ppp-ipv6 +++ b/src/usr/local/sbin/ppp-ipv6 @@ -41,11 +41,8 @@ function interface_ipv6_lower($interface_real) { break; } // bring down dhcp6c if it is running - $pidv6 = find_dhcp6c_process($interface_real); - if ($pidv6) { - posix_kill($pidv6, SIGTERM); - sleep(3); - } + kill_dhcp6client_process($interface_real,false); + unlink_if_exists("{$g['varetc_path']}/dhcp6c_{$interface}.conf"); // disable router advertisements (and therefore SLAAC) diff --git a/src/usr/local/www/interfaces.php b/src/usr/local/www/interfaces.php index 7b68440..f8f8e6b 100755 --- a/src/usr/local/www/interfaces.php +++ b/src/usr/local/www/interfaces.php @@ -986,10 +986,7 @@ if ($_POST['apply']) { kill_dhclient_process($wancfg['if']); } if ($wancfg['ipaddrv6'] == "dhcp6") { - $pid = find_dhcp6c_process($wancfg['if']); - if ($pid) { - posix_kill($pid, SIGTERM); - } + kill_dhcp6client_process($wancfg['if'],true); } } $ppp = array(); |