[SCM] Samba Shared Repository - branch v3-5-test updated

Karolin Seeger kseeger at samba.org
Wed Sep 28 12:30:38 MDT 2011


The branch, v3-5-test has been updated
       via  b6f691e Allows changing the maximum number of simultaneous clients in winbindd through an smb.conf option.
      from  d7f0de0 s3-winbind: Fix bug 7888 -- deal with buggy 3.0 based PDCs.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-5-test


- Log -----------------------------------------------------------------
commit b6f691ede0a80aaf7226b6862120b5052e63668d
Author: Pierre Carrier <pcarrier at redhat.com>
Date:   Tue Sep 14 16:43:39 2010 -0700

    Allows changing the maximum number of simultaneous clients in winbindd through an smb.conf option.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    
    Fix bug #8186 (Allows changing the maximum number of simultaneous clients in
    winbindd through an smb.conf option).

-----------------------------------------------------------------------

Summary of changes:
 docs-xml/smbdotconf/winbind/winbindmaxclients.xml |   14 ++++++++++++++
 source3/include/local.h                           |    3 ---
 source3/include/proto.h                           |    1 +
 source3/param/loadparm.c                          |   13 ++++++++++++-
 source3/winbindd/winbindd.c                       |    8 +++-----
 5 files changed, 30 insertions(+), 9 deletions(-)
 create mode 100644 docs-xml/smbdotconf/winbind/winbindmaxclients.xml


Changeset truncated at 500 lines:

diff --git a/docs-xml/smbdotconf/winbind/winbindmaxclients.xml b/docs-xml/smbdotconf/winbind/winbindmaxclients.xml
new file mode 100644
index 0000000..ae49e45
--- /dev/null
+++ b/docs-xml/smbdotconf/winbind/winbindmaxclients.xml
@@ -0,0 +1,14 @@
+<samba:parameter name="winbind max clients"
+                 context="G"
+				 type="integer"
+                 advanced="1" developer="1"
+                 xmlns:samba="http://www.samba.org/samba/DTD/samba-doc">
+<description>
+	<para>This parameter specifies the maximum number of clients
+	the <citerefentry><refentrytitle>winbindd</refentrytitle>
+	<manvolnum>8</manvolnum></citerefentry> daemon can connect with.
+	</para>
+</description>
+
+<value type="default">200</value>
+</samba:parameter>
diff --git a/source3/include/local.h b/source3/include/local.h
index d65cc00..6153a2a 100644
--- a/source3/include/local.h
+++ b/source3/include/local.h
@@ -240,9 +240,6 @@
 /* Number in seconds for winbindd to wait for the mutex. Make this 2 * smbd wait time. */
 #define WINBIND_SERVER_MUTEX_WAIT_TIME (( ((NUM_CLI_AUTH_CONNECT_RETRIES) * ((CLI_AUTH_TIMEOUT)/1000)) + 5)*2)
 
-/* Max number of simultaneous winbindd socket connections. */
-#define WINBINDD_MAX_SIMULTANEOUS_CLIENTS 200
-
 /* Buffer size to use when printing backtraces */
 #define BACKTRACE_STACK_SIZE 64
 
diff --git a/source3/include/proto.h b/source3/include/proto.h
index c5065e2..2b20cc4 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4264,6 +4264,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_max_clients(void);
 const char **lp_winbind_nss_info(void);
 int lp_algorithmic_rid_base(void);
 int lp_name_cache_timeout(void);
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 1ad067b..08b6532 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -251,7 +251,7 @@ struct global {
 	int oplock_break_wait_time;
 	int winbind_cache_time;
 	int winbind_reconnect_delay;
-	int winbind_max_idle_children;
+	int winbind_max_clients;
 	char **szWinbindNssInfo;
 	int iLockSpinTime;
 	char *szLdapMachineSuffix;
@@ -4552,6 +4552,15 @@ static struct parm_struct parm_table[] = {
 		.flags		= FLAG_ADVANCED,
 	},
 	{
+		.label		= "winbind max clients",
+		.type		= P_INTEGER,
+		.p_class	= P_GLOBAL,
+		.ptr		= &Globals.winbind_max_clients,
+		.special	= NULL,
+		.enum_list	= NULL,
+		.flags		= FLAG_ADVANCED,
+	},
+	{
 		.label		= "winbind enum users",
 		.type		= P_BOOL,
 		.p_class	= P_GLOBAL,
@@ -5177,6 +5186,7 @@ static void init_globals(bool first_time_only)
 
 	Globals.winbind_cache_time = 300;	/* 5 minutes */
 	Globals.winbind_reconnect_delay = 30;	/* 30 seconds */
+	Globals.winbind_max_clients = 200;
 	Globals.bWinbindEnumUsers = False;
 	Globals.bWinbindEnumGroups = False;
 	Globals.bWinbindUseDefaultDomain = False;
@@ -5744,6 +5754,7 @@ FN_LOCAL_INTEGER(lp_smb_encrypt, ismb_encrypt)
 FN_LOCAL_CHAR(lp_magicchar, magic_char)
 FN_GLOBAL_INTEGER(lp_winbind_cache_time, &Globals.winbind_cache_time)
 FN_GLOBAL_INTEGER(lp_winbind_reconnect_delay, &Globals.winbind_reconnect_delay)
+FN_GLOBAL_INTEGER(lp_winbind_max_clients, &Globals.winbind_max_clients)
 FN_GLOBAL_LIST(lp_winbind_nss_info, &Globals.szWinbindNssInfo)
 FN_GLOBAL_INTEGER(lp_algorithmic_rid_base, &Globals.AlgorithmicRidBase)
 FN_GLOBAL_INTEGER(lp_name_cache_timeout, &Globals.name_cache_timeout)
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index 70749c5..034e43b 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -903,17 +903,15 @@ static void winbindd_listen_fde_handler(struct tevent_context *ev,
 	struct winbindd_listen_state *s = talloc_get_type_abort(private_data,
 					  struct winbindd_listen_state);
 
-	while (winbindd_num_clients() >
-	       WINBINDD_MAX_SIMULTANEOUS_CLIENTS - 1) {
+	while (winbindd_num_clients() > lp_winbind_max_clients() - 1) {
 		DEBUG(5,("winbindd: Exceeding %d client "
 			 "connections, removing idle "
-			 "connection.\n",
-			 WINBINDD_MAX_SIMULTANEOUS_CLIENTS));
+			 "connection.\n", lp_winbind_max_clients()));
 		if (!remove_idle_client()) {
 			DEBUG(0,("winbindd: Exceeding %d "
 				 "client connections, no idle "
 				 "connection found\n",
-				 WINBINDD_MAX_SIMULTANEOUS_CLIENTS));
+				 lp_winbind_max_clients()));
 			break;
 		}
 	}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list