diff options
author | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-08-27 01:01:20 +0000 |
---|---|---|
committer | w00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-08-27 01:01:20 +0000 |
commit | 0c9434cde9c972f488abc7a2e72aacdd92f31f8b (patch) | |
tree | 0bca59af1b6822e3614ca403ef1bcc3e46b0c858 | |
parent | 7936e1b8ba27a3275868362fa41ecf1d805a1a1b (diff) |
Add InspIRCd::FindUUID() methods. Currently, these work off an iteration around the whole client list. This sucks, and will be changed to a map the same as FindNick(). Also update FindNick's docs a little out of anal habit: it returns a user, not a nick. :)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7855 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/inspircd.h | 16 | ||||
-rw-r--r-- | src/helperfuncs.cpp | 18 |
2 files changed, 32 insertions, 2 deletions
diff --git a/include/inspircd.h b/include/inspircd.h index 06fdd7124..99b709518 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -399,6 +399,18 @@ class CoreExport InspIRCd : public classbase */ std::string GetUID(); + /** Find a user in the UUID hash + * @param nick The nickname to find + * @return A pointer to the user, or NULL if the user does not exist + */ + userrec *FindUUID(const std::string &); + + /** Find a user in the UUID hash + * @param nick The nickname to find + * @return A pointer to the user, or NULL if the user does not exist + */ + userrec *FindUUID(const char *); + /** Build the ISUPPORT string by triggering all modules On005Numeric events */ void BuildISupport(); @@ -608,13 +620,13 @@ class CoreExport InspIRCd : public classbase */ void WriteOpers(const std::string &text); - /** Find a nickname in the nick hash + /** Find a user in the nick hash * @param nick The nickname to find * @return A pointer to the user, or NULL if the user does not exist */ userrec* FindNick(const std::string &nick); - /** Find a nickname in the nick hash + /** Find a user in the nick hash * @param nick The nickname to find * @return A pointer to the user, or NULL if the user does not exist */ diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index 9363e3376..fae9759d9 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -255,6 +255,24 @@ userrec* InspIRCd::FindNick(const char* nick) return iter->second; } +userrec *InspIRCd::FindUUID(const std::string &uid) +{ + return InspIRCd::FindUID(uid.c_str()); +} + +userrec *InspIRCd::FindUUID(const char *uid) +{ + for (user_hash::const_iterator a = ServerInstance->clientlist->begin(); a != ServerInstance->clientlist->end(); a++) + { + userrec *u = a->second; + + if (strcmp(u->uuid, uid) == 0 + { + return u; + } + } +} + /* find a channel record by channel name and return a pointer to it */ chanrec* InspIRCd::FindChan(const char* chan) { |