From 316fd085ad2b587b82d817358240f84ae054a543 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Tue, 20 Nov 2012 14:59:17 +1100 Subject: drs-fsmo: Improve handling of FSMO role takeover. This needs to be more async, and give less scary errors. Andrew Bartlett Reviewed-by: Stefan Metzmacher --- source4/dsdb/samdb/ldb_modules/rootdse.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source4/dsdb/samdb/ldb_modules') diff --git a/source4/dsdb/samdb/ldb_modules/rootdse.c b/source4/dsdb/samdb/ldb_modules/rootdse.c index ba71b5f8ff..add83d293a 100644 --- a/source4/dsdb/samdb/ldb_modules/rootdse.c +++ b/source4/dsdb/samdb/ldb_modules/rootdse.c @@ -1377,9 +1377,18 @@ static int rootdse_become_master(struct ldb_module *module, fsmo->ldb = ldb; fsmo->req = req; - /* we send the call asynchronously, as the ldap client is + /* + * we send the call asynchronously, as the ldap client is * expecting to get an error back if the role transfer fails + * + * We need more than the default 10 seconds IRPC allows, so + * set a longer timeout (default ldb timeout is 300 seconds). + * We send an async reply when we are done. + * + * We are the first module, so don't bother working out how + * long we have spent so far. */ + dcerpc_binding_handle_set_timeout(irpc_handle, req->timeout); treq = dcerpc_drepl_takeFSMORole_send(req, ldb_get_event_context(ldb), irpc_handle, role); if (treq == NULL) { -- cgit