summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-09-27 02:27:54 +0200
committerStefan Metzmacher <metze@samba.org>2008-09-29 04:15:11 +0200
commitee2bcfacdf32b0c55c6a78ae1ad7b55699611d1b (patch)
treebeea7055dd44caa69024cd1efdcee9f0391a9b6c /source4/dsdb/samdb/ldb_modules/schema_fsmo.c
parenta9a59f5f3d7f82a8065424310d3b32d796a43e75 (diff)
downloadsamba-ee2bcfacdf32b0c55c6a78ae1ad7b55699611d1b.tar.gz
samba-ee2bcfacdf32b0c55c6a78ae1ad7b55699611d1b.tar.bz2
samba-ee2bcfacdf32b0c55c6a78ae1ad7b55699611d1b.zip
s4:dsdb: passdown DSDB_CONTROL_REPLICATED_UPDATE_OID for replicated updates
We need to make sure replicated updates are handled differently in some situations, e.g. we should bypass the schema checks. metze
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/schema_fsmo.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/schema_fsmo.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
index 968b19c038..4b6e9e1d47 100644
--- a/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
+++ b/source4/dsdb/samdb/ldb_modules/schema_fsmo.c
@@ -152,6 +152,16 @@ static int schema_fsmo_add(struct ldb_module *module, struct ldb_request *req)
uint32_t id32;
WERROR status;
+ /* special objects should always go through */
+ if (ldb_dn_is_special(req->op.add.message->dn)) {
+ return ldb_next_request(module, req);
+ }
+
+ /* replicated update should always go through */
+ if (ldb_request_get_control(req, DSDB_CONTROL_REPLICATED_UPDATE_OID)) {
+ return ldb_next_request(module, req);
+ }
+
schema = dsdb_get_schema(module->ldb);
if (!schema) {
return ldb_next_request(module, req);