]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
Branch merge.
[irc/rqf/shadowircd.git] / src / ircd.c
index 5cdce481f417f9440e45cddceb021ce68a6f1c0d..9708dc51e700b7d06c25a2bf859be452710ee573 100644 (file)
  *  $Id: ircd.c 3380 2007-04-03 22:25:11Z jilles $
  */
 
+#include "ratbox_lib.h"
 #include "stdinc.h"
 #include "setup.h"
 #include "config.h"
-
 #include "ircd.h"
 #include "channel.h"
 #include "class.h"
@@ -46,7 +46,7 @@
 #include "restart.h"
 #include "s_auth.h"
 #include "s_conf.h"
-#include "s_log.h"
+#include "logger.h"
 #include "s_serv.h"            /* try_connections */
 #include "s_user.h"
 #include "s_stats.h"
@@ -66,8 +66,6 @@
 #include "patchlevel.h"
 #include "serno.h"
 
-#include "ratbox_lib.h"
-
 /*
  * Try and find the correct name to use with getrlimit() for setting the max.
  * number of files allowed to be open by this process.
@@ -78,7 +76,20 @@ extern int ServerRunning;
 extern struct LocalUser meLocalUser;
 extern char **myargv;
 
-extern int maxconnections; /* XXX */
+int maxconnections; /* XXX */
+
+/* /quote set variables */\r
+struct SetOptions GlobalSetOptions;
+\r
+/* configuration set from ircd.conf */\r
+struct config_file_entry ConfigFileEntry;\r
+/* server info set from ircd.conf */\r
+struct server_info ServerInfo;\r
+/* admin info set from ircd.conf */\r
+struct admin_info AdminInfo;\r
+\r
+struct Counter Count;\r
+struct ServerStatistics ServerStats;
 
 /*
  * print_startup - print startup information
@@ -111,7 +122,7 @@ ircd_log_cb(const char *str)
 static void
 ircd_restart_cb(const char *str)
 {
-       restart(buf);
+       restart(str);
 }
 
 /*
@@ -154,6 +165,8 @@ init_sys(void)
                        exit(EXIT_FAILURE);
                }
        }
+
+       maxconnections = limit.rlim_cur;
 #endif /* RLIMIT_NOFILE */
 }
 
@@ -225,32 +238,6 @@ struct lgetopt myopts[] = {
        {NULL, NULL, STRING, NULL},
 };
 
-void
-set_time(void)
-{
-       struct timeval newtime;
-       newtime.tv_sec = 0;
-       newtime.tv_usec = 0;
-#ifdef HAVE_GETTIMEOFDAY
-       if(gettimeofday(&newtime, NULL) == -1)
-       {
-               ilog(L_MAIN, "Clock Failure (%d)", errno);
-               sendto_realops_snomask(SNO_GENERAL, L_ALL,
-                                    "Clock Failure (%d), TS can be corrupted", errno);
-
-               restart("Clock Failure");
-       }
-#else
-       newtime.tv_sec = time(NULL);
-       
-#endif
-       if(newtime.tv_sec < rb_current_time())
-               rb_set_back_events(rb_current_time() - newtime.tv_sec);
-
-       SystemTime.tv_sec = newtime.tv_sec;
-       SystemTime.tv_usec = newtime.tv_usec;
-}
-
 static void
 check_rehash(void *unused)
 {
@@ -279,26 +266,6 @@ check_rehash(void *unused)
        }
 }
 
-void
-charybdis_io_loop(void)
-{
-       time_t delay;
-
-       while (ServerRunning)
-       {
-               /* Run pending events, then get the number of seconds to the next
-                * event
-                */
-
-               delay = rb_event_next();
-               if(delay <= rb_current_time())
-                       rb_event_run();
-
-
-               rb_select(250);
-       }
-}
-
 /*
  * initalialize_global_set_options
  *
@@ -470,10 +437,6 @@ main(int argc, char *argv[])
                return -1;
        }
 
-       /*
-        * save server boot time right away, so getrusage works correctly
-        */
-       set_time();
        /*
         * Setup corefile size immediately after boot -kre
         */
@@ -496,9 +459,10 @@ main(int argc, char *argv[])
 
        rb_dlinkAddTail(&me, &me.node, &global_client_list);
 
-       memset((void *) &Count, 0, sizeof(Count));
-       memset((void *) &ServerInfo, 0, sizeof(ServerInfo));
-       memset((void *) &AdminInfo, 0, sizeof(AdminInfo));
+       memset(&Count, 0, sizeof(Count));
+       memset(&ServerInfo, 0, sizeof(ServerInfo));
+       memset(&AdminInfo, 0, sizeof(AdminInfo));
+       memset(&ServerStats, 0, sizeof(struct ServerStatistics));
 
        /* Initialise the channel capability usage counts... */
        init_chcap_usage_counts();
@@ -559,6 +523,7 @@ main(int argc, char *argv[])
        /* Init the event subsystem */
        init_sys();
        rb_lib_init(ircd_log_cb, ircd_restart_cb, ircd_die_cb, !server_state_foreground, maxconnections, DNODE_HEAP_SIZE, FD_HEAP_SIZE);
+       rb_linebuf_init(LINEBUF_HEAP_SIZE);
 
        init_main_logfile();
        newconf_init();
@@ -574,7 +539,6 @@ main(int argc, char *argv[])
        init_channels();
        initclass();
        initwhowas();
-       init_stats();
        init_reject();
        init_cache();
        init_monitor();
@@ -673,7 +637,7 @@ main(int argc, char *argv[])
 
        print_startup(getpid());
 
-       charybdis_io_loop();
+       rb_lib_loop(250);
 
        return 0;
 }