} } # sort by mask size function cmp_subnets($a, $b) { if ($a['subnet_dec'] == $b['subnet_dec']) { return 0; } return $a['subnet_dec'] < $b['subnet_dec'] ? -1 : 1; } usort($subnets_all, "cmp_subnets"); # recompute parents foreach ($subnets_all as $k => $s) { foreach ($subnets_all as $sb) { if ($sb['subnet_dec'] !== $s['subnet_dec'] && $sb['mask'] !== $s['mask']) { if ($Subnets->is_subnet_inside_subnet($s['subnet'], $sb['subnet'])) { $subnets_all[$k]['master'] = $sb['subnet']; } } } } # import each if (isset($subnets_all)) { foreach ($subnets_all as $s) { # set new POST $_POST = $s; # create csrf token $_POST['csrf_cookie'] = $User->csrf_cookie("create", "subnet"); # permissions $subnet['permissions'] = $section->permissions; # check for master
print "</tr>"; print "<tbody id=device-{$deviceid}>"; foreach ($query_result as $ip) { //get bitmask foreach ($masks as $k => $n) { if ($n->netmask == $ip['mask']) { $ip['bitmask'] = $k; break; } } $overlap = false; // check for overlapping if (isset($subnet)) { if ($subnet->isFolder != "1") { // check if ($Subnets->is_subnet_inside_subnet("{$ip['subnet']}/{$ip['bitmask']}", $Subnets->transform_address($subnet->subnet, "dotted") . "/" . $subnet->mask) === false) { $overlap = true; } // same mask if ($ip['subnet'] == $Subnets->transform_address($subnet->subnet, "dotted") && $ip['bitmask'] == $subnet->mask) { $overlap = true; } } } // check overlapping if ($overlap === false) { $dc++; print "<tr id='tr-{$m}'>"; //ip print "<td>{$ip['subnet']}/{$ip['bitmask']}</td>"; //section, description, hidden