diff options
author | Jeremy Allison <jra@samba.org> | 2002-01-14 19:34:28 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-01-14 19:34:28 +0000 |
commit | 9e007457e4aa0ed8656782be1b8af42fc217614b (patch) | |
tree | b5295dc046a5bd25bc82080a6673325c2a87d7cf /source3 | |
parent | 3353223b4766b0cc87bd1b4ed7f67bc52b2a7da3 (diff) | |
download | samba-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)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/local.h | 3 | ||||
-rw-r--r-- | source3/printing/printing.c | 8 | ||||
-rw-r--r-- | source3/smbd/connection.c | 2 | ||||
-rw-r--r-- | source3/smbd/server.c | 25 | ||||
-rw-r--r-- | source3/smbd/service.c | 14 |
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); |