Bladeren bron

[Minor] Automatically init xoroshifto PRG

tags/3.0
Vsevolod Stakhov 3 jaren geleden
bovenliggende
commit
92f20993f9
1 gewijzigde bestanden met toevoegingen van 16 en 4 verwijderingen
  1. 16
    4
      src/libutil/util.c

+ 16
- 4
src/libutil/util.c Bestand weergeven

@@ -1766,7 +1766,19 @@ rspamd_random_double (void)
}


static guint64 xorshifto_seed[4];
static guint64*
xorshifto_seed (void)
{
static guint64 xorshifto_seed[4];
static bool initialized = false;

if (G_UNLIKELY(!initialized)) {
ottery_rand_bytes((void *)xorshifto_seed, sizeof (xorshifto_seed));
initialized = true;
}

return xorshifto_seed;
}

static inline guint64
xoroshiro_rotl (const guint64 x, int k) {
@@ -1776,7 +1788,7 @@ xoroshiro_rotl (const guint64 x, int k) {
gdouble
rspamd_random_double_fast (void)
{
return rspamd_random_double_fast_seed (xorshifto_seed);
return rspamd_random_double_fast_seed (xorshifto_seed());
}

/* xoshiro256+ */
@@ -1822,13 +1834,13 @@ rspamd_random_uint64_fast_seed (guint64 seed[4])
guint64
rspamd_random_uint64_fast (void)
{
return rspamd_random_uint64_fast_seed (xorshifto_seed);
return rspamd_random_uint64_fast_seed (xorshifto_seed());
}

void
rspamd_random_seed_fast (void)
{
ottery_rand_bytes (xorshifto_seed, sizeof (xorshifto_seed));
(void)xorshifto_seed();
}

gdouble

Laden…
Annuleren
Opslaan