diff options
author | Luiz Otavio O Souza <luiz@netgate.com> | 2016-02-16 11:31:20 -0600 |
---|---|---|
committer | Luiz Otavio O Souza <luiz@netgate.com> | 2016-02-16 11:31:20 -0600 |
commit | 3185f659cd3ec7157595b3b701a371b21292e706 (patch) | |
tree | ddd21901f50903c1d3e2f2b0211b0ec3810d34f6 /src | |
parent | 2a0aef55bc0deaaa81b0321c3d1e9b1b72f77290 (diff) | |
download | pfsense-3185f659cd3ec7157595b3b701a371b21292e706.zip pfsense-3185f659cd3ec7157595b3b701a371b21292e706.tar.gz |
Fix link_interface_to_vips() to account for IP alias over CARP.
Diffstat (limited to 'src')
-rw-r--r-- | src/etc/inc/interfaces.inc | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 53fa9ba..38db490 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -5038,18 +5038,24 @@ function link_interface_to_vips($int, $action = "", $vhid = '') { if (is_array($config['virtualip']['vip'])) { $result = array(); foreach ($config['virtualip']['vip'] as $vip) { - if ($int == $vip['interface']) { - if ($action == "update") { - interfaces_vips_configure($int); - } else { - if (empty($vhid) || ($vhid == $vip['vhid'])) { - $result[] = $vip; - } + if (substr($vip['interface'], 0, 4) == "_vip") + $iface = get_configured_vip_interface($vip['interface']); + else + $iface = $vip['interface']; + if ($int != $iface) + continue; + if ($action == "update") { + interfaces_vips_configure($int); + } else { + if (empty($vhid) || ($vhid == $vip['vhid'])) { + $result[] = $vip; } } } return $result; } + + return NULL; } /****f* interfaces/link_interface_to_bridge |