summaryrefslogtreecommitdiffstats
path: root/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-01-03 19:45:16 +0000
committerErmal <eri@pfsense.org>2011-01-03 19:45:16 +0000
commit3dfc2d1a82e68f81856427316973f3fe480d603b (patch)
tree1c41642cc1f2c49eed538b780d15f197da3797f0 /etc/inc/interfaces.inc
parente9a17661098cda5e6e24a472400f592998ac3bba (diff)
downloadpfsense-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.inc36
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) {
OpenPOWER on IntegriCloud