[PATCH 2 of 2] Win32: extended ngx_random range to 0x7fffffff

J Carter jordanc.carter at outlook.com
Sat Dec 9 08:42:11 UTC 2023


On Sat, 09 Dec 2023 07:46:10 +0000
J Carter <jordanc.carter at outlook.com> wrote:

> # HG changeset patch
> # User J Carter <jordanc.carter at outlook.com>
> # Date 1702101635 0
> #      Sat Dec 09 06:00:35 2023 +0000
> # Node ID 1a77698f82d2580aa8b8f62ce89b4dbb6d678c5d
> # Parent  d9275e982a7188a1ea7855295ffa93362ea9830f
> Win32: extended ngx_random range to 0x7fffffff
> 
> rand() is used on win32. RAND_MAX is implementation defined. win32's is
> 0x7fff.
> 
> Existing uses of ngx_random rely upon 0x7fffffff range provided by
> posix implementations of random().
> 
> diff -r d9275e982a71 -r 1a77698f82d2 src/os/win32/ngx_win32_config.h
> --- a/src/os/win32/ngx_win32_config.h	Sat Dec 09 05:09:07 2023 +0000
> +++ b/src/os/win32/ngx_win32_config.h	Sat Dec 09 06:00:35 2023 +0000
> @@ -280,7 +280,9 @@
>  
>  #define NGX_HAVE_GETADDRINFO         1
>  
> -#define ngx_random               rand
> +#define ngx_random                                                             \
> +    ((rand() << 16) | (rand() << 1) | (rand() >> 14))
> +
>  #define ngx_debug_init()
>  
>  

^ my mistake - copying error..

# HG changeset patch
# User J Carter <jordanc.carter at outlook.com>
# Date 1702111094 0
#      Sat Dec 09 08:38:14 2023 +0000
# Node ID 10ef59a412a330872fc6d46de64f42e32e997b3a
# Parent  d9275e982a7188a1ea7855295ffa93362ea9830f
Win32: extended ngx_random range to 0x7fffffff

rand() is used on win32. RAND_MAX is implementation defined. win32's is
0x7fff.

Existing uses of ngx_random rely upon 0x7fffffff range provided by
posix implementations of random().

diff -r d9275e982a71 -r 10ef59a412a3 src/os/win32/ngx_win32_config.h
--- a/src/os/win32/ngx_win32_config.h	Sat Dec 09 05:09:07 2023 +0000
+++ b/src/os/win32/ngx_win32_config.h	Sat Dec 09 08:38:14 2023 +0000
@@ -280,7 +280,9 @@
 
 #define NGX_HAVE_GETADDRINFO         1
 
-#define ngx_random               rand
+#define ngx_random()                                                             \
+    ((rand() << 16) | (rand() << 1) | (rand() >> 14))
+
 #define ngx_debug_init()
 
 


More information about the nginx-devel mailing list