git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2697
e03df62e-2008-0410-955e-
edbf42e46eb7
class SocketEngine {
int EngineHandle; /* Handle to the socket engine if needed */
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<int,int> fds; /* List of file descriptors being monitored */
fd_set wfdset, rfdset; /* Readable and writeable sets for select() */
#ifdef USE_SELECT
std::map<int,int> fds; /* List of file descriptors being monitored */
fd_set wfdset, rfdset; /* Readable and writeable sets for select() */
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ * Inspire is copyright (C) 2002-2006 ChatSpike-Dev.
* E-mail:
* <brain@chatspike.net>
* <Craig@chatspike.net>
* E-mail:
* <brain@chatspike.net>
* <Craig@chatspike.net>
#include "inspircd.h"
#ifdef USE_EPOLL
#include <sys/epoll.h>
#include "inspircd.h"
#ifdef USE_EPOLL
#include <sys/epoll.h>
#endif
#ifdef USE_KQUEUE
#include <sys/types.h>
#endif
#ifdef USE_KQUEUE
#include <sys/types.h>
{
if ((fd < 0) || (fd > 65535))
return false;
{
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
#ifdef USE_SELECT
fds[fd] = fd;
#endif