From d2832b1045a30a995bd0553fd42dcf1c1df1e57f Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 7 Jul 2011 02:23:11 -0400 Subject: Use getrlimit instead of ulimit, fixes freebsd build --- src/socketengines/socketengine_poll.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'src/socketengines/socketengine_poll.cpp') diff --git a/src/socketengines/socketengine_poll.cpp b/src/socketengines/socketengine_poll.cpp index 773a89839..278485fa7 100644 --- a/src/socketengines/socketengine_poll.cpp +++ b/src/socketengines/socketengine_poll.cpp @@ -1,9 +1,11 @@ #include "module.h" #ifndef _WIN32 -# include # include # include +# include +# include +# include # ifndef POLLRDHUP # define POLLRDHUP 0 # endif @@ -20,17 +22,12 @@ static std::map socket_positions; void SocketEngine::Init() { SocketCount = 0; -#ifndef _WIN32 - max = ulimit(4, 0); -#else - max = 1024; -#endif - if (max <= 0) - { - Log() << "Can't determine maximum number of open sockets"; - throw CoreException("Can't determine maximum number of open sockets"); - } + rlimit fd_limit; + if (getrlimit(RLIMIT_NOFILE, &fd_limit) == -1) + throw CoreException(Anope::LastError()); + + max = fd_limit.rlim_cur; events = new pollfd[max]; } -- cgit