diff options
author | jim-p <jimp@pfsense.org> | 2013-11-01 10:43:40 -0400 |
---|---|---|
committer | jim-p <jimp@pfsense.org> | 2013-11-01 10:45:21 -0400 |
commit | 19b102161253ac33bdf26010e6e110d6e71cc06c (patch) | |
tree | 8c59752771aa99c6be199c5cc41074fdc402bacd | |
parent | 870608984c1d51850a8db5e0a3ab04d2986973d6 (diff) | |
download | pfsense-19b102161253ac33bdf26010e6e110d6e71cc06c.zip pfsense-19b102161253ac33bdf26010e6e110d6e71cc06c.tar.gz |
Prevent a Fall Back Pool from being selected when the DNS protocol is in use. If one is present in the config, ignore it. Fixes #3300
-rw-r--r-- | etc/inc/vslb.inc | 4 | ||||
-rwxr-xr-x | usr/local/www/load_balancer_virtual_server_edit.php | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/etc/inc/vslb.inc b/etc/inc/vslb.inc index f2bf532..49089a2 100644 --- a/etc/inc/vslb.inc +++ b/etc/inc/vslb.inc @@ -337,7 +337,7 @@ function relayd_configure($kill_first=false) { $conf .= " forward to <{$vs_a[$i]['poolname']}> port {$dest_port} {$lbmode} {$check_a[$pools[$vs_a[$i]['poolname']]['monitor']]} \n"; - if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0) + if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0 && ($vs_a[$i]['relay_protocol'] != 'dns')) $conf .= " forward to <{$vs_a[$i]['sitedown']}> port {$dest_port} {$lbmode} {$check_a[$pools[$vs_a[$i]['poolname']]['monitor']]} \n"; $conf .= "}\n"; } else { @@ -349,7 +349,7 @@ function relayd_configure($kill_first=false) { $conf .= " sticky-address\n"; /* sitedown MUST use the same port as the primary pool - sucks, but it's a relayd thing */ - if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0) + if (isset($vs_a[$i]['sitedown']) && strlen($vs_a[$i]['sitedown']) > 0 && ($vs_a[$i]['relay_protocol'] != 'dns')) $conf .= " forward to <{$vs_a[$i]['sitedown']}> port {$dest_port} {$check_a[$pools[$vs_a[$i]['sitedown']]['monitor']]} \n"; $conf .= "}\n"; diff --git a/usr/local/www/load_balancer_virtual_server_edit.php b/usr/local/www/load_balancer_virtual_server_edit.php index 32d8cdd..4d7eb6a 100755 --- a/usr/local/www/load_balancer_virtual_server_edit.php +++ b/usr/local/www/load_balancer_virtual_server_edit.php @@ -96,6 +96,9 @@ if ($_POST) { else if (is_subnetv4($_POST['ipaddr']) && subnet_size($_POST['ipaddr']) > 64) $input_errors[] = sprintf(gettext("%s is a subnet containing more than 64 IP addresses."), $_POST['ipaddr']); + if ((strtolower($_POST['relay_protocol']) == "dns") && !empty($_POST['sitedown'])) + $input_errors[] = gettext("You cannot select a Fall Back Pool when using the DNS relay protocol."); + if (!$input_errors) { $vsent = array(); if(isset($id) && $a_vs[$id]) @@ -232,7 +235,8 @@ include("head.inc"); } ?> </select> - <br><b><?=gettext("NOTE:"); ?></b> <?=gettext("This is the server that clients will be redirected to if *ALL* servers in the pool are offline."); ?> + <br><?=gettext("The server pool to which clients will be redirected if *ALL* servers in the Virtual Server Pool are offline."); ?> + <br><?=gettext("This option is NOT compatible with the DNS relay protocol."); ?> <?php endif; ?> </td> </tr> |