summaryrefslogtreecommitdiff
path: root/modules/socketengines/m_socketengine_select.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-09-09 23:43:11 -0400
committerAdam <Adam@anope.org>2010-09-09 23:43:11 -0400
commit46813ccb8c6ab572b8a9ff0a39afb1d92dc4482b (patch)
tree562da502a102230ce207bbe921fdc978ee71e20c /modules/socketengines/m_socketengine_select.cpp
parentfdd196e50b4616ac377bd0ee0ae5ce6c57b657ee (diff)
Added an asynchronous DNS system and m_dnsbl, which checks clients against DNS blacklists.
Rewrote internal handling of IPs, we now properly support users using IPv6. Fixed a few problems with the UnrealIRCd protocol module.
Diffstat (limited to 'modules/socketengines/m_socketengine_select.cpp')
-rw-r--r--modules/socketengines/m_socketengine_select.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/socketengines/m_socketengine_select.cpp b/modules/socketengines/m_socketengine_select.cpp
index e708693d2..b966820bd 100644
--- a/modules/socketengines/m_socketengine_select.cpp
+++ b/modules/socketengines/m_socketengine_select.cpp
@@ -41,14 +41,20 @@ class SocketEngineSelect : public SocketEngineBase
Sockets.erase(s->GetSock());
}
- void MarkWriteable(Socket *s)
+ void MarkWritable(Socket *s)
{
+ if (s->HasFlag(SF_WRITABLE))
+ return;
FD_SET(s->GetSock(), &WriteFDs);
+ s->SetFlag(SF_WRITABLE);
}
- void ClearWriteable(Socket *s)
+ void ClearWritable(Socket *s)
{
+ if (!s->HasFlag(SF_WRITABLE))
+ return;
FD_CLR(s->GetSock(), &WriteFDs);
+ s->UnsetFlag(SF_WRITABLE);
}
void Process()
@@ -101,7 +107,7 @@ class SocketEngineSelect : public SocketEngineBase
class ModuleSocketEngineSelect : public Module
{
- SocketEngineSelect *engine;
+ SocketEngineSelect engine;
public:
ModuleSocketEngineSelect(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
@@ -110,13 +116,11 @@ class ModuleSocketEngineSelect : public Module
this->SetPermanent(true);
this->SetType(SOCKETENGINE);
- engine = new SocketEngineSelect();
- SocketEngine = engine;
+ SocketEngine = &engine;
}
~ModuleSocketEngineSelect()
{
- delete engine;
SocketEngine = NULL;
}
};