changeset 5499:b91bcba29351

Added per-process random seeding (ticket #456).
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 04 Jan 2014 03:32:06 +0400
parents d39a69427056
children 6a3ab6fdd70f
files src/os/unix/ngx_process_cycle.c src/os/win32/ngx_win32_init.c
diffstat 2 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -959,6 +959,8 @@ ngx_worker_process_init(ngx_cycle_t *cyc
                       "sigprocmask() failed");
     }
 
+    srandom((ngx_pid << 16) ^ ngx_time());
+
     /*
      * disable deleting previous events for the listening sockets because
      * in the worker processes there are no events at all at this point
--- a/src/os/win32/ngx_win32_init.c
+++ b/src/os/win32/ngx_win32_init.c
@@ -228,7 +228,7 @@ ngx_os_init(ngx_log_t *log)
         ngx_sprintf((u_char *) ngx_unique, "%P%Z", ngx_pid);
     }
 
-    srand((unsigned) ngx_time());
+    srand((ngx_pid << 16) ^ (unsigned) ngx_time());
 
     return NGX_OK;
 }