From 0c9b98c0731f6486ee0734f58a099cd6023077d8 Mon Sep 17 00:00:00 2001 From: Chris Buechler Date: Thu, 28 Jan 2016 17:57:37 -0600 Subject: Import David W's patch fixing issues with dhcp6c being launched multiple times in some circumstances. Ticket #5621 --- src/usr/local/sbin/ppp-ipv6 | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/usr/local/sbin') diff --git a/src/usr/local/sbin/ppp-ipv6 b/src/usr/local/sbin/ppp-ipv6 index aa0536c..4d47de2 100755 --- a/src/usr/local/sbin/ppp-ipv6 +++ b/src/usr/local/sbin/ppp-ipv6 @@ -23,6 +23,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']) || $ifcfg['ipaddr']==='ppp')) { + break; + } // bring down dhcp6c if it is running $pidv6 = find_dhcp6c_process($interface_real); if ($pidv6) { @@ -63,6 +67,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']) || $ifcfg['ipaddr']==='ppp')) { + break; + } $pidv6 = find_dhcp6c_process($interface_real); if (empty($pidv6)) { // only fire if router advertisements off -- cgit v1.1