X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocketengine_select.cpp;h=ef5f2071f82aa2853f9cab99e4435daf36a23db0;hb=bfdf503e5204ba17479084e688a3605dbc9007a2;hp=2be16b282d01ff9f742fd11d897782f86eb08fca;hpb=1f8c12807a3b31b6e1c3fe2c5e2394acdf9ebb5a;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socketengine_select.cpp b/src/socketengine_select.cpp index 2be16b282..ef5f2071f 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; } @@ -60,7 +54,7 @@ void SelectEngine::WantWrite(EventHandler* eh) writeable[eh->GetFd()] = true; } -bool SelectEngine::DelFd(EventHandler* eh) +bool SelectEngine::DelFd(EventHandler* eh, bool force) { int fd = eh->GetFd(); @@ -73,6 +67,8 @@ bool SelectEngine::DelFd(EventHandler* eh) CurrentSetSize--; ref[fd] = NULL; + + ServerInstance->Log(DEBUG,"Remove file descriptor: %d", fd); return true; } @@ -151,7 +147,7 @@ int SelectEngine::DispatchEvents() if (ev[i]) ev[i]->HandleEvent(EVENT_WRITE); writeable[ev[i]->GetFd()] = false; - + } else {