]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/bancache.cpp
Argh, i give up
[user/henk/code/inspircd.git] / src / bancache.cpp
index fe23fd0b7e1dc92091ab50f10f6715db387ff3b1..bfa1bde118c0b309117ce5ec8e07bcd147d7c2af 100644 (file)
@@ -56,11 +56,33 @@ bool BanCacheManager::RemoveHit(BanCacheHit *b)
        }
        else
        {
-               this->BanHash->erase(b->IP);
+               this->BanHash->erase(i);
        }
 
        delete b;
        return true;
 }
 
+void BanCacheManager::RehashCache()
+{
+       BanCacheHash* NewHash = new BanCacheHash();
+
+       BanCacheHash::iterator safei;
+       for (BanCacheHash::iterator n = BanHash->begin(); n != BanHash->end(); )
+       {
+               safei = n;
+               safei++;
+
+               /* Safe to delete items here through iterator 'n' */
+
+               /* Actually inserts a std::pair */
+               NewHash->insert(*n);
 
+               /* End of safe section */
+
+               n = safei;
+       }
+
+       delete BanHash;
+       BanHash = NewHash;
+}