$final_address_details[] = $detail_text;
         }
     }
 } else {
     if ($iprange_type == 6) {
         $input_errors[] = sprintf(gettext('IPv6 address ranges are not supported (%s)'), $address_item);
         // Put the user-entered data in the output anyway, so it will be re-displayed for correction.
         $input_addresses[] = $address_item;
         $input_address_subnet[] = "";
         $final_address_details[] = $detail_text;
     } else {
         $subnet_type = is_subnet($address_item);
         if ($_POST['type'] == "host" && $subnet_type) {
             if ($subnet_type == 4) {
                 // For host type aliases, if the user enters an IPv4 subnet, expand it into a list of individual IPv4 addresses.
                 if (subnet_size($address_item) <= $max_alias_addresses - $alias_address_count) {
                     $rangeaddresses = subnetv4_expand($address_item);
                     foreach ($rangeaddresses as $rangeaddress) {
                         $input_addresses[] = $rangeaddress;
                         $input_address_subnet[] = "";
                         $final_address_details[] = $detail_text;
                         $alias_address_count++;
                     }
                 } else {
                     $input_errors[] = sprintf(gettext('Subnet is too large to expand into individual host IP addresses (%s)'), $address_item);
                     $input_errors[] = sprintf(gettext('The maximum number of entries in an alias is %s'), $max_alias_addresses);
                     // Put the user-entered data in the output anyway, so it will be re-displayed for correction.
                     $input_addresses[] = $address_item;
                     $input_address_subnet[] = "";
                     $final_address_details[] = $detail_text;
                 }
 do_input_validation($_POST, $reqdfields, $reqdfieldsn, $input_errors);
 for ($i = 0; isset($config['load_balancer']['virtual_server'][$i]); $i++) {
     if ($_POST['name'] == $config['load_balancer']['virtual_server'][$i]['name'] && $i != $id) {
         $input_errors[] = gettext("This virtual server name has already been used.  Virtual server names must be unique.");
     }
 }
 if (preg_match('/[ \\/]/', $_POST['name'])) {
     $input_errors[] = gettext("You cannot use spaces or slashes in the 'name' field.");
 }
 if ($_POST['port'] != "" && !is_portoralias($_POST['port'])) {
     $input_errors[] = gettext("The port must be an integer between 1 and 65535, a port alias, or left blank.");
 }
 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']);
     }
 }
 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]) {
         $vsent = $a_vs[$id];
     }
     if ($vsent['name'] != "") {
         $changedesc .= " " . sprintf(gettext("modified '%s' vs:"), $vsent['name']);
     } else {
         $changedesc .= " " . sprintf(gettext("created '%s' vs:"), $_POST['name']);
     foreach ($pconfig['servers'] as $svrent) {
         if (!is_ipaddr($svrent) && !is_subnetv4($svrent)) {
             $input_errors[] = sprintf(gettext("%s is not a valid IP address or IPv4 subnet (in \"enabled\" list)."), $svrent);
         } else {
             if (is_subnetv4($svrent) && subnet_size($svrent) > 64) {
                 $input_errors[] = sprintf(gettext("%s is a subnet containing more than 64 IP addresses (in \"enabled\" list)."), $svrent);
             }
         }
     }
 }
 if (is_array($_POST['serversdisabled'])) {
     foreach ($pconfig['serversdisabled'] as $svrent) {
         if (!is_ipaddr($svrent) && !is_subnetv4($svrent)) {
             $input_errors[] = sprintf(gettext("%s is not a valid IP address or IPv4 subnet (in \"disabled\" list)."), $svrent);
         } else {
             if (is_subnetv4($svrent) && subnet_size($svrent) > 64) {
                 $input_errors[] = sprintf(gettext("%s is a subnet containing more than 64 IP addresses (in \"disabled\" list)."), $svrent);
             }
         }
     }
 }
 $m = array();
 for ($i = 0; isset($config['load_balancer']['monitor_type'][$i]); $i++) {
     $m[$config['load_balancer']['monitor_type'][$i]['name']] = $config['load_balancer']['monitor_type'][$i];
 }
 if (!isset($m[$_POST['monitor']])) {
     $input_errors[] = gettext("Invalid monitor chosen.");
 }
 if (!$input_errors) {
     $poolent = array();
     if (isset($id) && $a_pool[$id]) {
             $final_address_details[] = $detail_text;
         }
     }
 } else {
     if ($iprange_type == 6) {
         $input_errors[] = sprintf(gettext('IPv6 address ranges are not supported (%s)'), $address_item);
         // Put the user-entered data in the output anyway, so it will be re-displayed for correction.
         $input_addresses[] = $address_item;
         $input_address_subnet[] = "";
         $final_address_details[] = $detail_text;
     } else {
         $subnet_type = is_subnet($address_item);
         if ($_POST['type'] == "host" && $subnet_type) {
             if ($subnet_type == 4) {
                 // For host type aliases, if the user enters an IPv4 subnet, expand it into a list of individual IPv4 addresses.
                 $subnet_size = subnet_size($address_item);
                 if ($subnet_size > 0 && $subnet_size <= $max_alias_addresses - $alias_address_count) {
                     $rangeaddresses = subnetv4_expand($address_item);
                     foreach ($rangeaddresses as $rangeaddress) {
                         $input_addresses[] = $rangeaddress;
                         $input_address_subnet[] = "";
                         $final_address_details[] = $detail_text;
                         $alias_address_count++;
                     }
                 } else {
                     $input_errors[] = sprintf(gettext('Subnet is too large to expand into individual host IP addresses (%s)'), $address_item);
                     $input_errors[] = sprintf(gettext('The maximum number of entries in an alias is %s'), $max_alias_addresses);
                     // Put the user-entered data in the output anyway, so it will be re-displayed for correction.
                     $input_addresses[] = $address_item;
                     $input_address_subnet[] = "";
                     $final_address_details[] = $detail_text;