s4-drs: In dcesrv_drsuapi_DsRemoveDSServer use the subtree control to delete the...
authorMatthieu Patou <mat@matws.net>
Tue, 9 Aug 2011 21:36:01 +0000 (01:36 +0400)
committerMatthieu Patou <mat@matws.net>
Tue, 9 Aug 2011 21:44:44 +0000 (01:44 +0400)
This entry has most of the time subelements (connections between DCs)
that will forbid a simple (non recursive) delete

source4/rpc_server/drsuapi/dcesrv_drsuapi.c

index 5dbb238f025714cc52f63485863ab07402fa1f8e..b170ec3e239027b32eec3d223cbeefa286686022 100644 (file)
@@ -25,6 +25,7 @@
 #include "rpc_server/dcerpc_server.h"
 #include "rpc_server/common/common.h"
 #include "dsdb/samdb/samdb.h"
+#include "dsdb/common/util.h"
 #include "libcli/security/security.h"
 #include "libcli/security/session.h"
 #include "rpc_server/drsuapi/dcesrv_drsuapi.h"
@@ -502,7 +503,7 @@ static WERROR dcesrv_drsuapi_DsRemoveDSServer(struct dcesrv_call_state *dce_call
                }
 
                if (r->in.req->req1.commit) {
-                       ret = ldb_delete(b_state->sam_ctx, ntds_dn);
+                       ret = dsdb_delete(b_state->sam_ctx, ntds_dn, DSDB_TREE_DELETE);
                        if (ret != LDB_SUCCESS) {
                                return WERR_FOOBAR;
                        }