diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fastd.c | 4 | ||||
-rw-r--r-- | src/fastd.h | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/src/fastd.c b/src/fastd.c index eff605e..e0d4bb2 100644 --- a/src/fastd.c +++ b/src/fastd.c @@ -460,7 +460,9 @@ static inline void notify_systemd(void) { static inline void init_early(void) { fastd_close_all_fds(); - fastd_random_bytes(&ctx.randseed, sizeof(ctx.randseed), false); + unsigned int seed; + fastd_random_bytes(&seed, sizeof(seed), false); + srandom(seed); fastd_cipher_init(); fastd_mac_init(); diff --git a/src/fastd.h b/src/fastd.h index 539dd54..8700be2 100644 --- a/src/fastd.h +++ b/src/fastd.h @@ -281,8 +281,6 @@ struct fastd_context { VECTOR(fastd_peer_eth_addr_t) eth_addrs; /**< Sorted vector of all known ethernet addresses with associated peers and timeouts */ - unsigned int randseed; /**< Random seed for non-cryptographic random numbers */ - size_t unknown_handshake_pos; /**< Current start position in the ring buffer unknown_handshakes */ fastd_handshake_timeout_t unknown_handshakes[8]; /**< Ring buffer of unknown addresses handshakes have been received from */ @@ -328,7 +326,7 @@ void fastd_random_bytes(void *buffer, size_t len, bool secure); /** Returns a random number between \a min (inclusively) and \a max (exclusively) */ static inline int fastd_rand(int min, int max) { - unsigned int r = (unsigned int)rand_r(&ctx.randseed); + unsigned int r = (unsigned int)random(); return (r%(max-min) + min); } |