]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/ipban.qc
Transifex autosync
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / ipban.qc
index 7b1f69384461b5d6f3c95e2e8c8054e24562279c..4fbef25ef8715bafb3ab93e721cdc49f30d6804e 100644 (file)
@@ -1,12 +1,11 @@
 #include "ipban.qh"
 
-#include <server/defs.qh>
-#include <server/miscfunctions.qh>
-#include "autocvars.qh"
-#include "command/banning.qh"
-#include "defs.qh"
-#include "../common/constants.qh"
-#include "../common/util.qh"
+#include <common/constants.qh>
+#include <common/stats.qh>
+#include <common/util.qh>
+#include <common/weapons/_all.qh>
+#include <server/command/banning.qh>
+#include <server/main.qh>
 
 /*
  * Protocol of online ban list:
@@ -202,12 +201,21 @@ void OnlineBanList_Think(entity this)
        float i, n;
 
        if(autocvar_g_ban_sync_uri == "")
-               goto killme;
+       {
+               delete(this);
+               return;
+       }
        if(autocvar_g_ban_sync_interval == 0) // < 0 is okay, it means "sync on level start only"
-               goto killme;
+       {
+               delete(this);
+               return;
+       }
        argc = tokenize_console(autocvar_g_ban_sync_trusted_servers);
        if(argc == 0)
-               goto killme;
+       {
+               delete(this);
+               return;
+       }
 
        string s = argv(0); for(i = 1; i < argc; ++i) s = strcat(s, ";", argv(i));
        strcpy(OnlineBanList_Servers, s);
@@ -231,14 +239,13 @@ void OnlineBanList_Think(entity this)
                        uri_get(strcat(argv(i), "?", uri), URI_GET_IPBAN + i); // 1000 = "banlist" callback target
        }
 
-       if(autocvar_g_ban_sync_interval > 0)
-               this.nextthink = time + max(60, autocvar_g_ban_sync_interval * 60);
-       else
-               goto killme;
-       return;
+       if(autocvar_g_ban_sync_interval <= 0)
+       {
+               delete(this);
+               return;
+       }
 
-LABEL(killme)
-       delete(this);
+       this.nextthink = time + max(60, autocvar_g_ban_sync_interval * 60);
 }
 
 const float BAN_MAX = 256;
@@ -372,7 +379,7 @@ float Ban_GetClientIP(entity client)
        ban_ip1 = substring(s, 0, i1); // 8
        ban_ip2 = substring(s, 0, i2); // 16
        ban_ip3 = substring(s, 0, i3); // 24
-       ban_ip4 = strcat1(s); // 32
+       ban_ip4 = strcat(s); // 32
        return true;
 
 LABEL(ipv6)
@@ -445,9 +452,16 @@ bool Ban_MaybeEnforceBan(entity client)
 {
        if (Ban_IsClientBanned(client, -1))
        {
-               string s = sprintf("^1NOTE:^7 banned client %s just tried to enter\n", client.netaddress);
+               if (!client.crypto_idfp)
+                       LOG_INFOF("^1NOTE:^7 banned client %s just tried to enter\n",
+                               client.netaddress);
+               else
+                       LOG_INFOF("^1NOTE:^7 banned client %s (%s) just tried to enter\n",
+                               client.netaddress, client.crypto_idfp);
+
+               if(autocvar_g_ban_telluser)
+                       sprint(client, "You are banned from this server.\n");
                dropclient(client);
-               bprint(s);
                return true;
        }
        return false;
@@ -479,7 +493,7 @@ string Ban_Enforce(float j, string reason)
                                        reason = strcat(reason, ", ");
                                reason = strcat(reason, it.netname);
                        }
-                       s = strcat(s, "^1NOTE:^7 banned client ", it.netaddress, "^7 has to go\n");
+                       s = strcat(s, "^1NOTE:^7 banned client ", it.netname, "^7 has to go\n");
                        dropclient(it);
                }
        });
@@ -537,7 +551,7 @@ float Ban_Insert(string ip, float bantime, string reason, float dosync)
                        }
                }
        }
-       // if we replace someone, will we be banned longer than him (so long-term
+       // if we replace someone, will we be banned longer than them (so long-term
        // bans never get overridden by short-term bans)
        if(i < ban_count)
        if(ban_expire[i] > time + bantime)
@@ -579,21 +593,21 @@ void Ban_KickBanClient(entity client, float bantime, float masksize, string reas
        switch(masksize)
        {
                case 1:
-                       ip = strcat1(ban_ip1);
+                       ip = strcat(ban_ip1);
                        break;
                case 2:
-                       ip = strcat1(ban_ip2);
+                       ip = strcat(ban_ip2);
                        break;
                case 3:
-                       ip = strcat1(ban_ip3);
+                       ip = strcat(ban_ip3);
                        break;
                case 4:
                default:
-                       ip = strcat1(ban_ip4);
+                       ip = strcat(ban_ip4);
                        break;
        }
        if(ban_idfp)
-               id = strcat1(ban_idfp);
+               id = strcat(ban_idfp);
        else
                id = string_null;