} if ($_POST['custom_subnet_mask'] && is_validmask_v4($_POST['custom_subnet_mask']) != 1) { $input_errors[] = gettext("A valid custom subnet maks must be specified."); } if ($_POST['range_to'] && !is_ipaddrv4($_POST['range_to'])) { $input_errors[] = gettext("A valid range must be specified."); } if ($_POST['gateway'] && $_POST['gateway'] != "none" && !is_ipaddrv4($_POST['gateway'])) { $input_errors[] = gettext("A valid IP address must be specified for the gateway."); } if ($_POST['wins1'] && !is_ipaddrv4($_POST['wins1']) || $_POST['wins2'] && !is_ipaddrv4($_POST['wins2'])) { $input_errors[] = gettext("A valid IP address must be specified for the primary/secondary WINS servers."); } $parent_ip = is_ipaddrv4($_POST['custom_subnet']) ? $_POST['custom_subnet'] : get_interface_ip($_POST['if']); if (is_ipaddrv4($parent_ip) && $_POST['gateway'] && $_POST['gateway'] != "none") { $parent_sn = is_validmask_v4($_POST['custom_subnet_mask']) ? mask2cidr_v4($_POST['custom_subnet_mask']) : get_interface_subnet($_POST['if']); if (!ip_in_subnet($_POST['gateway'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn) && !ip_in_interface_alias_subnet($_POST['if'], $_POST['gateway'])) { $input_errors[] = sprintf(gettext("The gateway address %s does not lie within the chosen interface's subnet."), $_POST['gateway']); } } for ($dns = 1; $dns <= 4; $dns++) { if ($_POST["dns{$dns}"] && !is_ipaddrv4($_POST["dns{$dns}"])) { $input_errors[] = gettext("A valid IP address must be specified for each of the DNS servers."); } } if ($_POST['deftime'] && (!is_numeric($_POST['deftime']) || $_POST['deftime'] < 60)) { $input_errors[] = gettext("The default lease time must be at least 60 seconds."); } if (isset($config['captiveportal']) && is_array($config['captiveportal'])) { $deftime = 7200; // Default value if it's empty
} } /* exit as soon as we have an interface */ if ($data['if'] != "") { break; } } } else { foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf) { if (is_array($dhcpifconf['range']) && $lip >= ip2ulong($dhcpifconf['range']['from']) && $lip <= ip2ulong($dhcpifconf['range']['to'])) { $data['if'] = $dhcpif; break; } if (is_array($dhcpifconf['pool'])) { foreach ($dhcpifconf['pool'] as $iface_pool) { if (is_ipaddrv4($iface_pool['custom_subnet']) && is_validmask_v4($iface_pool['custom_subnet_mask']) && is_innet_v4($iface_pool['custom_subnet'] . "/" . mask2cidr_v4($iface_pool['custom_subnet_mask']), $data['ip'])) { $data['if'] = $dhcpif; } } } } } echo "<tr>\n"; echo "<td class=\"listlr\">{$fspans}{$data['ip']}{$fspane}</td>\n"; $mac = $data['mac']; $mac_hi = strtoupper($mac[0] . $mac[1] . $mac[3] . $mac[4] . $mac[6] . $mac[7]); if ($data['online'] != "online") { if (isset($mac_man[$mac_hi])) { // Manufacturer for this MAC is defined echo "<td class=\"listr\">{$fspans}<a href=\"services_wol.php?if={$data['if']}&mac={$mac}\" title=\"" . gettext("{$mac} - send Wake on LAN packet to this MAC address") . "\">{$mac}</a><br /><font size=\"-2\"><i>{$mac_man[$mac_hi]}</i></font>{$fspane}</td>\n"; } else {