]> granicus.if.org Git - transmission/commitdiff
(trunk libt) #4164 "__FD_SETSIZE impact on open-file-limit and peer-limit-global...
authorJordan Lee <jordan@transmissionbt.com>
Tue, 19 Apr 2011 15:23:04 +0000 (15:23 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Tue, 19 Apr 2011 15:23:04 +0000 (15:23 +0000)
libtransmission/fdlimit.c

index f74bc0ee2338bab54752cce57929f25a27bbdd9a..780afb8981ae04f0b08e055f9d2884761ed10606 100644 (file)
@@ -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