comparison src/os/win32/ngx_win32_init.c @ 6651:7d4e33092e2a

Always seed PRNG with PID, seconds, and milliseconds.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 04 Aug 2016 23:43:10 +0300
parents 293413010217
children 56fc55e32f23
comparison
equal deleted inserted replaced
6650:1a1d55834b5c 6651:7d4e33092e2a
57 57
58 58
59 ngx_int_t 59 ngx_int_t
60 ngx_os_init(ngx_log_t *log) 60 ngx_os_init(ngx_log_t *log)
61 { 61 {
62 DWORD bytes; 62 DWORD bytes;
63 SOCKET s; 63 SOCKET s;
64 WSADATA wsd; 64 WSADATA wsd;
65 ngx_err_t err; 65 ngx_err_t err;
66 ngx_uint_t n; 66 ngx_time_t *tp;
67 SYSTEM_INFO si; 67 ngx_uint_t n;
68 SYSTEM_INFO si;
68 69
69 /* get Windows version */ 70 /* get Windows version */
70 71
71 ngx_memzero(&osvi, sizeof(OSVERSIONINFOEX)); 72 ngx_memzero(&osvi, sizeof(OSVERSIONINFOEX));
72 osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); 73 osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
235 } 236 }
236 237
237 ngx_sprintf((u_char *) ngx_unique, "%P%Z", ngx_pid); 238 ngx_sprintf((u_char *) ngx_unique, "%P%Z", ngx_pid);
238 } 239 }
239 240
240 srand((ngx_pid << 16) ^ (unsigned) ngx_time()); 241 tp = ngx_timeofday();
242 srand((ngx_pid << 16) ^ (unsigned) tp->sec ^ tp->msec);
241 243
242 return NGX_OK; 244 return NGX_OK;
243 } 245 }
244 246
245 247