diff options
| author | 2015-03-03 15:45:22 -0500 | |
|---|---|---|
| committer | 2015-03-21 12:53:21 -0400 | |
| commit | 7f051bcc5198c2eb3fff1ca52888bd7c6ec19000 (patch) | |
| tree | cf87fa2bf76fad4e0d314e9efba82b44a4834643 /src/usermanager.cpp | |
| parent | Merge pull request #1002 from SaberUK/insp20+fix-cgiirc-crash (diff) | |
| download | inspircd++-7f051bcc5198c2eb3fff1ca52888bd7c6ec19000.tar.gz inspircd++-7f051bcc5198c2eb3fff1ca52888bd7c6ec19000.tar.bz2 inspircd++-7f051bcc5198c2eb3fff1ca52888bd7c6ec19000.zip | |
Rebuild clone counts on rehash
Diffstat (limited to 'src/usermanager.cpp')
| -rw-r--r-- | src/usermanager.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp index 1918b5c4c..76446c5b5 100644 --- a/src/usermanager.cpp +++ b/src/usermanager.cpp @@ -287,6 +287,22 @@ void UserManager::RemoveCloneCounts(User *user) } } +void UserManager::RehashCloneCounts() +{ + local_clones.clear(); + global_clones.clear(); + + const user_hash& hash = *ServerInstance->Users->clientlist; + for (user_hash::const_iterator i = hash.begin(); i != hash.end(); ++i) + { + User* u = i->second; + + if (IS_LOCAL(u)) + AddLocalClone(u); + AddGlobalClone(u); + } +} + unsigned long UserManager::GlobalCloneCount(User *user) { clonemap::iterator x = global_clones.find(user->GetCIDRMask()); |
