From 4041791d01b10b250dab5b356f0477fb8a40907e Mon Sep 17 00:00:00 2001 From: Kamen Mazdrashki Date: Fri, 26 Nov 2010 02:38:39 +0200 Subject: s4-repl: Let dsdb_replicated_objects_convert() to accept schema from caller This allows us to use schema that is different than the one set to 'ldb' to decode objects. --- source4/libnet/libnet_vampire.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source4/libnet/libnet_vampire.c') diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c index 164dcdec76..1d7d7268ae 100644 --- a/source4/libnet/libnet_vampire.c +++ b/source4/libnet/libnet_vampire.c @@ -419,6 +419,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s /* Now convert the schema elements again, using the schema we finalised, ready to actually import */ status = dsdb_replicated_objects_convert(s->ldb, + s->schema, c->partition->nc.dn, mapping_ctr, object_count, @@ -606,6 +607,7 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data, { struct libnet_vampire_cb_state *s = talloc_get_type(private_data, struct libnet_vampire_cb_state); WERROR status; + struct dsdb_schema *schema; const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr; uint32_t nc_object_count; uint32_t object_count; @@ -685,7 +687,14 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data, } + schema = dsdb_get_schema(s->ldb, NULL); + if (!schema) { + DEBUG(0,(__location__ ": Schema is not loaded yet!\n")); + return NT_STATUS_INTERNAL_ERROR; + } + status = dsdb_replicated_objects_convert(s->ldb, + schema, c->partition->nc.dn, mapping_ctr, object_count, -- cgit