summaryrefslogtreecommitdiff
path: root/modules/socketengines/m_socketengine_epoll.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/socketengines/m_socketengine_epoll.cpp')
-rw-r--r--modules/socketengines/m_socketengine_epoll.cpp34
1 files changed, 11 insertions, 23 deletions
diff --git a/modules/socketengines/m_socketengine_epoll.cpp b/modules/socketengines/m_socketengine_epoll.cpp
index c5e152af3..b65656554 100644
--- a/modules/socketengines/m_socketengine_epoll.cpp
+++ b/modules/socketengines/m_socketengine_epoll.cpp
@@ -17,7 +17,7 @@ class SocketEngineEPoll : public SocketEngineBase
{
SocketCount = 0;
max = ulimit(4, 0);
-
+
if (max <= 0)
{
Alog() << "Can't determine maximum number of open sockets";
@@ -29,7 +29,7 @@ class SocketEngineEPoll : public SocketEngineBase
if (EngineHandle == -1)
{
Alog() << "Could not initialize epoll socket engine: " << strerror(errno);
- throw ModuleException("Could not initialize epoll socket engine: " + std::string(strerror(errno)));
+ throw ModuleException(Anope::string("Could not initialize epoll socket engine: ") + strerror(errno));
}
events = new epoll_event[max];
@@ -44,7 +44,7 @@ class SocketEngineEPoll : public SocketEngineBase
void AddSocket(Socket *s)
{
epoll_event ev;
-
+
memset(&ev, 0, sizeof(ev));
ev.events = EPOLLIN | EPOLLOUT;
@@ -82,7 +82,7 @@ class SocketEngineEPoll : public SocketEngineBase
void Process()
{
- int total = epoll_wait(EngineHandle, events, max - 1, (Config.ReadTimeout * 1000));
+ int total = epoll_wait(EngineHandle, events, max - 1, Config.ReadTimeout * 1000);
if (total == -1)
{
@@ -102,32 +102,20 @@ class SocketEngineEPoll : public SocketEngineBase
continue;
}
- if (ev->events & EPOLLIN)
- {
- if (!s->ProcessRead())
- {
- s->SetFlag(SF_DEAD);
- }
- }
+ if ((ev->events & EPOLLIN) && !s->ProcessRead())
+ s->SetFlag(SF_DEAD);
- if (ev->events & EPOLLOUT)
- {
- if (!s->ProcessWrite())
- {
- s->SetFlag(SF_DEAD);
- }
- }
+ if ((ev->events & EPOLLOUT) && !s->ProcessWrite())
+ s->SetFlag(SF_DEAD);
}
- for (std::map<int, Socket *>::iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end;)
+ for (std::map<int, Socket *>::iterator it = Sockets.begin(), it_end = Sockets.end(); it != it_end; )
{
Socket *s = it->second;
++it;
if (s->HasFlag(SF_DEAD))
- {
delete s;
- }
}
}
};
@@ -137,8 +125,9 @@ class ModuleSocketEngineEPoll : public Module
SocketEngineEPoll *engine;
public:
- ModuleSocketEngineEPoll(const std::string &modname, const std::string &creator) : Module(modname, creator)
+ ModuleSocketEngineEPoll(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator)
{
+ this->SetAuthor("Anope");
this->SetPermanent(true);
this->SetType(SOCKETENGINE);
@@ -154,4 +143,3 @@ class ModuleSocketEngineEPoll : public Module
};
MODULE_INIT(ModuleSocketEngineEPoll)
-