aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Uhlin <markus@nifty-networks.net>2026-03-23 21:21:03 +0100
committerMarkus Uhlin <markus@nifty-networks.net>2026-03-23 21:21:03 +0100
commit1af549602ea03f66e0d3e4384aea3e9717526977 (patch)
treebedc8c1c0bc91030bf1efe4185eb3f5ce7e1ba05
parent063ea8ba39b566b5f4425e333b2977f976a6b035 (diff)
Seeded the PRNG better
-rw-r--r--FICS/ficsmain.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/FICS/ficsmain.c b/FICS/ficsmain.c
index 1c0aa6b..c71b7a0 100644
--- a/FICS/ficsmain.c
+++ b/FICS/ficsmain.c
@@ -43,6 +43,7 @@
#include <errno.h>
#include <stdint.h>
#include <string.h>
+#include <time.h>
#include "addgroup.h"
#include "board.h"
@@ -263,6 +264,17 @@ main_event_loop(void)
}
}
+PRIVATE void
+seed_the_prng(void)
+{
+ struct timespec ts = {0};
+
+ if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
+ err(1, "%s: fatal: clock_gettime", __func__);
+
+ srand(ts.tv_nsec ^ ts.tv_sec);
+}
+
PRIVATE __dead void
usage(char *progname)
{
@@ -335,7 +347,7 @@ main(int argc, char *argv[])
game_high = 0;
player_high = 0;
quota_time = 60;
- srand(startuptime);
+ seed_the_prng();
(void) fprintf(stderr, "FICS: Initialized on port %d at %s.\n", port,
strltime(&startuptime));