mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 18:18:18 +00:00
prevent quick join/quit flood. #1070
This commit is contained in:
parent
313a0949b0
commit
ea2898e94a
|
@ -188,6 +188,7 @@ public:
|
|||
|
||||
// Needed for GotProblems in NetClient
|
||||
int64 LastRecvTime() const { return m_LastRecvTime; }
|
||||
int64 ConnectTime() const { return m_LastUpdateTime; }
|
||||
|
||||
int AckSequence() const { return m_Ack; }
|
||||
};
|
||||
|
|
|
@ -69,11 +69,17 @@ int CNetServer::Drop(int ClientID, const char *pReason)
|
|||
|
||||
int CNetServer::Update()
|
||||
{
|
||||
int64 Now = time_get();
|
||||
for(int i = 0; i < MaxClients(); i++)
|
||||
{
|
||||
m_aSlots[i].m_Connection.Update();
|
||||
if(m_aSlots[i].m_Connection.State() == NET_CONNSTATE_ERROR)
|
||||
Drop(i, m_aSlots[i].m_Connection.ErrorString());
|
||||
{
|
||||
if(Now - m_aSlots[i].m_Connection.ConnectTime() < time_freq()/2 && NetBan())
|
||||
NetBan()->BanAddr(ClientAddr(i), 60, "Stressing network");
|
||||
else
|
||||
Drop(i, m_aSlots[i].m_Connection.ErrorString());
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue