summaryrefslogtreecommitdiff
path: root/source4/libnet/libnet_vampire.c
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamenim@samba.org>2010-11-10 03:45:22 +0200
committerKamen Mazdrashki <kamenim@samba.org>2010-11-11 18:54:20 +0000
commit0868a1598220e2ed73aefcd9ec3517a38704ac9e (patch)
tree804d2ba5dff399ae0dd726c2a982589e73b5545b /source4/libnet/libnet_vampire.c
parent2d0cb54ceb8f568f233533ada007822ffb40ee3d (diff)
downloadsamba-0868a1598220e2ed73aefcd9ec3517a38704ac9e.tar.gz
s4-repl: Propagate remote prefixMap in DRSUAPI data conversion functions
Diffstat (limited to 'source4/libnet/libnet_vampire.c')
-rw-r--r--source4/libnet/libnet_vampire.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c
index cb89213fcf2..164dcdec764 100644
--- a/source4/libnet/libnet_vampire.c
+++ b/source4/libnet/libnet_vampire.c
@@ -225,6 +225,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
};
WERROR status;
+ struct dsdb_schema_prefixmap *pfm_remote;
const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr;
struct schema_list *schema_list = NULL, *schema_list_item, *schema_list_next_item;
struct dsdb_schema *working_schema;
@@ -280,6 +281,14 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
return NT_STATUS_INVALID_PARAMETER;
}
+ status = dsdb_schema_pfm_from_drsuapi_pfm(mapping_ctr, true,
+ s, &pfm_remote, NULL);
+ if (!W_ERROR_IS_OK(status)) {
+ DEBUG(0,(__location__ ": Failed to decode remote prefixMap: %s",
+ win_errstr(status)));
+ return werror_to_ntstatus(status);
+ }
+
s_dsa->replica_flags = DRSUAPI_DRS_WRIT_REP
| DRSUAPI_DRS_INIT_SYNC
| DRSUAPI_DRS_PER_SYNC;
@@ -338,7 +347,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct libnet_vampire_cb_state *s
* schema we have so far. It's ok if we fail to convert
* an object. We should convert more objects on next pass.
*/
- status = dsdb_convert_object_ex(s->ldb, working_schema,
+ status = dsdb_convert_object_ex(s->ldb, working_schema, pfm_remote,
cur, c->gensec_skey,
tmp_ctx, &object);
if (!W_ERROR_IS_OK(status)) {