diff --git a/etc/inc/vslb.inc b/etc/inc/vslb.inc index f2bf5324f1..49089a2428 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 2f66c9685a..db7a49fd15 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"); } ?> -
+
+