Better bans
- Jul 04, 2022
-
-
toaster authored
Catch several ways ban.txt could be malformed by a well-meaning server host, and report it back via the log.
fbb613b2
-
- Jul 03, 2022
-
-
toaster authored36e44f2f
-
- Jun 15, 2022
-
-
toaster authored
* Warn the user when an incompatible ban.txt is being loaded, and stop early. * Don't inexplicably assign as a boolean, you bafooligan!
7c92a7ef -
toaster authored
Fix an issue where if the last line of an M_StartMessage was the longest, the box width wouldn't account for it.
3ff5e3f8 -
toaster authored
* Fix some bugs. * Reset bannode information properly, fixing being unable to join your own server. * Write to the buffer before saving the kick/ban reason, rather than after. * Improve the print output for the `showbanlist` command. * Includes username. * Includes remaining time as seen by a kicked joiner. * Hides expired bans. * Improve the messages for ban/kick related refused joins. * Replace the Reason with the actual admin-provided reason for refused connection. * Replace the "Server refuses connection" header with "You have been [banned/temporarily kicked] from the server", the previous given Reason. * Fudge the time reported for temporary kicks so that a user is encouraged to return slightly after their tempkick ends, rather than before. * Add an extra newline to the M_StartMessage for being kicked/banned with a reason provided.
3498f1cf -
toaster authored40f7be76
-
- Jun 14, 2022
-
-
toaster authored
Create a single struct for bannednode and bannednodetimelft, and use the matching ban ID inside that struct. While this commit does not increase the visibility of ban reasons, it makes this possible later.
7bc59abc -
toaster authoredcd6b1b2c
-
toaster authored
* Ensure it can compile. * Removing vanilla 2.2 properties that slipped in to previous commits. * Rearranging i_tcp.c to avoid implicit declaration. * Complete rename of `IsNameGood` to `EnsurePlayerNameIsGood`. * Add "BANFORMAT" header, for versioning support. * Add conversion from 1.3-and-earlier format to new system. * Don't ban the entire internet - convert zero-masks to the most specific ones.
8addea0d -
toaster authored
- Save a note of the username, not just the reason. - Allow setting a mask with the `banip` command. - Make ban.txt's formatting a lot more sane. Username and reason are stored in quotes. The mask uses the same formatting as actual CDIR. - Keep track of if we tried to load ban.txt. If it wasn't, then don't save over it with a blank file. - Disallow quotes in player names, as it makes player name detection in console more annoying, and saving username in files scary. # Conflicts: # src/d_clisrv.c # src/d_netcmd.c # src/i_tcp.c
55be7439 -
toaster authored
Length is determined by the "kicktime" cvar, in minutes. By default, this is set to 10, but I'm willing to adjust this. Only applies to manual kicks (in the future, maybe also name filter kicks). The timestamp for the unban time is even saved in ban.txt, so long-term temporary bans are completely possible. (I checked, you can attempt to ban someone for up to 1902 years if you really want to.) # Conflicts: # src/d_clisrv.c # src/d_clisrv.h # src/i_tcp.c
8d05bf66 -
toaster authored
- Properly call D_SaveBan after remote bans. Bans are no longer saved in the ban command and instead wait for the actual kick to process, since before they were split between the two, which is what caused the discrepancy. # Conflicts: # src/d_clisrv.c # src/i_tcp.c
24181ae7 -
toaster authored
Better code cleanliness, also makes it easier to add more data to bans later (such as a timestamp for temporary bans) # Conflicts: # src/i_tcp.c
2f0e1521 -
toaster authored
Needs proper stress testing but seems to work. # Conflicts: # src/i_tcp.c
77e67d86
-