diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-08-11 13:50:16 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-08-11 13:53:33 +0200 |
commit | 1e1445bc7672b17a1d689fa0f0732b05b6e04da5 (patch) | |
tree | b5ff2238ac1787fecbe3a75380d8ed914f3c3305 /source3/winbindd/winbindd_ads.c | |
parent | e13c14e7e440f56069aac6c6568b56e48e7ea825 (diff) | |
download | samba-1e1445bc7672b17a1d689fa0f0732b05b6e04da5.tar.gz samba-1e1445bc7672b17a1d689fa0f0732b05b6e04da5.tar.bz2 samba-1e1445bc7672b17a1d689fa0f0732b05b6e04da5.zip |
s3:winbindd: raise the timeout for lsa_Lookup*() calls from 10 to 35 seconds.
metze
Diffstat (limited to 'source3/winbindd/winbindd_ads.c')
-rw-r--r-- | source3/winbindd/winbindd_ads.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_ads.c b/source3/winbindd/winbindd_ads.c index a95b31da48..665dd53df1 100644 --- a/source3/winbindd/winbindd_ads.c +++ b/source3/winbindd/winbindd_ads.c @@ -1121,6 +1121,7 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, /* handle sids not resolved from cache by lsa_lookup_sids */ if (num_nocache > 0) { + unsigned int orig_timeout; status = cm_connect_lsa(domain, tmp_ctx, &cli, &lsa_policy); @@ -1128,6 +1129,13 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, goto done; } + /* + * This call can take a long time + * allow the server to time out. + * 35 seconds should do it. + */ + orig_timeout = rpccli_set_timeout(cli, 35000); + status = rpccli_lsa_lookup_sids(cli, tmp_ctx, &lsa_policy, num_nocache, @@ -1136,6 +1144,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, &names_nocache, &name_types_nocache); + /* And restore our original timeout. */ + rpccli_set_timeout(cli, orig_timeout); + if (!(NT_STATUS_IS_OK(status) || NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED) || NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED))) @@ -1150,6 +1161,13 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, goto done; } + /* + * This call can take a long time + * allow the server to time out. + * 35 seconds should do it. + */ + orig_timeout = rpccli_set_timeout(cli, 35000); + status = rpccli_lsa_lookup_sids(cli, tmp_ctx, &lsa_policy, num_nocache, @@ -1157,6 +1175,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, &domains_nocache, &names_nocache, &name_types_nocache); + + /* And restore our original timeout. */ + rpccli_set_timeout(cli, orig_timeout); } if (NT_STATUS_IS_OK(status) || |