Mercurial > hg > nginx
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 |