summaryrefslogtreecommitdiffstats
path: root/etc/inc/interfaces.inc
diff options
context:
space:
mode:
authorErmal <eri@pfsense.org>2011-06-14 12:50:14 +0000
committerErmal <eri@pfsense.org>2011-06-14 12:50:14 +0000
commitb526daafae3405b27fa7219d90a81272d0979f57 (patch)
tree095fe356df8cdbfa9db23179e4d49586b0831513 /etc/inc/interfaces.inc
parent31d5d37e9e86c66bf099d3820205250ef73a2d7d (diff)
downloadpfsense-b526daafae3405b27fa7219d90a81272d0979f57.zip
pfsense-b526daafae3405b27fa7219d90a81272d0979f57.tar.gz
Correct functiong does_vip_exist() to actually work. Fixes #1598
Diffstat (limited to 'etc/inc/interfaces.inc')
-rw-r--r--etc/inc/interfaces.inc27
1 files changed, 17 insertions, 10 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc
index af99b06..4a3498b 100644
--- a/etc/inc/interfaces.inc
+++ b/etc/inc/interfaces.inc
@@ -94,24 +94,31 @@ function does_vip_exist($vip) {
if(!$vip)
return false;
- $realif = get_real_interface($vip['interface']);
- $ints = get_interface_arr(true);
- if (!in_array($realif, $ints))
- return false;
- switch ($vip['type']) {
+ switch ($vip['mode']) {
case "carp":
case "carpdev":
+ $realif = "vip{$vip['vhid']}";
+ if (!does_interface_exist($realif)) {
+ return false;
+ }
+ break;
case "ipalias":
- $ifacedata = pfSense_getall_interface_addresses($realif);
- foreach ($ifacedata as $vipips) {
- if ($vipips == "{$vip['subnet']}/{$vip['subnet_bits']}")
- return true;
+ $realif = get_real_interface($vip['interface']);
+ if (!does_interface_exist($realif)) {
+ return false;
}
break;
case "proxyarp":
/* XXX: Implement this */
- break;
+ default:
+ return false;
+ }
+
+ $ifacedata = pfSense_getall_interface_addresses($realif);
+ foreach ($ifacedata as $vipips) {
+ if ($vipips == "{$vip['subnet']}/{$vip['subnet_bits']}")
+ return true;
}
return false;
OpenPOWER on IntegriCloud