summaryrefslogtreecommitdiff
path: root/source4/dsdb/repl/drepl_extended.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-09-15 18:59:17 +1000
committerAndrew Tridgell <tridge@samba.org>2010-09-16 07:24:01 +1000
commitd5673b5501225e295bae2a5c0084cf3ce5582dca (patch)
treeba4062891a49a3ac9e2f2a8698a1aea37a01535f /source4/dsdb/repl/drepl_extended.c
parentaabd89d8f7d80d614c941111d7a049f9f35b943b (diff)
downloadsamba-d5673b5501225e295bae2a5c0084cf3ce5582dca.tar.gz
samba-d5673b5501225e295bae2a5c0084cf3ce5582dca.tar.bz2
samba-d5673b5501225e295bae2a5c0084cf3ce5582dca.zip
s4-repl: cleanup the extended op calls in repl server
- use generic parameter names - trigger a run of pending ops on all extended ops - don't prevent parallel fsmo transfers - moved extended op code into drepl_extended
Diffstat (limited to 'source4/dsdb/repl/drepl_extended.c')
-rw-r--r--source4/dsdb/repl/drepl_extended.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/source4/dsdb/repl/drepl_extended.c b/source4/dsdb/repl/drepl_extended.c
index 41fe38b937..67dbedbb9a 100644
--- a/source4/dsdb/repl/drepl_extended.c
+++ b/source4/dsdb/repl/drepl_extended.c
@@ -113,7 +113,7 @@ static WERROR drepl_create_extended_source_dsa(struct dreplsrv_service *service,
}
struct extended_op_data {
- dreplsrv_fsmo_callback_t callback;
+ dreplsrv_extended_callback_t callback;
void *callback_data;
struct dreplsrv_partition_source_dsa *sdsa;
};
@@ -136,18 +136,18 @@ static void extended_op_callback(struct dreplsrv_service *service,
schedule a getncchanges request to the role owner for an extended operation
*/
WERROR drepl_request_extended_op(struct dreplsrv_service *service,
- struct ldb_dn *role_owner_dn,
- struct ldb_dn *fsmo_role_dn,
+ struct ldb_dn *nc_dn,
+ struct ldb_dn *source_dsa_dn,
enum drsuapi_DsExtendedOperation extended_op,
uint64_t fsmo_info,
- dreplsrv_fsmo_callback_t callback,
+ dreplsrv_extended_callback_t callback,
void *callback_data)
{
WERROR werr;
struct extended_op_data *data;
struct dreplsrv_partition_source_dsa *sdsa;
- werr = drepl_create_extended_source_dsa(service, role_owner_dn, fsmo_role_dn, &sdsa);
+ werr = drepl_create_extended_source_dsa(service, nc_dn, source_dsa_dn, &sdsa);
W_ERROR_NOT_OK_RETURN(werr);
data = talloc(service, struct extended_op_data);
@@ -164,5 +164,8 @@ WERROR drepl_request_extended_op(struct dreplsrv_service *service,
talloc_free(sdsa);
talloc_free(data);
}
+
+ dreplsrv_run_pending_ops(service);
+
return werr;
}