diff --git a/etc/inc/vslb.inc b/etc/inc/vslb.inc index e0567c71ba..04d52ca88f 100644 --- a/etc/inc/vslb.inc +++ b/etc/inc/vslb.inc @@ -283,7 +283,19 @@ function relayd_configure($kill_first=false) { } $append_ip_to_name = false; - if (is_subnetv4($vs_a[$i]['ipaddr'])) { + if (is_alias($vs_a[$i]['ipaddr'])) { + $ip_list = []; + foreach (filter_expand_alias_array($vs_a[$i]['ipaddr']) as $item) { + if (is_subnetv4($item)) { + $ip_list = array_merge($ip_list, subnetv4_expand($item)); + } + else { + $ip_list[] = $item; + } + } + $append_ip_to_name = true; + } + else if (is_subnetv4($vs_a[$i]['ipaddr'])) { $ip_list = subnetv4_expand($vs_a[$i]['ipaddr']); $append_ip_to_name = true; } diff --git a/usr/local/www/load_balancer_virtual_server_edit.php b/usr/local/www/load_balancer_virtual_server_edit.php index 6f57adbb63..1e3c07b5f0 100755 --- a/usr/local/www/load_balancer_virtual_server_edit.php +++ b/usr/local/www/load_balancer_virtual_server_edit.php @@ -91,8 +91,8 @@ if ($_POST) { if (!is_portoralias($_POST['port'])) $input_errors[] = gettext("The port must be an integer between 1 and 65535, or a port alias."); - if (!is_ipaddr($_POST['ipaddr']) && !is_subnetv4($_POST['ipaddr'])) - $input_errors[] = sprintf(gettext("%s is not a valid IP address or IPv4 subnet."), $_POST['ipaddr']); + if (!is_ipaddroralias($_POST['ipaddr']) && !is_subnetv4($_POST['ipaddr'])) + $input_errors[] = sprintf(gettext("%s is not a valid IP address, IPv4 subnet, or alias."), $_POST['ipaddr']); 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']); @@ -200,8 +200,15 @@ jQuery(document).ready( function() {