svn commit: samba r19340 - in branches: SAMBA_3_0/source/nsswitch
SAMBA_3_0/source/rpcclient SAMBA_3_0_23/source/nsswitch
SAMBA_3_0_23/source/rpcclient
gd at samba.org
gd at samba.org
Mon Oct 16 14:29:15 GMT 2006
Author: gd
Date: 2006-10-16 14:29:14 +0000 (Mon, 16 Oct 2006)
New Revision: 19340
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19340
Log:
Wait longer then 10 seconds for a samr_query_groupmem lookup to succeed.
Guenther
Modified:
branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c
branches/SAMBA_3_0/source/rpcclient/cmd_samr.c
branches/SAMBA_3_0_23/source/nsswitch/winbindd_rpc.c
branches/SAMBA_3_0_23/source/rpcclient/cmd_samr.c
Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c 2006-10-16 13:06:41 UTC (rev 19339)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_rpc.c 2006-10-16 14:29:14 UTC (rev 19340)
@@ -615,6 +615,7 @@
unsigned int j;
fstring sid_string;
struct rpc_pipe_client *cli;
+ unsigned int orig_timeout;
DEBUG(10,("rpc: lookup_groupmem %s sid=%s\n", domain->name,
sid_to_string(sid_string, group_sid)));
@@ -637,10 +638,18 @@
/* Step #1: Get a list of user rids that are the members of the
group. */
+ /* 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);
+
result = rpccli_samr_query_groupmem(cli, mem_ctx,
&group_pol, num_names, &rid_mem,
name_types);
+ /* And restore our original timeout. */
+ cli_set_timeout(cli->cli, orig_timeout);
+
rpccli_samr_close(cli, mem_ctx, &group_pol);
if (!NT_STATUS_IS_OK(result))
Modified: branches/SAMBA_3_0/source/rpcclient/cmd_samr.c
===================================================================
--- branches/SAMBA_3_0/source/rpcclient/cmd_samr.c 2006-10-16 13:06:41 UTC (rev 19339)
+++ branches/SAMBA_3_0/source/rpcclient/cmd_samr.c 2006-10-16 14:29:14 UTC (rev 19340)
@@ -751,6 +751,7 @@
uint32 access_mask = MAXIMUM_ALLOWED_ACCESS;
int i;
fstring server;
+ unsigned int old_timeout;
if ((argc < 2) || (argc > 3)) {
printf("Usage: %s rid [access mask]\n", argv[0]);
@@ -785,10 +786,15 @@
if (!NT_STATUS_IS_OK(result))
goto done;
+ /* Make sure to wait for our DC's reply */
+ old_timeout = cli_set_timeout(cli->cli, 30000); /* 30 seconds. */
+
result = rpccli_samr_query_groupmem(cli, mem_ctx, &group_pol,
&num_members, &group_rids,
&group_attrs);
+ cli_set_timeout(cli->cli, old_timeout);
+
if (!NT_STATUS_IS_OK(result))
goto done;
Modified: branches/SAMBA_3_0_23/source/nsswitch/winbindd_rpc.c
===================================================================
--- branches/SAMBA_3_0_23/source/nsswitch/winbindd_rpc.c 2006-10-16 13:06:41 UTC (rev 19339)
+++ branches/SAMBA_3_0_23/source/nsswitch/winbindd_rpc.c 2006-10-16 14:29:14 UTC (rev 19340)
@@ -563,6 +563,7 @@
unsigned int j;
fstring sid_string;
struct rpc_pipe_client *cli;
+ unsigned int orig_timeout;
DEBUG(10,("rpc: lookup_groupmem %s sid=%s\n", domain->name,
sid_to_string(sid_string, group_sid)));
@@ -585,10 +586,18 @@
/* Step #1: Get a list of user rids that are the members of the
group. */
+ /* 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);
+
result = rpccli_samr_query_groupmem(cli, mem_ctx,
&group_pol, num_names, &rid_mem,
name_types);
+ /* And restore our original timeout. */
+ cli_set_timeout(cli->cli, orig_timeout);
+
rpccli_samr_close(cli, mem_ctx, &group_pol);
if (!NT_STATUS_IS_OK(result))
Modified: branches/SAMBA_3_0_23/source/rpcclient/cmd_samr.c
===================================================================
--- branches/SAMBA_3_0_23/source/rpcclient/cmd_samr.c 2006-10-16 13:06:41 UTC (rev 19339)
+++ branches/SAMBA_3_0_23/source/rpcclient/cmd_samr.c 2006-10-16 14:29:14 UTC (rev 19340)
@@ -785,6 +785,7 @@
uint32 access_mask = MAXIMUM_ALLOWED_ACCESS;
int i;
fstring server;
+ unsigned int old_timeout;
if ((argc < 2) || (argc > 3)) {
printf("Usage: %s rid [access mask]\n", argv[0]);
@@ -819,10 +820,15 @@
if (!NT_STATUS_IS_OK(result))
goto done;
+ /* Make sure to wait for our DC's reply */
+ old_timeout = cli_set_timeout(cli->cli, 30000); /* 30 seconds. */
+
result = rpccli_samr_query_groupmem(cli, mem_ctx, &group_pol,
&num_members, &group_rids,
&group_attrs);
+ cli_set_timeout(cli->cli, old_timeout);
+
if (!NT_STATUS_IS_OK(result))
goto done;
More information about the samba-cvs
mailing list