mirror of
https://github.com/nzp-team/fteqw.git
synced 2025-02-17 01:11:18 +00:00
Fix the 'removeip' command to be less buggy.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4592 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
026939f58d
commit
25bf5b55b2
1 changed files with 26 additions and 10 deletions
|
@ -1024,7 +1024,10 @@ void SV_Unban_f (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Q_strcasecmp(Cmd_Argv(1), "all"))
|
if (!Q_strcasecmp(Cmd_Argv(1), "all"))
|
||||||
|
{
|
||||||
|
Con_Printf("removing all banned addresses\n");
|
||||||
all = true;
|
all = true;
|
||||||
|
}
|
||||||
else if (!NET_StringToAdrMasked(Cmd_Argv(1), &unbanadr, &unbanmask))
|
else if (!NET_StringToAdrMasked(Cmd_Argv(1), &unbanadr, &unbanmask))
|
||||||
{
|
{
|
||||||
Con_Printf("invalid address or mask\n");
|
Con_Printf("invalid address or mask\n");
|
||||||
|
@ -1041,20 +1044,23 @@ void SV_Unban_f (void)
|
||||||
Z_Free(nb);
|
Z_Free(nb);
|
||||||
|
|
||||||
if (!all)
|
if (!all)
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
link = &(*link)->next;
|
link = &(*link)->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!all)
|
||||||
|
Con_Printf("address was not banned\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void SV_Unfilter_f (void)
|
void SV_Unfilter_f (void)
|
||||||
{
|
{
|
||||||
qboolean all = false;
|
qboolean all = false;
|
||||||
bannedips_t *nb = svs.bannedips;
|
bannedips_t **link;
|
||||||
bannedips_t *nbnext;
|
bannedips_t *nb;
|
||||||
netadr_t unbanadr = {0};
|
netadr_t unbanadr = {0};
|
||||||
netadr_t unbanmask = {0};
|
netadr_t unbanmask = {0};
|
||||||
char adr[MAX_ADR_SIZE];
|
char adr[MAX_ADR_SIZE];
|
||||||
|
@ -1066,28 +1072,36 @@ void SV_Unfilter_f (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Q_strcasecmp(Cmd_Argv(1), "all"))
|
if (!Q_strcasecmp(Cmd_Argv(1), "all"))
|
||||||
|
{
|
||||||
|
Con_Printf("removing all filtered addresses\n");
|
||||||
all = true;
|
all = true;
|
||||||
|
}
|
||||||
else if (!NET_StringToAdrMasked(Cmd_Argv(1), &unbanadr, &unbanmask))
|
else if (!NET_StringToAdrMasked(Cmd_Argv(1), &unbanadr, &unbanmask))
|
||||||
{
|
{
|
||||||
Con_Printf("invalid address or mask\n");
|
Con_Printf("invalid address or mask\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (nb)
|
for (link = &svs.bannedips ; (nb = *link) ; )
|
||||||
{
|
{
|
||||||
nbnext = nb->next;
|
|
||||||
if (all || (NET_CompareAdr(&nb->adr, &unbanadr) && NET_CompareAdr(&nb->adrmask, &unbanmask)))
|
if (all || (NET_CompareAdr(&nb->adr, &unbanadr) && NET_CompareAdr(&nb->adrmask, &unbanmask)))
|
||||||
{
|
{
|
||||||
if (!all)
|
if (!all)
|
||||||
Con_Printf("unfiltered %s\n", NET_AdrToStringMasked(adr, sizeof(adr), &nb->adr, &nb->adrmask));
|
Con_Printf("unfiltered %s\n", NET_AdrToStringMasked(adr, sizeof(adr), &nb->adr, &nb->adrmask));
|
||||||
if (svs.bannedips == nb)
|
*link = nb->next;
|
||||||
svs.bannedips = nbnext;
|
|
||||||
Z_Free(nb);
|
Z_Free(nb);
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nb = nbnext;
|
if (!all)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
link = &(*link)->next;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!all)
|
||||||
|
Con_Printf("address was not filtered\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void SV_WriteIP_f (void)
|
void SV_WriteIP_f (void)
|
||||||
|
@ -1114,6 +1128,8 @@ void SV_WriteIP_f (void)
|
||||||
{
|
{
|
||||||
if (bi->type == BAN_BAN)
|
if (bi->type == BAN_BAN)
|
||||||
s = "banip";
|
s = "banip";
|
||||||
|
else if (bi->type == BAN_PERMIT)
|
||||||
|
s = "allowip";
|
||||||
else
|
else
|
||||||
s = "addip";
|
s = "addip";
|
||||||
if (bi->reason[0])
|
if (bi->reason[0])
|
||||||
|
|
Loading…
Reference in a new issue