Skip to content
Snippets Groups Projects
Commit 092ae9bf authored by Hanicef's avatar Hanicef
Browse files

Allow ban masks to be specified for banip

parent 3176abe2
Branches
No related tags found
No related merge requests found
...@@ -274,7 +274,9 @@ void Command_BanIP(void) ...@@ -274,7 +274,9 @@ void Command_BanIP(void)
if (server) // Only the server can use this, otherwise does nothing. if (server) // Only the server can use this, otherwise does nothing.
{ {
char *addrbuf = NULL;
const char *address = (COM_Argv(1)); const char *address = (COM_Argv(1));
const char *mask = strchr(address, '/');
const char *reason; const char *reason;
if (COM_Argc() == 2) if (COM_Argc() == 2)
...@@ -282,8 +284,16 @@ void Command_BanIP(void) ...@@ -282,8 +284,16 @@ void Command_BanIP(void)
else else
reason = COM_Argv(2); reason = COM_Argv(2);
if (mask != NULL)
{
addrbuf = Z_Malloc(mask - address + 1, PU_STATIC, NULL);
memcpy(addrbuf, address, mask - address);
addrbuf[mask - address] = '\0';
address = addrbuf;
mask++;
}
if (I_SetBanAddress && I_SetBanAddress(address, NULL)) if (I_SetBanAddress && I_SetBanAddress(address, mask))
{ {
if (reason) if (reason)
CONS_Printf("Banned IP address %s for: %s\n", address, reason); CONS_Printf("Banned IP address %s for: %s\n", address, reason);
...@@ -295,8 +305,9 @@ void Command_BanIP(void) ...@@ -295,8 +305,9 @@ void Command_BanIP(void)
} }
else else
{ {
return; CONS_Printf("Unable to apply ban: address in malformed or invalid, or too many bans are applied\n");
} }
Z_Free(addrbuf);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment