From: brain Date: Thu, 29 Dec 2005 16:33:26 +0000 (+0000) Subject: Added extra checking to socketengine to refuse connections after we reach the max X-Git-Tag: v2.0.23~9377 X-Git-Url: https://git.netwichtig.de/gitweb/?a=commitdiff_plain;h=dc12fcac8757b36b7da88d0a9ff25acc009d539c;p=user%2Fhenk%2Fcode%2Finspircd.git Added extra checking to socketengine to refuse connections after we reach the max git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2697 e03df62e-2008-0410-955e-edbf42e46eb7 --- diff --git a/include/socketengine.h b/include/socketengine.h index ecb8fa96e..caa4dc45b 100644 --- a/include/socketengine.h +++ b/include/socketengine.h @@ -67,6 +67,7 @@ const char X_READBIT = 0x80; class SocketEngine { int EngineHandle; /* Handle to the socket engine if needed */ + int CurrentSetSize; /* Current number of descriptors in the engine */ #ifdef USE_SELECT std::map fds; /* List of file descriptors being monitored */ fd_set wfdset, rfdset; /* Readable and writeable sets for select() */ diff --git a/src/socketengine.cpp b/src/socketengine.cpp index 3e0b3814d..69838ff59 100644 --- a/src/socketengine.cpp +++ b/src/socketengine.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * Inspire is copyright (C) 2002-2005 ChatSpike-Dev. + * Inspire is copyright (C) 2002-2006 ChatSpike-Dev. * E-mail: * * @@ -19,7 +19,6 @@ #include "inspircd.h" #ifdef USE_EPOLL #include -#define EP_DELAY 5 #endif #ifdef USE_KQUEUE #include @@ -67,6 +66,11 @@ bool SocketEngine::AddFd(int fd, bool readable, char type) { if ((fd < 0) || (fd > 65535)) return false; + if (GetRemainingFds() <= 1) + { + log(DEFAULT,"ERROR: System out of file descriptors!"); + return false; + } #ifdef USE_SELECT fds[fd] = fd; #endif