From a8377b1b7a62d59ab520a5615bc9f8c616d1effb Mon Sep 17 00:00:00 2001 From: Jordan Lee Date: Tue, 19 Apr 2011 15:23:04 +0000 Subject: [PATCH] (trunk libt) #4164 "__FD_SETSIZE impact on open-file-limit and peer-limit-global" -- commit patch by romanr to take FD_SETSIZE into account before calling setrlimit() --- libtransmission/fdlimit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libtransmission/fdlimit.c b/libtransmission/fdlimit.c index f74bc0ee2..780afb898 100644 --- a/libtransmission/fdlimit.c +++ b/libtransmission/fdlimit.c @@ -781,12 +781,12 @@ tr_fdSetPeerLimit( tr_session * session, int socket_limit ) { struct rlimit rlim; const int NOFILE_BUFFER = 512; - const int open_max = sysconf( _SC_OPEN_MAX ); + const int open_max = MIN( FD_SETSIZE, sysconf( _SC_OPEN_MAX ) ); getrlimit( RLIMIT_NOFILE, &rlim ); rlim.rlim_cur = MAX( 1024, open_max ); rlim.rlim_cur = MIN( rlim.rlim_cur, rlim.rlim_max ); setrlimit( RLIMIT_NOFILE, &rlim ); - tr_dbg( "setrlimit( RLIMIT_NOFILE, %d )", (int)rlim.rlim_cur ); + tr_dbg( "setrlimit( RLIMIT_NOFILE, %d ); FD_SETSIZE = %d", (int)rlim.rlim_cur, FD_SETSIZE ); gFd->socket_limit = MIN( socket_limit, (int)rlim.rlim_cur - NOFILE_BUFFER ); } #else