diff options
author | Andrew Bartlett <abartlet@samba.org> | 2004-07-14 04:36:01 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 10:52:13 -0500 |
commit | 9d0783bf211dffe58845b36b0669f05bf8bf25b5 (patch) | |
tree | 3a7434e8a13cf736d2deb7268ef7cf3864cf9499 /source3/smbd | |
parent | 8f93b500320d7d4341dfea37fd1f82d02b1ce980 (diff) | |
download | samba-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')
-rw-r--r-- | source3/smbd/server.c | 11 |
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 */ |