diff options
author | Kamen Mazdrashki <kamenim@samba.org> | 2010-11-10 03:45:22 +0200 |
---|---|---|
committer | Kamen Mazdrashki <kamenim@samba.org> | 2010-11-11 18:54:20 +0000 |
commit | 0868a1598220e2ed73aefcd9ec3517a38704ac9e (patch) | |
tree | 804d2ba5dff399ae0dd726c2a982589e73b5545b /source4/libnet | |
parent | 2d0cb54ceb8f568f233533ada007822ffb40ee3d (diff) | |
download | samba-0868a1598220e2ed73aefcd9ec3517a38704ac9e.tar.gz samba-0868a1598220e2ed73aefcd9ec3517a38704ac9e.tar.bz2 samba-0868a1598220e2ed73aefcd9ec3517a38704ac9e.zip |
s4-repl: Propagate remote prefixMap in DRSUAPI data conversion functions
Diffstat (limited to 'source4/libnet')
-rw-r--r-- | source4/libnet/libnet_vampire.c | 11 |
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)) { |