summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-09-07 18:31:21 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2008-09-07 18:31:21 +0000
commit61fed23a3e9a62f19c2f88208585b31356c986ef (patch)
tree1b87a0cade91abc4347785879b8506276732f702 /src
parentf7bfee1e9210b83d0cb544ce14aa52f8637bdf21 (diff)
Start moving IO hooking from being bufferedsocket based to residing in EventHandler, this will pave the way for a generic listener type, and also simplifies a lot of code.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10447 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/configreader.cpp31
-rw-r--r--src/socketengine.cpp21
2 files changed, 21 insertions, 31 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 1e8e0a7e9..cce362ed2 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -65,37 +65,6 @@ void ServerConfig::ClearStack()
include_stack.clear();
}
-Module* ServerConfig::GetIOHook(BufferedSocket* is)
-{
- std::map<BufferedSocket*,Module*>::iterator x = SocketIOHookModule.find(is);
- return (x != SocketIOHookModule.end() ? x->second : NULL);
-}
-
-bool ServerConfig::AddIOHook(Module* iomod, BufferedSocket* is)
-{
- if (!GetIOHook(is))
- {
- SocketIOHookModule[is] = iomod;
- is->IsIOHooked = true;
- return true;
- }
- else
- {
- throw ModuleException("BufferedSocket derived class already hooked by another module");
- }
-}
-
-bool ServerConfig::DelIOHook(BufferedSocket* is)
-{
- std::map<BufferedSocket*,Module*>::iterator x = SocketIOHookModule.find(is);
- if (x != SocketIOHookModule.end())
- {
- SocketIOHookModule.erase(x);
- return true;
- }
- return false;
-}
-
void ServerConfig::Update005()
{
std::stringstream out(data005);
diff --git a/src/socketengine.cpp b/src/socketengine.cpp
index c7188b55a..74f8c1861 100644
--- a/src/socketengine.cpp
+++ b/src/socketengine.cpp
@@ -41,6 +41,27 @@
#include "inspircd.h"
#include "socketengine.h"
+bool EventHandler::AddIOHook(Module *IOHooker)
+{
+ if (this->IOHook)
+ return false;
+
+ this->IOHook = IOHooker;
+}
+
+bool EventHandler::DelIOHook()
+{
+ if (!this->IOHook)
+ return false
+
+ this->IOHook = false;
+}
+
+Module *EventHandler::GetIOHook()
+{
+ return this->IOHook;
+}
+
int EventHandler::GetFd()
{
return this->fd;