]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
Initialize libratbox.
[irc/rqf/shadowircd.git] / src / ircd.c
index bef2eabc4d1ef91aeaaeb399ea49339c60899f68..40993b1baf4e546282a5ad22f96f27d172bc1a4f 100644 (file)
@@ -21,7 +21,7 @@
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  *  USA
  *
- *  $Id: ircd.c 3249 2007-03-05 18:51:17Z nenolod $
+ *  $Id: ircd.c 3380 2007-04-03 22:25:11Z jilles $
  */
 
 #include "stdinc.h"
@@ -111,6 +111,12 @@ ircd_log_cb(const char *str)
        ilog(L_MAIN, "%s", str);
 }
 
+static void
+ircd_restart_cb(const char *str)
+{
+       ilog(L_MAIN, "%s", str);
+}
+
 /*
  * Why EXIT_FAILURE here?
  * Because if ircd_die_cb() is called it's because of a fatal
@@ -139,28 +145,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
@@ -318,7 +315,7 @@ initialize_global_set_options(void)
        memset(&GlobalSetOptions, 0, sizeof(GlobalSetOptions));
        /* memset( &ConfigFileEntry, 0, sizeof(ConfigFileEntry)); */
 
-       GlobalSetOptions.maxclients = MAX_CLIENTS;
+       GlobalSetOptions.maxclients = ServerInfo.max_clients;
        GlobalSetOptions.autoconn = 1;
 
        GlobalSetOptions.spam_time = MIN_JOIN_LEAVE_TIME;
@@ -561,8 +558,9 @@ 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);
+       rb_lib_init(ircd_log_cb, restart, ircd_die_cb);
 
        fdlist_init();
        if(!server_state_foreground)
@@ -644,10 +642,10 @@ main(int argc, char *argv[])
        me.servptr = &me;
        SetMe(&me);
        make_server(&me);
-       me.serv->up = me.name;
        startup_time = CurrentTime;
        add_to_client_hash(me.name, &me);
        add_to_id_hash(me.id, &me);
+       me.serv->nameinfo = scache_connect(me.name, me.info, 0);
 
        dlinkAddAlloc(&me, &global_serv_list);
 
@@ -677,12 +675,6 @@ main(int argc, char *argv[])
 
        eventAdd("check_rehash", check_rehash, NULL, 1);
 
-       if(ConfigServerHide.links_delay > 0)
-               eventAdd("cache_links", cache_links, NULL,
-                           ConfigServerHide.links_delay);
-       else
-               ConfigServerHide.links_disabled = 1;
-
        if(splitmode)
                eventAdd("check_splitmode", check_splitmode, NULL, 2);