DEADSOFTWARE

net: kick clients if they take too long to auth
[d2df-sdl.git] / src / game / g_netmsg.pas
index 84dbeaa360d7b89dcf8babfa9fb8bdeba02131d2..5b92f2fc1e6d2d48db394bbf9881d1b60c73b8c4 100644 (file)
@@ -435,6 +435,13 @@ begin
       Exit;
     end;
 
+  if (C^.Player <> 0) then
+  begin
+    // already received info
+    g_Net_Penalize(C, 'client info spam');
+    Exit;
+  end;
+
   Color.R := R;
   Color.B := B;
   Color.G := G;
@@ -448,6 +455,7 @@ begin
 
   C^.Player := PID;
   C^.WaitForFirstSpawn := false;
+  C^.AuthTime := 0;
 
   g_Console_Add(Format(_lc[I_PLAYER_JOIN], [PName]), True);
   e_WriteLog('NET: Client ' + PName + ' [' + IntToStr(C^.ID) +