diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-09-15 20:23:47 +1000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-09-16 07:24:01 +1000 |
commit | 520252c8d2b7465d592a05ee68bd466e71330a1f (patch) | |
tree | d148263a66f54b75a9bae484794ddfaff56f40ce | |
parent | 1da147e6fa485800d2988168889071d97e393fa3 (diff) | |
download | samba-520252c8d2b7465d592a05ee68bd466e71330a1f.tar.gz |
s4-repl: added min_usn to extended replication call
the repl_secret code needs to set it to avoid too many duplicate
attributes
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
-rw-r--r-- | source4/dsdb/repl/drepl_extended.c | 5 | ||||
-rw-r--r-- | source4/dsdb/repl/drepl_fsmo.c | 4 | ||||
-rw-r--r-- | source4/dsdb/repl/drepl_ridalloc.c | 1 | ||||
-rw-r--r-- | source4/dsdb/repl/drepl_secret.c | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/source4/dsdb/repl/drepl_extended.c b/source4/dsdb/repl/drepl_extended.c index 67dbedbb9ad..de56cb5ac5a 100644 --- a/source4/dsdb/repl/drepl_extended.c +++ b/source4/dsdb/repl/drepl_extended.c @@ -41,6 +41,7 @@ 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; @@ -99,6 +100,7 @@ static WERROR drepl_create_extended_source_dsa(struct dreplsrv_service *service, 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)) { @@ -140,6 +142,7 @@ WERROR drepl_request_extended_op(struct dreplsrv_service *service, 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) { @@ -147,7 +150,7 @@ WERROR drepl_request_extended_op(struct dreplsrv_service *service, 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); diff --git a/source4/dsdb/repl/drepl_fsmo.c b/source4/dsdb/repl/drepl_fsmo.c index dc7fe27b01b..375e37b5176 100644 --- a/source4/dsdb/repl/drepl_fsmo.c +++ b/source4/dsdb/repl/drepl_fsmo.c @@ -151,7 +151,9 @@ WERROR dreplsrv_fsmo_role_check(struct dreplsrv_service *service, role_owner_dn, extended_op, fsmo_info, - drepl_role_callback); + 0, + drepl_role_callback, + NULL); if (W_ERROR_IS_OK(werr)) { dreplsrv_run_pending_ops(service); } else { diff --git a/source4/dsdb/repl/drepl_ridalloc.c b/source4/dsdb/repl/drepl_ridalloc.c index ff5bb163e72..4e1a4fa2c24 100644 --- a/source4/dsdb/repl/drepl_ridalloc.c +++ b/source4/dsdb/repl/drepl_ridalloc.c @@ -61,6 +61,7 @@ static WERROR drepl_request_new_rid_pool(struct dreplsrv_service *service, 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; diff --git a/source4/dsdb/repl/drepl_secret.c b/source4/dsdb/repl/drepl_secret.c index 2b5fae2d5b9..7c8f8b752d2 100644 --- a/source4/dsdb/repl/drepl_secret.c +++ b/source4/dsdb/repl/drepl_secret.c @@ -126,6 +126,7 @@ void drepl_repl_secret(struct dreplsrv_service *service, 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)); |