summaryrefslogtreecommitdiff
path: root/source3/smbd/server.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2004-07-14 04:36:01 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:52:13 -0500
commit9d0783bf211dffe58845b36b0669f05bf8bf25b5 (patch)
tree3a7434e8a13cf736d2deb7268ef7cf3864cf9499 /source3/smbd/server.c
parent8f93b500320d7d4341dfea37fd1f82d02b1ce980 (diff)
downloadsamba-9d0783bf211dffe58845b36b0669f05bf8bf25b5.tar.gz
samba-9d0783bf211dffe58845b36b0669f05bf8bf25b5.tar.bz2
samba-9d0783bf211dffe58845b36b0669f05bf8bf25b5.zip
r1492: Rework our random number generation system.
On systems with /dev/urandom, this avoids a change to secrets.tdb for every fork(). For other systems, we now only re-seed after a fork, and on startup. No need to do it per-operation. This removes the 'need_reseed' parameter from generate_random_buffer(). Andrew Bartlett (This used to be commit 36741d3cf53a7bd17d361251f2bb50851cdb035f)
Diffstat (limited to 'source3/smbd/server.c')
-rw-r--r--source3/smbd/server.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index c3e0da542e..16281dd86c 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -409,11 +409,12 @@ static BOOL open_sockets_smbd(BOOL is_daemon, BOOL interactive, const char *smb_
in smbstatus for port 445 connects */
set_remote_machine_name(get_peer_addr(smbd_server_fd()), False);
- /* Reset global variables in util.c so
- that client substitutions will be
- done correctly in the process. */
- reset_globals_after_fork();
+ /* Reset the state of the random
+ * number generation system, so
+ * children do not get the same random
+ * numbers as each other */
+ set_need_random_reseed();
/* tdb needs special fork handling - remove CLEAR_IF_FIRST flags */
if (tdb_reopen_all() == -1) {
DEBUG(0,("tdb_reopen_all failed.\n"));
@@ -717,7 +718,7 @@ void build_options(BOOL screen);
/* we want to re-seed early to prevent time delays causing
client problems at a later date. (tridge) */
- generate_random_buffer(NULL, 0, False);
+ generate_random_buffer(NULL, 0);
/* make absolutely sure we run as root - to handle cases where people
are crazy enough to have it setuid */