diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-01-13 03:37:25 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-01-13 03:37:25 +0000 |
commit | 2192a9f58aae466a42d60279fb34ee3c5d2950a1 (patch) | |
tree | 7c4d2c1047154f7cab1744af9564570fc7045104 /include/usermanager.h | |
parent | f56b7d5e861648e5ddc1b766e40779082ebaeff1 (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 'include/usermanager.h')
-rw-r--r-- | include/usermanager.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/usermanager.h b/include/usermanager.h index f8337ff8c..5ca6401bb 100644 --- a/include/usermanager.h +++ b/include/usermanager.h @@ -14,15 +14,61 @@ #ifndef __USERMANAGER_H #define __USERMANAGER_H +/** A list of ip addresses cross referenced against clone counts */ +typedef std::map<irc::string, unsigned int> clonemap; + class CoreExport UserManager : public classbase { private: InspIRCd *ServerInstance; + + /** Map of local ip addresses for clone counting + */ + clonemap local_clones; public: UserManager(InspIRCd *Instance) { ServerInstance = Instance; } + + /** Map of global ip addresses for clone counting + * XXX - this should be private, but m_clones depends on it currently. + */ + clonemap global_clones; + + /** Add a user to the local clone map + * @param user The user to add + */ + void AddLocalClone(User *user); + + /** Add a user to the global clone map + * @param user The user to add + */ + void AddGlobalClone(User *user); + + /** Remove all clone counts from the user, you should + * use this if you change the user's IP address + * after they have registered. + * @param user The user to remove + */ + void RemoveCloneCounts(User *user); + + /** Return the number of global clones of this user + * @param user The user to get a count for + * @return The global clone count of this user + */ + unsigned long GlobalCloneCount(User *user); + + /** Return the number of local clones of this user + * @param user The user to get a count for + * @return The local clone count of this user + */ + unsigned long LocalCloneCount(User *user); + + + + + void RemoveCloneCounts(); }; #endif |