keep lifebans at the tail of bans list. Fixes #131

This commit is contained in:
eeeee 2011-12-14 13:47:23 +01:00
parent f14f821120
commit 8f5f45c18f

View file

@ -206,14 +206,19 @@ int CNetServer::BanAdd(NETADDR Addr, int Seconds, const char *pReason)
CBan *pInsertAfter = m_BanPool_FirstUsed;
MACRO_LIST_FIND(pInsertAfter, m_pNext, Stamp < pInsertAfter->m_Info.m_Expires);
if(pInsertAfter)
if(pInsertAfter && Stamp != -1)
pInsertAfter = pInsertAfter->m_pPrev;
else
{
// add to last
pInsertAfter = m_BanPool_FirstUsed;
while(pInsertAfter->m_pNext)
pInsertAfter = pInsertAfter->m_pNext;
if (m_BanPool_FirstUsed->m_Info.m_Expires == -1)
pInsertAfter = 0;
else
{
pInsertAfter = m_BanPool_FirstUsed;
while(pInsertAfter->m_pNext && pInsertAfter->m_pNext->m_Info.m_Expires != -1)
pInsertAfter = pInsertAfter->m_pNext;
}
}
if(pInsertAfter)