static WERROR drepl_create_extended_source_dsa(struct dreplsrv_service *service,
struct ldb_dn *nc_dn,
struct ldb_dn *source_dsa_dn,
+ uint64_t min_usn,
struct dreplsrv_partition_source_dsa **_sdsa)
{
struct dreplsrv_partition_source_dsa *sdsa;
return WERR_NOMEM;
}
+ sdsa->repsFrom1->highwatermark.highest_usn = min_usn;
werr = dreplsrv_out_connection_attach(service, sdsa->repsFrom1, &sdsa->conn);
if (!W_ERROR_IS_OK(werr)) {
struct ldb_dn *source_dsa_dn,
enum drsuapi_DsExtendedOperation extended_op,
uint64_t fsmo_info,
+ uint64_t min_usn,
dreplsrv_extended_callback_t callback,
void *callback_data)
{
struct extended_op_data *data;
struct dreplsrv_partition_source_dsa *sdsa;
- werr = drepl_create_extended_source_dsa(service, nc_dn, source_dsa_dn, &sdsa);
+ werr = drepl_create_extended_source_dsa(service, nc_dn, source_dsa_dn, min_usn, &sdsa);
W_ERROR_NOT_OK_RETURN(werr);
data = talloc(service, struct extended_op_data);
fsmo_role_dn,
DRSUAPI_EXOP_FSMO_RID_ALLOC,
alloc_pool,
+ 0,
drepl_new_rid_pool_callback, NULL);
if (W_ERROR_IS_OK(werr)) {
service->rid_alloc_in_progress = true;
source_dsa_dn,
DRSUAPI_EXOP_REPL_SECRET,
0,
+ p->sources->repsFrom1->highwatermark.highest_usn,
drepl_repl_secret_callback, state);
if (!W_ERROR_IS_OK(werr)) {
DEBUG(2,(__location__ ": Failed to setup secret replication for user_dn '%s'\n", user_dn));