diff options
author | Renato Botelho <renato@netgate.com> | 2016-08-05 15:13:13 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2016-08-05 15:13:23 -0300 |
commit | 88871e26958eee525258fb9ee1297df15bab4c9b (patch) | |
tree | b578b0c6ab05b5f9f935b96f24d4ce469f396e68 /src/etc/rc.linkup | |
parent | e8382f7fda9e09e4c94b6833ff20ebc7101d1b6f (diff) | |
download | pfsense-88871e26958eee525258fb9ee1297df15bab4c9b.zip pfsense-88871e26958eee525258fb9ee1297df15bab4c9b.tar.gz |
Ignore linkup eventos for interfaces that are member of bridges and have no IP address configured
Diffstat (limited to 'src/etc/rc.linkup')
-rwxr-xr-x | src/etc/rc.linkup | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/etc/rc.linkup b/src/etc/rc.linkup index a416567..2a13ec4 100755 --- a/src/etc/rc.linkup +++ b/src/etc/rc.linkup @@ -44,8 +44,18 @@ function handle_argument_group($iface, $argument2) { return; } - $ipaddr = $config['interfaces'][$iface]['ipaddr']; - $ip6addr = $config['interfaces'][$iface]['ipaddrv6']; + if (empty($config['interfaces'][$iface]['ipaddr'])) { + $ipaddr = ''; + } else { + $ipaddr = $config['interfaces'][$iface]['ipaddr']; + } + + if (empty($config['interfaces'][$iface]['ipaddrv6'])) { + $ip6addr = ''; + } else { + $ip6addr = $config['interfaces'][$iface]['ipaddrv6']; + } + $staticv4 = false; if (empty($ipaddr)) { $staticv4 = true; @@ -58,6 +68,15 @@ function handle_argument_group($iface, $argument2) { } else { $staticv6 = is_ipaddrv6($ip6addr); } + + /* Take care of events on bridge members when IP is configured on bridge */ + $bridge_if = link_interface_to_bridge($iface); + if (!empty($bridge_if) && empty($ipaddr) && empty($ip6addr)) { + log_error("Ignoring link event for bridge member without IP config"); + + return; + } + if ($staticv4 === true && $staticv6 === true) { $friendly = convert_friendly_interface_to_friendly_descr($iface); log_error("Hotplug event detected for {$friendly}({$iface}) static IP ({$ipaddr} {$ip6addr})"); |