s3: winbindd: Add new parameter "winbind request timeout" set to 60 seconds with...
authorJeremy Allison <jra@samba.org>
Tue, 29 Jul 2014 21:53:11 +0000 (14:53 -0700)
committerKarolin Seeger <kseeger@samba.org>
Tue, 2 Sep 2014 18:39:20 +0000 (20:39 +0200)
"This parameter specifies the number of seconds the winbindd
daemon will wait before disconnecting either a client connection
with no outstanding requests (idle) or a client connection with a
request that has remained outstanding (hung) for longer than this
number of seconds."

Bug 3204 winbindd: Exceeding 200 client connections, no idle connection found

https://bugzilla.samba.org/show_bug.cgi?id=3204

Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Ira Cooper <ira@samba.org>
docs-xml/smbdotconf/winbind/winbindrequesttimeout.xml [new file with mode: 0644]
lib/param/param_functions.c
lib/param/param_table.c
source3/include/proto.h
source3/param/loadparm.c

diff --git a/docs-xml/smbdotconf/winbind/winbindrequesttimeout.xml b/docs-xml/smbdotconf/winbind/winbindrequesttimeout.xml
new file mode 100644 (file)
index 0000000..3220871
--- /dev/null
@@ -0,0 +1,16 @@
+<samba:parameter name="winbind request timeout"
+                 context="G"
+                                type="integer"
+                 advanced="1" developer="1"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+       <para>This parameter specifies the number of
+       seconds the <citerefentry><refentrytitle>winbindd</refentrytitle>
+       <manvolnum>8</manvolnum></citerefentry> daemon will wait before
+       disconnecting either a client connection with no outstanding
+       requests (idle) or a client connection with a request that has
+       remained outstanding (hung) for longer than this number of seconds.</para>
+</description>
+
+<value type="default">60</value>
+</samba:parameter>
index 35e199fa0122003b81a099a26af49e2447266a87..41b44b61b8922c0c40b5dc0201f611244acc9e2b 100644 (file)
@@ -344,6 +344,7 @@ FN_GLOBAL_INTEGER(winbind_cache_time, winbind_cache_time)
 FN_GLOBAL_INTEGER(winbind_expand_groups, winbind_expand_groups)
 FN_GLOBAL_INTEGER(winbind_max_clients, winbind_max_clients)
 FN_GLOBAL_INTEGER(winbind_reconnect_delay, winbind_reconnect_delay)
+FN_GLOBAL_INTEGER(winbind_request_timeout, winbind_request_timeout)
 FN_GLOBAL_LIST(auth_methods, AuthMethods)
 FN_GLOBAL_LIST(cluster_addresses, szClusterAddresses)
 FN_GLOBAL_LIST(dcerpc_endpoint_servers, dcerpc_ep_servers)
index 5b78eae2fc33391435fa1e117f24568a23329b67..0916023d10111689b15aa415117c50da632b628e 100644 (file)
@@ -4033,6 +4033,15 @@ static struct parm_struct parm_table[] = {
                .enum_list      = NULL,
                .flags          = FLAG_ADVANCED,
        },
+       {
+               .label          = "winbind request timeout",
+               .type           = P_INTEGER,
+               .p_class        = P_GLOBAL,
+               .offset         = GLOBAL_VAR(winbind_request_timeout),
+               .special        = NULL,
+               .enum_list      = NULL,
+               .flags          = FLAG_ADVANCED,
+       },
        {
                .label          = "winbind max clients",
                .type           = P_INTEGER,
index 0276244a42516d9f20914365358f762f8b5a2b33..a8352530ebae18c07795747b9a13f34b138dea70 100644 (file)
@@ -1352,6 +1352,7 @@ int lp_smb_encrypt(int );
 char lp_magicchar(const struct share_params *p );
 int lp_winbind_cache_time(void);
 int lp_winbind_reconnect_delay(void);
+int lp_winbind_request_timeout(void);
 int lp_winbind_max_clients(void);
 const char **lp_winbind_nss_info(void);
 int lp_algorithmic_rid_base(void);
index 2857765d43ebcd15f3201ba36b5215607dc69317..d3d18f4c86ae550f10347b85b58e7b71f7e3a2d4 100644 (file)
@@ -977,6 +977,7 @@ static void init_globals(bool reinit_globals)
 
        Globals.winbind_cache_time = 300;       /* 5 minutes */
        Globals.winbind_reconnect_delay = 30;   /* 30 seconds */
+       Globals.winbind_request_timeout = 60;   /* 60 seconds */
        Globals.winbind_max_clients = 200;
        Globals.bWinbindEnumUsers = false;
        Globals.bWinbindEnumGroups = false;