summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Wood <david@wood2.org.uk>2016-01-06 02:03:07 +0000
committerDavid Wood <david@wood2.org.uk>2016-01-06 02:38:06 +0000
commit3bcd4ff62371fe7bc53145e55ccdd2d479475ee6 (patch)
treecad7d859586b302826cea2cb9c1c02f6b6bd1abf
parenta31457d9614b7b3f57ea4864eca056a387a570c6 (diff)
downloadpfsense-3bcd4ff62371fe7bc53145e55ccdd2d479475ee6.zip
pfsense-3bcd4ff62371fe7bc53145e55ccdd2d479475ee6.tar.gz
Prevent ppp-ipv6 from taking any action when dhcp6 is active on the parent interface, not the PPP interface
-rwxr-xr-xusr/local/sbin/ppp-ipv68
1 files changed, 8 insertions, 0 deletions
diff --git a/usr/local/sbin/ppp-ipv6 b/usr/local/sbin/ppp-ipv6
index a05a4c2..b1cac73 100755
--- a/usr/local/sbin/ppp-ipv6
+++ b/usr/local/sbin/ppp-ipv6
@@ -25,6 +25,10 @@ function interface_ipv6_lower($interface_real) {
switch ($ifcfg['ipaddrv6']) {
case 'slaac':
case 'dhcp6':
+ // Take no action if dhcp6 is active on the parent interface, not the PPP interface
+ if ($ifcfg['ipaddrv6']==='dhcp6' && !isset($ifcfg['dhcp6usev4iface'])) {
+ break;
+ }
// bring down dhcp6c if it is running
$pidv6 = find_dhcp6c_process($interface_real);
if ($pidv6) {
@@ -65,6 +69,10 @@ function interface_ipv6_raise($interface_real) {
switch ($ifcfg['ipaddrv6']) {
case 'slaac':
case 'dhcp6':
+ // Take no action if dhcp6 is active on the parent interface, not the PPP interface
+ if ($ifcfg['ipaddrv6']==='dhcp6' && !isset($ifcfg['dhcp6usev4iface'])) {
+ break;
+ }
$pidv6 = find_dhcp6c_process($interface_real);
if (empty($pidv6)) {
// only fire if router advertisements off
OpenPOWER on IntegriCloud