diff options
author | Adam <Adam@anope.org> | 2011-07-07 02:23:11 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2011-07-07 02:23:11 -0400 |
commit | d2832b1045a30a995bd0553fd42dcf1c1df1e57f (patch) | |
tree | 6347531c044fbebf33665e9d633367421c32838b /src | |
parent | 1a4fc39d7b4d90dfa623d46e1ce33a79ec75149c (diff) |
Use getrlimit instead of ulimit, fixes freebsd build
Diffstat (limited to 'src')
-rw-r--r-- | src/socketengines/socketengine_poll.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
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 <ulimit.h> # include <sys/poll.h> # include <poll.h> +# include <sys/types.h> +# include <sys/time.h> +# include <sys/resource.h> # ifndef POLLRDHUP # define POLLRDHUP 0 # endif @@ -20,17 +22,12 @@ static std::map<int, int> 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]; } |