From 2e4c1ba38963cffe4c3f25ab24bc28975f2fc291 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sat, 19 Apr 2008 23:27:35 +0200 Subject: [PATCH] Introduce rpccli_set_timeout() Reduce dependency on "cli" member of rpc_pipe_client struct --- source/rpc_client/cli_pipe.c | 6 ++++++ source/rpcclient/cmd_netlogon.c | 10 ++++++---- source/rpcclient/cmd_samr.c | 5 +++-- source/rpcclient/rpcclient.c | 2 +- source/winbindd/winbindd_cm.c | 4 ++-- source/winbindd/winbindd_misc.c | 4 ++-- source/winbindd/winbindd_rpc.c | 4 ++-- 7 files changed, 22 insertions(+), 13 deletions(-) diff --git a/source/rpc_client/cli_pipe.c b/source/rpc_client/cli_pipe.c index 3ef3f05cc6b..64fcc16bde3 100644 --- a/source/rpc_client/cli_pipe.c +++ b/source/rpc_client/cli_pipe.c @@ -2173,6 +2173,12 @@ static NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli, return NT_STATUS_OK; } +unsigned int rpccli_set_timeout(struct rpc_pipe_client *cli, + unsigned int timeout) +{ + return cli_set_timeout(cli->cli, timeout); +} + /**************************************************************************** Open a named pipe over SMB to a remote server. * diff --git a/source/rpcclient/cmd_netlogon.c b/source/rpcclient/cmd_netlogon.c index a30dd740e2d..12d8cf30523 100644 --- a/source/rpcclient/cmd_netlogon.c +++ b/source/rpcclient/cmd_netlogon.c @@ -101,14 +101,15 @@ static WERROR cmd_netlogon_getanydcname(struct rpc_pipe_client *cli, } /* Make sure to wait for our DC's reply */ - old_timeout = cli_set_timeout(cli->cli, MAX(cli->cli->timeout,30000)); /* 30 seconds. */ + old_timeout = rpccli_set_timeout(cli, 30000); /* 30 seconds. */ + rpccli_set_timeout(cli, MAX(old_timeout, 30000)); /* At least 30 sec */ status = rpccli_netr_GetAnyDCName(cli, mem_ctx, cli->desthost, argv[1], &dcname, &werr); - cli_set_timeout(cli->cli, old_timeout); + rpccli_set_timeout(cli, old_timeout); if (!NT_STATUS_IS_OK(status)) { return ntstatus_to_werror(status); @@ -140,14 +141,15 @@ static WERROR cmd_netlogon_getdcname(struct rpc_pipe_client *cli, } /* Make sure to wait for our DC's reply */ - old_timeout = cli_set_timeout(cli->cli, MAX(cli->cli->timeout,30000)); /* 30 seconds. */ + old_timeout = rpccli_set_timeout(cli, 30000); /* 30 seconds. */ + rpccli_set_timeout(cli, MAX(30000, old_timeout)); /* At least 30 sec */ status = rpccli_netr_GetDcName(cli, mem_ctx, cli->desthost, argv[1], &dcname, &werr); - cli_set_timeout(cli->cli, old_timeout); + rpccli_set_timeout(cli, old_timeout); if (!NT_STATUS_IS_OK(status)) { return ntstatus_to_werror(status); diff --git a/source/rpcclient/cmd_samr.c b/source/rpcclient/cmd_samr.c index e58354d0d3f..4a820cd6182 100644 --- a/source/rpcclient/cmd_samr.c +++ b/source/rpcclient/cmd_samr.c @@ -735,13 +735,14 @@ static NTSTATUS cmd_samr_query_groupmem(struct rpc_pipe_client *cli, goto done; /* Make sure to wait for our DC's reply */ - old_timeout = cli_set_timeout(cli->cli, MAX(cli->cli->timeout,30000)); /* 30 seconds. */ + old_timeout = rpccli_set_timeout(cli, 30000); /* 30 seconds. */ + rpccli_set_timeout(cli, MAX(30000, old_timeout)); /* At least 30 sec */ result = rpccli_samr_QueryGroupMember(cli, mem_ctx, &group_pol, &rids); - cli_set_timeout(cli->cli, old_timeout); + rpccli_set_timeout(cli, old_timeout); if (!NT_STATUS_IS_OK(result)) goto done; diff --git a/source/rpcclient/rpcclient.c b/source/rpcclient/rpcclient.c index 52dba2291be..8592e0a3b60 100644 --- a/source/rpcclient/rpcclient.c +++ b/source/rpcclient/rpcclient.c @@ -420,7 +420,7 @@ static NTSTATUS cmd_timeout(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, continue; } - cli_set_timeout(tmp_set->rpc_pipe->cli, timeout); + rpccli_set_timeout(tmp_set->rpc_pipe, timeout); } } } diff --git a/source/winbindd/winbindd_cm.c b/source/winbindd/winbindd_cm.c index 71d2c029eec..8fcbae77ff7 100644 --- a/source/winbindd/winbindd_cm.c +++ b/source/winbindd/winbindd_cm.c @@ -598,7 +598,7 @@ static bool get_dc_name_via_netlogon(struct winbindd_domain *domain, /* This call can take a long time - allow the server to time out. 35 seconds should do it. */ - orig_timeout = cli_set_timeout(netlogon_pipe->cli, 35000); + orig_timeout = rpccli_set_timeout(netlogon_pipe, 35000); if (our_domain->active_directory) { struct netr_DsRGetDCNameInfo *domain_info = NULL; @@ -638,7 +638,7 @@ static bool get_dc_name_via_netlogon(struct winbindd_domain *domain, } /* And restore our original timeout. */ - cli_set_timeout(netlogon_pipe->cli, orig_timeout); + rpccli_set_timeout(netlogon_pipe, orig_timeout); if (!NT_STATUS_IS_OK(result)) { DEBUG(10,("rpccli_netr_GetAnyDCName failed: %s\n", diff --git a/source/winbindd/winbindd_misc.c b/source/winbindd/winbindd_misc.c index 93986d174e5..bde2eafb535 100644 --- a/source/winbindd/winbindd_misc.c +++ b/source/winbindd/winbindd_misc.c @@ -333,7 +333,7 @@ enum winbindd_result winbindd_dual_getdcname(struct winbindd_domain *domain, /* This call can take a long time - allow the server to time out. 35 seconds should do it. */ - orig_timeout = cli_set_timeout(netlogon_pipe->cli, 35000); + orig_timeout = rpccli_set_timeout(netlogon_pipe, 35000); req_domain = find_domain_from_name_noinit(state->request.domain_name); if (req_domain == domain) { @@ -352,7 +352,7 @@ enum winbindd_result winbindd_dual_getdcname(struct winbindd_domain *domain, &werr); } /* And restore our original timeout. */ - cli_set_timeout(netlogon_pipe->cli, orig_timeout); + rpccli_set_timeout(netlogon_pipe, orig_timeout); if (!NT_STATUS_IS_OK(result)) { DEBUG(5,("Error requesting DCname for domain %s: %s\n", diff --git a/source/winbindd/winbindd_rpc.c b/source/winbindd/winbindd_rpc.c index 2a7704c8a52..bb79d7ec126 100644 --- a/source/winbindd/winbindd_rpc.c +++ b/source/winbindd/winbindd_rpc.c @@ -750,14 +750,14 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, /* This call can take a long time - allow the server to time out. 35 seconds should do it. */ - orig_timeout = cli_set_timeout(cli->cli, 35000); + orig_timeout = rpccli_set_timeout(cli, 35000); result = rpccli_samr_QueryGroupMember(cli, mem_ctx, &group_pol, &rids); /* And restore our original timeout. */ - cli_set_timeout(cli->cli, orig_timeout); + rpccli_set_timeout(cli, orig_timeout); rpccli_samr_Close(cli, mem_ctx, &group_pol); -- 2.11.4.GIT