summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2002-01-14 19:34:28 +0000
committerJeremy Allison <jra@samba.org>2002-01-14 19:34:28 +0000
commit9e007457e4aa0ed8656782be1b8af42fc217614b (patch)
treeb5295dc046a5bd25bc82080a6673325c2a87d7cf
parent3353223b4766b0cc87bd1b4ed7f67bc52b2a7da3 (diff)
downloadsamba-9e007457e4aa0ed8656782be1b8af42fc217614b.tar.gz
samba-9e007457e4aa0ed8656782be1b8af42fc217614b.tar.bz2
samba-9e007457e4aa0ed8656782be1b8af42fc217614b.zip
Removed MAXSTATUS which was set incorrectly - thus causing tdb traversal
of the connections db on smbd startup. This should fix the Solaris large load bug.... (fingers crossed). Jeremy. (This used to be commit 5b2b9c25af28543e67762805d1387524cbb6c39d)
-rw-r--r--source3/include/local.h3
-rw-r--r--source3/printing/printing.c8
-rw-r--r--source3/smbd/connection.c2
-rw-r--r--source3/smbd/server.c25
-rw-r--r--source3/smbd/service.c14
5 files changed, 19 insertions, 33 deletions
diff --git a/source3/include/local.h b/source3/include/local.h
index da9fee0564..c7abe207c8 100644
--- a/source3/include/local.h
+++ b/source3/include/local.h
@@ -68,7 +68,8 @@
#endif
/* the max number of simultanous connections to the server by all clients */
-#define MAXSTATUS 100000
+/* zero means no limit. */
+#define MAXSTATUS 0
#define WORDMAX 0xFFFF
diff --git a/source3/printing/printing.c b/source3/printing/printing.c
index 08115cdb79..339ca721c6 100644
--- a/source3/printing/printing.c
+++ b/source3/printing/printing.c
@@ -507,15 +507,13 @@ void start_background_queue(void)
/* Child. */
DEBUG(5,("start_background_queue: background LPQ thread started\n"));
- claim_connection(NULL,"smbd lpq backend",MAXSTATUS,False);
+ claim_connection(NULL,"smbd lpq backend",0,False);
- if (!locking_init(0)) {
+ if (!locking_init(0))
exit(1);
- }
- if (!print_backend_init()) {
+ if (!print_backend_init())
exit(1);
- }
message_register(MSG_PRINTER_UPDATE, print_queue_receive);
diff --git a/source3/smbd/connection.c b/source3/smbd/connection.c
index c0eaf8187d..da904e0a04 100644
--- a/source3/smbd/connection.c
+++ b/source3/smbd/connection.c
@@ -37,7 +37,7 @@ TDB_CONTEXT *conn_tdb_ctx(void)
Delete a connection record.
****************************************************************************/
-BOOL yield_connection(connection_struct *conn,char *name,int max_connections)
+BOOL yield_connection(connection_struct *conn,char *name)
{
struct connections_key key;
TDB_DATA kbuf;
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index b8e9c2beae..330feece91 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -494,7 +494,7 @@ void exit_server(char *reason)
invalidate_all_vuids();
/* delete our entry in the connections database. */
- yield_connection(NULL,"",MAXSTATUS);
+ yield_connection(NULL,"");
respond_to_all_remaining_local_messages();
decrement_smbd_process_count();
@@ -812,7 +812,7 @@ static void usage(char *pname)
register_dmalloc_msgs();
/* Setup the main smbd so that we can get messages. */
- claim_connection(NULL,"",MAXSTATUS,True);
+ claim_connection(NULL,"",0,True);
/*
DO NOT ENABLE THIS TILL YOU COPE WITH KILLING THESE TASKS AND INETD
@@ -828,21 +828,17 @@ static void usage(char *pname)
* everything after this point is run after the fork()
*/
- if (!locking_init(0)) {
+ if (!locking_init(0))
exit(1);
- }
- if (!print_backend_init()) {
+ if (!print_backend_init())
exit(1);
- }
- if (!share_info_db_init()) {
+ if (!share_info_db_init())
exit(1);
- }
- if(!initialize_password_db(False)) {
+ if(!initialize_password_db(False))
exit(1);
- }
/* possibly reload the services file. */
reload_services(True);
@@ -868,19 +864,16 @@ static void usage(char *pname)
}
/* Setup oplocks */
- if (!init_oplocks()) {
+ if (!init_oplocks())
exit(1);
- }
/* Setup mangle */
- if (!init_mangle_tdb()) {
+ if (!init_mangle_tdb())
exit(1);
- }
/* Setup change notify */
- if (!init_change_notify()) {
+ if (!init_change_notify())
exit(1);
- }
smbd_process();
diff --git a/source3/smbd/service.c b/source3/smbd/service.c
index 8218ca2dc5..120868f24a 100644
--- a/source3/smbd/service.c
+++ b/source3/smbd/service.c
@@ -588,9 +588,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password,
ret = smbrun(cmd,NULL);
if (ret != 0 && lp_rootpreexec_close(SNUM(conn))) {
DEBUG(1,("root preexec gave %d - failing connection\n", ret));
- yield_connection(conn,
- lp_servicename(SNUM(conn)),
- lp_max_connections(SNUM(conn)));
+ yield_connection(conn, lp_servicename(SNUM(conn)));
conn_free(conn);
*status = NT_STATUS_UNSUCCESSFUL;
return NULL;
@@ -619,7 +617,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password,
if (ret != 0 && lp_preexec_close(SNUM(conn))) {
DEBUG(1,("preexec gave %d - failing connection\n", ret));
change_to_root_user();
- yield_connection(conn, lp_servicename(SNUM(conn)), lp_max_connections(SNUM(conn)));
+ yield_connection(conn, lp_servicename(SNUM(conn)));
conn_free(conn);
*status = NT_STATUS_UNSUCCESSFUL;
return NULL;
@@ -631,9 +629,7 @@ connection_struct *make_connection(char *service, DATA_BLOB password,
remote_machine, conn->client_address,
conn->connectpath,strerror(errno)));
change_to_root_user();
- yield_connection(conn,
- lp_servicename(SNUM(conn)),
- lp_max_connections(SNUM(conn)));
+ yield_connection(conn, lp_servicename(SNUM(conn)));
conn_free(conn);
*status = NT_STATUS_BAD_NETWORK_NAME;
return NULL;
@@ -713,9 +709,7 @@ void close_cnum(connection_struct *conn, uint16 vuid)
}
- yield_connection(conn,
- lp_servicename(SNUM(conn)),
- lp_max_connections(SNUM(conn)));
+ yield_connection(conn, lp_servicename(SNUM(conn)));
file_close_conn(conn);
dptr_closecnum(conn);