diff options
author | Renato Botelho <garga@FreeBSD.org> | 2013-02-18 18:10:27 -0300 |
---|---|---|
committer | Renato Botelho <garga@FreeBSD.org> | 2013-02-18 18:10:27 -0300 |
commit | 4021ec36a9ce460b1501f42da8237d51bbedc611 (patch) | |
tree | 68059f53bacaf83f0f95230b70526ab0609545f4 /etc/inc/pfsense-utils.inc | |
parent | 24c0145c2cdb7eb8006020579c7c8b82f0108412 (diff) | |
download | pfsense-4021ec36a9ce460b1501f42da8237d51bbedc611.zip pfsense-4021ec36a9ce460b1501f42da8237d51bbedc611.tar.gz |
CARP IPs were being checked twice in some cases. Fixes #2823
Diffstat (limited to 'etc/inc/pfsense-utils.inc')
-rw-r--r-- | etc/inc/pfsense-utils.inc | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/etc/inc/pfsense-utils.inc b/etc/inc/pfsense-utils.inc index 11c0057..f6b05bf 100644 --- a/etc/inc/pfsense-utils.inc +++ b/etc/inc/pfsense-utils.inc @@ -2453,25 +2453,25 @@ function is_ipaddr_configured($ipaddr, $ignore_if = "", $check_localip = false, return true; } } - - $interface_list_vips = get_configured_vips_list(true); - foreach ($interface_list_vips as $id => $vip) { - if ($ignore_if == "vip_{$id}") - continue; - if (strcasecmp($ipaddr, $vip['ipaddr']) == 0) - return true; - } - } else { $interface_list_ips = get_configured_ip_addresses(); foreach($interface_list_ips as $if => $ilips) { - if ($ignore_if == $if) + /* Also ignore CARP interfaces, it'll be checked below */ + if (($ignore_if == $if) || preg_match('/_vip[0-9]/', $if)) continue; if (strcasecmp($ipaddr, $ilips) == 0) return true; } } + $interface_list_vips = get_configured_vips_list(true); + foreach ($interface_list_vips as $id => $vip) { + if ($ignore_if == "vip_{$id}") + continue; + if (strcasecmp($ipaddr, $vip['ipaddr']) == 0) + return true; + } + if ($check_localip) { if (is_array($config['pptpd']) && !empty($config['pptpd']['localip']) && (strcasecmp($ipaddr, $config['pptpd']['localip']) == 0)) return true; |