[PATCH] parameter 'passwd chat timeout'
Jeff McElroy
samba-technical at radux.com
Wed Jan 22 17:46:00 GMT 2003
The 'passwd chat' script currently has a hard coded 2 second timeout
that it uses when waiting for a response. This is too small for us
since we propogate the password to a corporate meta-directory via java,
soap and ssl (which takes 10 seconds on a clear day).
Is there any performance/usability reason why this timeout has been
kept small ?
Attached is a patch for 2.2.7a and HEAD for the parameter 'passwd
chat timeout' that allows this timeout to be adjusted. The default
value for this parameter is kept at 2 seconds.
Jeff McElroy
-------------- next part --------------
Index: source/param/loadparm.c
===================================================================
RCS file: /cvsroot/samba/source/param/loadparm.c,v
retrieving revision 1.475
diff -u -r1.475 loadparm.c
--- source/param/loadparm.c 13 Jan 2003 13:03:24 -0000 1.475
+++ source/param/loadparm.c 22 Jan 2003 17:31:34 -0000
@@ -279,6 +279,7 @@
int restrict_anonymous;
int name_cache_timeout;
param_opt_struct *param_opt;
+ int passwd_chat_timeout;
}
global;
@@ -1110,6 +1111,7 @@
{"winbind enum users", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumUsers, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
{"winbind enum groups", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumGroups, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
{"winbind use default domain", P_BOOL, P_GLOBAL, &Globals.bWinbindUseDefaultDomain, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+ {"passwd chat timeout", P_INTEGER, P_GLOBAL, &Globals.passwd_chat_timeout, NULL, NULL, FLAG_BASIC},
{NULL, P_BOOL, P_NONE, NULL, NULL, NULL, 0}
};
@@ -1453,6 +1455,8 @@
Globals.bUseSpnego = True;
string_set(&Globals.smb_ports, SMB_PORTS);
+
+ Globals.passwd_chat_timeout=2000; /* In milliseconds */
}
static TALLOC_CTX *lp_talloc;
@@ -1827,6 +1831,7 @@
FN_GLOBAL_BOOL(lp_hide_local_users, &Globals.bHideLocalUsers)
FN_GLOBAL_BOOL(lp_algorithmic_rid_base, &Globals.bAlgorithmicRidBase)
FN_GLOBAL_INTEGER(lp_name_cache_timeout, &Globals.name_cache_timeout)
+FN_GLOBAL_INTEGER(lp_passwd_chat_timeout, &Globals.passwd_chat_timeout)
/* local prototypes */
Index: source/smbd/chgpasswd.c
===================================================================
RCS file: /cvsroot/samba/source/smbd/chgpasswd.c,v
retrieving revision 1.100
diff -u -r1.100 chgpasswd.c
--- source/smbd/chgpasswd.c 15 Jan 2003 22:15:07 -0000 1.100
+++ source/smbd/chgpasswd.c 22 Jan 2003 17:31:37 -0000
@@ -245,7 +245,9 @@
if (strequal(expected, "."))
return True;
- timeout = 2000;
+ timeout=lp_passwd_chat_timeout();
+ DEBUG(100, ("expect: passwd_chat_timeout=%d\n", timeout));
+
nread = 0;
buffer[nread] = 0;
-------------- next part --------------
diff -uwrB samba-2.2.7a.dist/source/param/loadparm.c samba-2.2.7a/source/param/loadparm.c
--- samba-2.2.7a.dist/source/param/loadparm.c Tue Dec 10 14:58:15 2002
+++ samba-2.2.7a/source/param/loadparm.c Tue Jan 21 20:18:53 2003
@@ -286,6 +286,7 @@
BOOL bUseMmap;
BOOL bUnixExtensions;
int name_cache_timeout;
+ int passwd_chat_timeout;
}
global;
@@ -1118,6 +1119,7 @@
{"winbind enum users", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumUsers, NULL, NULL, 0},
{"winbind enum groups", P_BOOL, P_GLOBAL, &Globals.bWinbindEnumGroups, NULL, NULL, 0},
{"winbind use default domain", P_BOOL, P_GLOBAL, &Globals.bWinbindUseDefaultDomain, NULL, NULL, 0},
+ {"passwd chat timeout", P_INTEGER, P_GLOBAL, &Globals.passwd_chat_timeout, NULL, NULL, FLAG_BASIC},
{NULL, P_BOOL, P_NONE, NULL, NULL, NULL, 0}
};
@@ -1467,6 +1469,8 @@
*/
interpret_coding_system(KANJI);
+
+ Globals.passwd_chat_timeout=2000;
}
static TALLOC_CTX *lp_talloc;
@@ -1822,6 +1826,7 @@
FN_LOCAL_CHAR(lp_magicchar, magic_char)
FN_GLOBAL_INTEGER(lp_winbind_cache_time, &Globals.winbind_cache_time)
FN_GLOBAL_BOOL(lp_hide_local_users, &Globals.bHideLocalUsers)
+FN_GLOBAL_INTEGER(lp_passwd_chat_timeout, &Globals.passwd_chat_timeout)
/* local prototypes */
diff -uwrB samba-2.2.7a.dist/source/smbd/chgpasswd.c samba-2.2.7a/source/smbd/chgpasswd.c
--- samba-2.2.7a.dist/source/smbd/chgpasswd.c Tue Jan 21 19:32:42 2003
+++ samba-2.2.7a/source/smbd/chgpasswd.c Tue Jan 21 23:36:13 2003
@@ -239,7 +239,8 @@
if (strequal(expected, "."))
return True;
- timeout = 2000;
+ timeout=lp_passwd_chat_timeout();
+ DEBUG(100, ("expect: passwd_chat_timeout=%d\n", timeout));
nread = 0;
buffer[nread] = 0;
More information about the samba-technical
mailing list