function merge_dhcpranges($dhcpobjectDN) { global $ds, $suffix, $ldapError; $dhcp_array = get_dhcp_range2($dhcpobjectDN); if (count($dhcp_array) > 1) { sort($dhcp_array); } $c = count($dhcp_array); for ($i = 0; $i < $c; $i++) { for ($j = $i + 1; $j < $c; $j++) { if (merge_2_ipranges($dhcp_array[$i], $dhcp_array[$j])) { $dhcp_array[$i] = merge_2_ipranges($dhcp_array[$i], $dhcp_array[$j]); array_splice($dhcp_array, $j, 1); $c--; $i = -1; break; } } } foreach ($dhcp_array as $item) { $entry['dhcprange'][] = $item; } $results = ldap_mod_replace($ds, $dhcpobjectDN, $entry); if ($results) { echo "<br>DHCP Ranges erfolgreich zusammengefasst!<br><br>"; } else { echo "<br>Fehler beim eintragen der DHCP Ranges!<br><br>"; } }
function delete_dhcppool($poolDN) { global $ds, $suffix, $auDN, $ldapError; $exppooldn = ldap_explode_dn($poolDN, 0); $exppooldn = array_slice($exppooldn, 3); $poolaudn = implode(',', $exppooldn); echo "Pool-AUDN: {$poolaudn}<br>"; $ranges_array = get_dhcp_range2($poolDN); if (count($ranges_array) != 0) { if (count($ranges_array) > 1) { foreach ($ranges_array as $range) { $new_fipbs['FreeIPBlock'][] = $range; } } else { $new_fipbs['FreeIPBlock'] = $ranges_array[0]; } } #echo "Ranges: "; print_r($ranges_array); echo "<br>"; #echo "FIPBS: "; print_r($new_fipbs); echo "<br>"; if (dive_into_tree_del($poolDN, "")) { if (ldap_mod_add($ds, $poolaudn, $new_fipbs)) { merge_ipranges($poolaudn); return 1; } } else { echo "Fehler beim löschen des Pool-Objekts"; return 0; } }