diff options
author | Renato Botelho <garga@FreeBSD.org> | 2014-12-16 10:18:58 -0200 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2014-12-16 10:22:01 -0200 |
commit | 43157c8f7d289749c8a87a4b4f95b8f981b06f86 (patch) | |
tree | de9400109379a413cac27cd762dc256dc99bae03 /etc/inc/interfaces.inc | |
parent | 745e7941af6d7709e82ffa7a32b3f007d8b03dc5 (diff) | |
download | pfsense-43157c8f7d289749c8a87a4b4f95b8f981b06f86.zip pfsense-43157c8f7d289749c8a87a4b4f95b8f981b06f86.tar.gz |
Teach interface_vip_bring_down() to deal with IP Alias over CARP
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r-- | etc/inc/interfaces.inc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 733ba20..d95b6eb 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -1054,7 +1054,13 @@ function interface_reconfigure($interface = "wan", $reloadall = false) { function interface_vip_bring_down($vip) { global $g; - $vipif = get_real_interface($vip['interface']); + if (strpos($vip['interface'], '_vip')) { + $carpvip = get_configured_carp_interface_list($vip['interface'], 'inet' . (is_ipaddrv6($vip['subnet']) ? '6' : ''), 'vip'); + $iface = $carpvip['interface']; + } else + $iface = $vip['interface']; + + $vipif = get_real_interface($iface); switch ($vip['mode']) { case "proxyarp": if (file_exists("{$g['varrun_path']}/choparp_{$vipif}.pid")) |