diff options
author | Adam <Adam@anope.org> | 2010-09-09 23:43:11 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-09-09 23:43:11 -0400 |
commit | 46813ccb8c6ab572b8a9ff0a39afb1d92dc4482b (patch) | |
tree | 562da502a102230ce207bbe921fdc978ee71e20c /modules/socketengines/m_socketengine_select.cpp | |
parent | fdd196e50b4616ac377bd0ee0ae5ce6c57b657ee (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.cpp | 16 |
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; } }; |