summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-05-01 22:11:29 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-05-01 22:11:29 +0000
commitb8b1fccfad11b6eee9298cef6c81607da8d0f58c (patch)
treecdb7ee6081f6ece1c428441711db46a59282d0aa
parentb7b2eeaeb9e3168698e9d17e73bcc79022f987a2 (diff)
Added FindDescriptor
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1273 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/modules.h4
-rw-r--r--src/modules.cpp6
2 files changed, 10 insertions, 0 deletions
diff --git a/include/modules.h b/include/modules.h
index 757c8c745..fc6464717 100644
--- a/include/modules.h
+++ b/include/modules.h
@@ -784,6 +784,10 @@ class Server : public classbase
* This function will return NULL if the nick does not exist.
*/
virtual userrec* FindNick(std::string nick);
+ /** Attempts to look up a nick using the file descriptor associated with that nick.
+ * This function will return NULL if the file descriptor is not associated with a valid user.
+ */
+ virtual userrec* FindDescriptor(int socket);
/** Attempts to look up a channel and return a pointer to it.
* This function will return NULL if the channel does not exist.
*/
diff --git a/src/modules.cpp b/src/modules.cpp
index 8b7f27731..95e2aa77c 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -107,6 +107,7 @@ extern serverrec* me[32];
extern FILE *log_file;
+extern userrec* fd_ref_table[65536];
namespace nspace
{
@@ -589,6 +590,11 @@ userrec* Server::FindNick(std::string nick)
return Find(nick);
}
+userrec* Server::FindDescriptor(int socket)
+{
+ return (socket < 65536 ? fd_ref_table[socket] : NULL);
+}
+
chanrec* Server::FindChannel(std::string channel)
{
return FindChan(channel.c_str());