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&ouml;schen des Pool-Objekts";
        return 0;
    }
}