]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
[svn] Make the code that raises fd rlimit to hard limit work.
[irc/rqf/shadowircd.git] / src / ircd.c
index 0646555c40d8b86fe5137ad24c5165b6a5b8b6ac..dd1264f830c2da38b968e3d57e674830bf6e8d8b 100644 (file)
@@ -21,7 +21,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: ircd.c 3251 2007-03-05 18:58:38Z nenolod $
+ *  $Id: ircd.c 3380 2007-04-03 22:25:11Z jilles $
  */
 
 #include "stdinc.h"
@@ -139,28 +139,19 @@ ircd_die_cb(const char *str)
 static void
 init_sys(void)
 {
-#if defined(RLIMIT_FD_MAX) && defined(HAVE_SYS_RLIMIT_H)
+#if defined(RLIMIT_NOFILE) && defined(HAVE_SYS_RESOURCE_H)
        struct rlimit limit;
 
-       if(!getrlimit(RLIMIT_FD_MAX, &limit))
+       if(!getrlimit(RLIMIT_NOFILE, &limit))
        {
-               if(limit.rlim_max < MAXCONNECTIONS)
-               {
-                       fprintf(stderr, "ircd's bootstrap fd table is too big\n");
-                       fprintf(stderr, "Hard Limit: %ld bootstrap size: %d\n",
-                               (long) limit.rlim_max, MAXCONNECTIONS);
-                       fprintf(stderr, "Fix MAXCONNECTIONS\n");
-                       exit(-1);
-               }
-
                limit.rlim_cur = limit.rlim_max;        /* make soft limit the max */
-               if(setrlimit(RLIMIT_FD_MAX, &limit) == -1)
+               if(setrlimit(RLIMIT_NOFILE, &limit) == -1)
                {
                        fprintf(stderr, "error setting max fd's to %ld\n", (long) limit.rlim_cur);
                        exit(EXIT_FAILURE);
                }
        }
-#endif /* RLIMIT_FD_MAX */
+#endif /* RLIMIT_NOFILE */
 }
 
 static int
@@ -561,8 +552,8 @@ main(int argc, char *argv[])
        }
 
        /* Init the event subsystem */
-       libcharybdis_init(ircd_log_cb, restart, ircd_die_cb);
        init_sys();
+       libcharybdis_init(ircd_log_cb, restart, ircd_die_cb);
 
        fdlist_init();
        if(!server_state_foreground)