[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Sep 14 17:42:53 MDT 2010


The branch, master has been updated
       via  eeb24af Allows changing the maximum number of simultaneous clients in winbindd through an smb.conf option.
      from  0b270f0 Ensure incoming timespec values correctly wrap at nsecs.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit eeb24afd78a6448e808aaf96dbd7d5abf51bbd40
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>

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

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 a3baf64..93ec4cc 100644
--- a/source3/include/local.h
+++ b/source3/include/local.h
@@ -239,9 +239,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 f089c69..e1751e8 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -3539,6 +3539,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 e3fc2d8..bb6e132 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -262,7 +262,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;
@@ -4606,6 +4606,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,
@@ -5299,6 +5308,7 @@ static void init_globals(bool reinit_globals)
 
 	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;
@@ -5877,6 +5887,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 7a9ebb8..9c0a1fb 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -908,17 +908,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