summaryrefslogtreecommitdiff
path: root/source4/libnet
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libnet')
-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 cb89213fcf..164dcdec76 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)) {