diff options
author | Ermal <eri@pfsense.org> | 2011-01-03 19:45:16 +0000 |
---|---|---|
committer | Ermal <eri@pfsense.org> | 2011-01-03 19:45:16 +0000 |
commit | 3dfc2d1a82e68f81856427316973f3fe480d603b (patch) | |
tree | 1c41642cc1f2c49eed538b780d15f197da3797f0 /etc/inc/interfaces.inc | |
parent | e9a17661098cda5e6e24a472400f592998ac3bba (diff) | |
download | pfsense-3dfc2d1a82e68f81856427316973f3fe480d603b.zip pfsense-3dfc2d1a82e68f81856427316973f3fe480d603b.tar.gz |
When the parent interface of a pppoe is assigned do not remove the interface from ng_ether since this will break ppp clients of netgraph with this interface as parent. This solves http://forum.pfsense.org/index.php/topic,31247.75.html
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r-- | etc/inc/interfaces.inc | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index de95433..2d16927 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -103,18 +103,30 @@ function interface_netgraph_needed($interface = "wan") { break; } } - if ($found == false && !empty($config['interfaces'][$interface])) { - switch ($config['interfaces'][$interface]['ipaddr']) { - case "ppp": - case "pppoe": - case "l2tp": - case "pptp": - $found = true; - break; - default: - $found = false; - break; - } + if ($found == false) { + if (!empty($config['interfaces'][$interface])) { + switch ($config['interfaces'][$interface]['ipaddr']) { + case "ppp": + case "pppoe": + case "l2tp": + case "pptp": + $found = true; + break; + default: + $found = false; + break; + } + } else { + $realif = get_real_interface($interface); + if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) { + foreach ($config['ppps']['ppp'] as $pppid => $ppp) { + if ($realif == $ppp['if']) { + $found = true; + break; + } + } + } + } } if ($found == false) { |