summaryrefslogtreecommitdiff
path: root/src/usermanager.cpp
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-01-13 03:37:25 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-01-13 03:37:25 +0000
commit2192a9f58aae466a42d60279fb34ee3c5d2950a1 (patch)
tree7c4d2c1047154f7cab1744af9564570fc7045104 /src/usermanager.cpp
parentf56b7d5e861648e5ddc1b766e40779082ebaeff1 (diff)
First UserManager overhaul: Move clone counts out of InspIRCd & User.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8705 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/usermanager.cpp')
-rw-r--r--src/usermanager.cpp58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/usermanager.cpp b/src/usermanager.cpp
index 3bf17cda2..2bb4ee685 100644
--- a/src/usermanager.cpp
+++ b/src/usermanager.cpp
@@ -15,3 +15,61 @@
#include "inspircd.h"
+void UserManager::AddLocalClone(User *user)
+{
+ clonemap::iterator x = local_clones.find(user->GetIPString());
+ if (x != local_clones.end())
+ x->second++;
+ else
+ local_clones[user->GetIPString()] = 1;
+}
+
+void UserManager::AddGlobalClone(User *user)
+{
+ clonemap::iterator y = global_clones.find(user->GetIPString());
+ if (y != global_clones.end())
+ y->second++;
+ else
+ global_clones[user->GetIPString()] = 1;
+}
+
+void UserManager::RemoveCloneCounts(User *user)
+{
+ clonemap::iterator x = local_clones.find(user->GetIPString());
+ if (x != local_clones.end())
+ {
+ x->second--;
+ if (!x->second)
+ {
+ local_clones.erase(x);
+ }
+ }
+
+ clonemap::iterator y = global_clones.find(user->GetIPString());
+ if (y != global_clones.end())
+ {
+ y->second--;
+ if (!y->second)
+ {
+ global_clones.erase(y);
+ }
+ }
+}
+
+unsigned long UserManager::GlobalCloneCount(User *user)
+{
+ clonemap::iterator x = global_clones.find(user->GetIPString());
+ if (x != global_clones.end())
+ return x->second;
+ else
+ return 0;
+}
+
+unsigned long UserManager::LocalCloneCount(User *user)
+{
+ clonemap::iterator x = local_clones.find(user->GetIPString());
+ if (x != local_clones.end())
+ return x->second;
+ else
+ return 0;
+}