summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/fastd.c4
-rw-r--r--src/fastd.h4
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);
}