X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocketengines%2Fsocketengine_ports.cpp;h=d94d02664f1b5597d0c2b4b89c9e0f47643054b0;hb=30fc51c6ddca487a1b89da9ab0ab59da003aee36;hp=c304001075d3ad02443aa587cb6bf3f17e5d4680;hpb=034488fc4aca4fb85c923d881f4b95675eba37b6;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socketengines/socketengine_ports.cpp b/src/socketengines/socketengine_ports.cpp index c30400107..d94d02664 100644 --- a/src/socketengines/socketengine_ports.cpp +++ b/src/socketengines/socketengine_ports.cpp @@ -25,11 +25,7 @@ # error You need Solaris 10 or later to make use of this code. #endif -#include -#include -#include #include "inspircd.h" -#include "socketengine.h" #include #include #include @@ -48,17 +44,9 @@ namespace */ void SocketEngine::Init() { - int max = ulimit(4, 0); - if (max > 0) - { - MAX_DESCRIPTORS = max; - } - else - { - ServerInstance->Logs->Log("SOCKET", LOG_DEFAULT, "ERROR: Can't determine maximum number of open sockets!"); - std::cout << "ERROR: Can't determine maximum number of open sockets!" << std::endl; - ServerInstance->QuickExit(EXIT_STATUS_SOCKETENGINE); - } + // MAX_DESCRIPTORS is mainly used for display purposes, no problem if ulimit() fails and returns a negative number + MAX_DESCRIPTORS = ulimit(4, 0); + EngineHandle = port_create(); if (EngineHandle == -1) @@ -95,7 +83,7 @@ static int mask_to_events(int event_mask) bool SocketEngine::AddFd(EventHandler* eh, int event_mask) { int fd = eh->GetFd(); - if ((fd < 0) || (fd > GetMaxFds() - 1)) + if (fd < 0) return false; if (!SocketEngine::AddFdRef(eh)) @@ -119,7 +107,7 @@ void SocketEngine::OnSetEvent(EventHandler* eh, int old_mask, int new_mask) void SocketEngine::DelFd(EventHandler* eh) { int fd = eh->GetFd(); - if ((fd < 0) || (fd > GetMaxFds() - 1)) + if (fd < 0) return; port_dissociate(EngineHandle, PORT_SOURCE_FD, fd); @@ -172,14 +160,14 @@ int SocketEngine::DispatchEvents() if (portev_events & POLLRDNORM) { stats.ReadEvents++; - eh->HandleEvent(EVENT_READ); + eh->OnEventHandlerRead(); if (eh != GetRef(fd)) continue; } if (portev_events & POLLWRNORM) { stats.WriteEvents++; - eh->HandleEvent(EVENT_WRITE); + eh->OnEventHandlerWrite(); } }