X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocketengine_select.cpp;h=b87d2769d6dd969b275995b8758ac1a8388e9ed7;hb=b7e299c2e10d915d5e59df4cb3f54951c8daa999;hp=afa42c7bc78a18175af219a608cc05f169d26c42;hpb=c662a37341e9787ca8c5e553b3d641a19e3b81c8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socketengine_select.cpp b/src/socketengine_select.cpp index afa42c7bc..b87d2769d 100644 --- a/src/socketengine_select.cpp +++ b/src/socketengine_select.cpp @@ -18,7 +18,6 @@ SelectEngine::SelectEngine(InspIRCd* Instance) : SocketEngine(Instance) { - ServerInstance->Log(DEBUG,"SelectEngine::SelectEngine()"); EngineHandle = 0; CurrentSetSize = 0; memset(writeable, 0, sizeof(writeable)); @@ -26,22 +25,16 @@ SelectEngine::SelectEngine(InspIRCd* Instance) : SocketEngine(Instance) SelectEngine::~SelectEngine() { - ServerInstance->Log(DEBUG,"SelectEngine::~SelectEngine()"); } bool SelectEngine::AddFd(EventHandler* eh) { int fd = eh->GetFd(); if ((fd < 0) || (fd > MAX_DESCRIPTORS)) - { - ServerInstance->Log(DEBUG,"ERROR: FD of %d added above max of %d",fd,MAX_DESCRIPTORS); return false; - } + if (GetRemainingFds() <= 1) - { - ServerInstance->Log(DEBUG,"ERROR: System out of file descriptors!"); return false; - } fds[fd] = fd; @@ -49,9 +42,10 @@ bool SelectEngine::AddFd(EventHandler* eh) return false; ref[fd] = eh; - ServerInstance->Log(DEBUG,"Add socket %d",fd); CurrentSetSize++; + + ServerInstance->Log(DEBUG,"New file descriptor: %d", fd); return true; } @@ -73,6 +67,8 @@ bool SelectEngine::DelFd(EventHandler* eh, bool force) CurrentSetSize--; ref[fd] = NULL; + + ServerInstance->Log(DEBUG,"Remove file descriptor: %d", fd); return true; } @@ -148,10 +144,9 @@ int SelectEngine::DispatchEvents() { if (writeable[ev[i]->GetFd()]) { + writeable[ev[i]->GetFd()] = false; if (ev[i]) ev[i]->HandleEvent(EVENT_WRITE); - writeable[ev[i]->GetFd()] = false; - } else {