continue;
l = strlen(ip);
- for(j = 0; j < l; ++j)
- if(strstrofs("0123456789.", substring(ip, j, 1), 0) == -1)
- {
- print("Invalid character ", substring(ip, j, 1), " in IP address ", ip, ". Skipping this ban.\n");
- goto skip;
- }
+ if(l != 44) // length 44 is a cryptographic ID
+ {
+ for(j = 0; j < l; ++j)
+ if(strstrofs("0123456789.", substring(ip, j, 1), 0) == -1)
+ {
+ print("Invalid character ", substring(ip, j, 1), " in IP address ", ip, ". Skipping this ban.\n");
+ goto skip;
+ }
+ }
if(cvar("g_ban_sync_trusted_servers_verify"))
if((strstrofs(strcat(";", OnlineBanList_Servers, ";"), strcat(";", serverip, ";"), 0) == -1))
string ban_ip2;
string ban_ip3;
string ban_ip4;
-#ifdef UID
-string ban_uid;
-#endif
+string ban_idfp;
void Ban_SaveBans()
{
float i1, i2, i3, i4;
string s;
- s = client.netaddress;
-
- i1 = strstrofs(s, ".", 0);
- if(i1 < 0)
- return FALSE;
- i2 = strstrofs(s, ".", i1 + 1);
- if(i2 < 0)
- return FALSE;
- i3 = strstrofs(s, ".", i2 + 1);
- if(i3 < 0)
- return FALSE;
- i4 = strstrofs(s, ".", i3 + 1);
- if(i4 >= 0)
- return FALSE;
-
- ban_ip1 = substring(s, 0, i1);
- ban_ip2 = substring(s, 0, i2);
- ban_ip3 = substring(s, 0, i3);
- ban_ip4 = strcat1(s);
-#ifdef UID
- ban_uid = client.uid;
-#endif
+ if(client.crypto_keyfp)
+ ban_idfp = client.crypto_idfp;
+ else
+ ban_idfp = string_null;
+
+ if(cvar("g_banned_list_idmode") && ban_idfp)
+ {
+ ban_ip1 = ban_ip2 = ban_ip3 = ban_ip4 = ban_idfp;
+ }
+ else
+ {
+ s = client.netaddress;
+
+ i1 = strstrofs(s, ".", 0);
+ if(i1 < 0)
+ return FALSE;
+ i2 = strstrofs(s, ".", i1 + 1);
+ if(i2 < 0)
+ return FALSE;
+ i3 = strstrofs(s, ".", i2 + 1);
+ if(i3 < 0)
+ return FALSE;
+ i4 = strstrofs(s, ".", i3 + 1);
+ if(i4 >= 0)
+ return FALSE;
+
+ ban_ip1 = substring(s, 0, i1);
+ ban_ip2 = substring(s, 0, i2);
+ ban_ip3 = substring(s, 0, i3);
+ ban_ip4 = strcat1(s);
+ }
return TRUE;
}
if(ban_ip2 == s) return TRUE;
if(ban_ip3 == s) return TRUE;
if(ban_ip4 == s) return TRUE;
-#ifdef UID
- if(ban_uid == s) return TRUE;
-#endif
+ if(ban_idfp == s) return TRUE;
}
return FALSE;
}
default:
Ban_Insert(ban_ip4, bantime, reason, 1);
break;
-#ifdef UID
case 0:
- Ban_Insert(ban_uid, bantime, reason, 1);
+ Ban_Insert(ban_idfp, bantime, reason, 1);
break;
-#endif
}
/*
* not needed, as we enforce the ban in Ban_Insert anyway