X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocketengines%2Fsocketengine_poll.cpp;h=5c361a0cbded453bd9a913f957f4ff31ff02ad73;hb=8540f6af60f652f52b9c6b47109205da6667d032;hp=6a385c8d887fea1db5789c404b809c904af3facf;hpb=336e30f61f9cb04620f5be46189753636f4f9d49;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socketengines/socketengine_poll.cpp b/src/socketengines/socketengine_poll.cpp index 6a385c8d8..5c361a0cb 100644 --- a/src/socketengines/socketengine_poll.cpp +++ b/src/socketengines/socketengine_poll.cpp @@ -76,15 +76,28 @@ public: #endif -#include -#ifdef __FreeBSD__ +#ifdef BSD #include +#else + #include #endif PollEngine::PollEngine() { CurrentSetSize = 0; -#ifndef __FreeBSD__ +#ifdef BSD + int mib[2]; + size_t len; + + mib[0] = CTL_KERN; +#ifdef KERN_MAXFILESPERPROC + mib[1] = KERN_MAXFILESPERPROC; +#else + mib[1] = KERN_MAXFILES; +#endif + len = sizeof(MAX_DESCRIPTORS); + sysctl(mib, 2, &MAX_DESCRIPTORS, &len, NULL, 0); +#else int max = ulimit(4, 0); if (max > 0) { @@ -96,14 +109,6 @@ PollEngine::PollEngine() std::cout << "ERROR: Can't determine maximum number of open sockets: " << strerror(errno) << std::endl; ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE); } -#else - int mib[2]; - size_t len; - - mib[0] = CTL_KERN; - mib[1] = KERN_MAXFILES; - len = sizeof(MAX_DESCRIPTORS); - sysctl(mib, 2, &MAX_DESCRIPTORS, &len, NULL, 0); #endif ref = new EventHandler* [GetMaxFds()];