diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-10-11 13:00:24 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2019-10-11 13:00:24 +0100 |
commit | a49a31b3f72d9a744c3bb53f60f7f39614eb7f35 (patch) | |
tree | ace290b79d51d65a64d55d0c27cfad6d96be055b /src/libutil | |
parent | b38a1ad26bbbc0a40bbdddf2b7d6dea6c3bd049a (diff) | |
download | rspamd-a49a31b3f72d9a744c3bb53f60f7f39614eb7f35.tar.gz rspamd-a49a31b3f72d9a744c3bb53f60f7f39614eb7f35.zip |
[Feature] Add limit for number of URLs in Lua
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/util.c | 15 | ||||
-rw-r--r-- | src/libutil/util.h | 2 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/libutil/util.c b/src/libutil/util.c index 55696c212..ecdd7b2b9 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -2624,17 +2624,22 @@ xoroshiro_rotl (const guint64 x, int k) { return (x << k) | (x >> (64 - k)); } - gdouble rspamd_random_double_fast (void) { - const guint64 s0 = xorshifto_seed[0]; - guint64 s1 = xorshifto_seed[1]; + return rspamd_random_double_fast_seed (xorshifto_seed); +} + +gdouble +rspamd_random_double_fast_seed (guint64 seed[2]) +{ + const guint64 s0 = seed[0]; + guint64 s1 = seed[1]; const guint64 result = s0 + s1; s1 ^= s0; - xorshifto_seed[0] = xoroshiro_rotl(s0, 55) ^ s1 ^ (s1 << 14); - xorshifto_seed[1] = xoroshiro_rotl (s1, 36); + seed[0] = xoroshiro_rotl(s0, 55) ^ s1 ^ (s1 << 14); + seed[1] = xoroshiro_rotl (s1, 36); return rspamd_double_from_int64 (result); } diff --git a/src/libutil/util.h b/src/libutil/util.h index 7c9eb5f91..c482a2d9f 100644 --- a/src/libutil/util.h +++ b/src/libutil/util.h @@ -424,7 +424,7 @@ gdouble rspamd_random_double (void); * @return */ gdouble rspamd_random_double_fast (void); - +gdouble rspamd_random_double_fast_seed (guint64 seed[2]); guint64 rspamd_random_uint64_fast (void); /** |