From f35f2e37a85bd7eefdc8e23ecd95591e07659f38 Mon Sep 17 00:00:00 2001 From: Seth Mos Date: Tue, 23 Jan 2007 22:00:13 +0000 Subject: [PATCH] Fix filter rules when using load balancing pools. Latest CVS was broken. Logic error. And we do need to guess. It's not a local IP, it's a gateway. Something with toffees --- etc/inc/filter.inc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/inc/filter.inc b/etc/inc/filter.inc index 7115ed0ff0..14216696cf 100644 --- a/etc/inc/filter.inc +++ b/etc/inc/filter.inc @@ -1415,16 +1415,16 @@ function generate_user_filter_rule($rule, $ngcounter) { for ($i = 0; isset($config['load_balancer']['lbpool'][$i]); $i++) { foreach ($config['load_balancer']['lbpool'][$i]['servers'] as $lbsvr) { $lbsvr_split=split("\|", $lbsvr); - if ($lbsvr_split[1] == $server) { + if ($lbsvr_split[1] == $server) /* deterimine interface gateway */ if(is_ipaddr($lbsvr_split[0])) { - $int = find_ip_interface($lbsvr_split[0]); + $int = guess_interface_from_ip($lbsvr_split[0]); + $gateway = $lbsvr_split[0]; log_error("Load balancer pool member contains IP address instead of interface name. Please reconfigure the load balancer pool {$config['load_balancer']['lbpool'][$i]['name']}"); } else { $int = convert_friendly_interface_to_real_interface_name($lbsvr_split[0]); + $gateway = get_interface_gateway($int); } - $gateway = get_interface_gateway($int); - } } } if($foundlb == 1)