From 74673b8e1bc128fa2e05e1b329a5b101b0c59e68 Mon Sep 17 00:00:00 2001 From: Hanicef <gustaf@hanicef.me> Date: Mon, 26 Feb 2024 22:11:52 +0100 Subject: [PATCH] Fix banlist being cleared if server fails to start --- src/netcode/commands.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/netcode/commands.c b/src/netcode/commands.c index 46dfbc741d..f3bbc8a861 100644 --- a/src/netcode/commands.c +++ b/src/netcode/commands.c @@ -41,6 +41,8 @@ typedef struct banreason_s static banreason_t *reasontail = NULL; //last entry, use prev static banreason_t *reasonhead = NULL; //1st entry, use next +static boolean bans_loaded = false; + void Ban_Add(const char *reason) { banreason_t *reasonlist = malloc(sizeof(*reasonlist)); @@ -85,6 +87,8 @@ void Ban_Load_File(boolean warning) if (!I_ClearBans) return; + bans_loaded = true; + f = fopen(va("%s"PATHSEP"%s", srb2home, "ban.txt"), "r"); if (!f) @@ -124,6 +128,12 @@ void D_SaveBan(void) const char *address, *mask; const char *path = va("%s"PATHSEP"%s", srb2home, "ban.txt"); + if (!bans_loaded) + { + // don't save bans if they were never loaded. + return; + } + if (!reasonhead) { remove(path); -- GitLab