summaryrefslogtreecommitdiff
path: root/ext/standard/php_rand.h
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2003-08-11 00:42:29 +0000
committerfoobar <sniper@php.net>2003-08-11 00:42:29 +0000
commit9a2a0aa5e13ca6df44e30e3474049a8f680d7c5c (patch)
tree4fb319e21c5a1a2b804681cea093e6e6db7c1eb3 /ext/standard/php_rand.h
parentad29f2f0064c56d1f464410511adbcab1a42938a (diff)
downloadphp-git-9a2a0aa5e13ca6df44e30e3474049a8f680d7c5c.tar.gz
- Fixed bug #25007 (rand() & mt_rand() seed RNG every call).
# Also cleaned up the code a bit with this fix.
Diffstat (limited to 'ext/standard/php_rand.h')
-rw-r--r--ext/standard/php_rand.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/standard/php_rand.h b/ext/standard/php_rand.h
index b770386850..16f03bdec2 100644
--- a/ext/standard/php_rand.h
+++ b/ext/standard/php_rand.h
@@ -45,6 +45,12 @@
/* MT Rand */
#define PHP_MT_RAND_MAX ((long) (0x7FFFFFFF)) /* (1<<31) - 1 */
+#ifdef PHP_WIN32
+#define GENERATE_SEED() ((long) (time(0) * GetCurrentProcessId() * 1000000 * php_combined_lcg(TSRMLS_C)))
+#else
+#define GENERATE_SEED() ((long) (time(0) * getpid() * 1000000 * php_combined_lcg(TSRMLS_C)))
+#endif
+
PHPAPI void php_srand(long seed TSRMLS_DC);
PHPAPI long php_rand(TSRMLS_D);
PHPAPI void php_mt_srand(php_uint32 seed TSRMLS_DC);