]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
use rb_set_time() to update ratbox time
[irc/rqf/shadowircd.git] / src / ircd.c
index 2d87e2d547f11817d5d7cda8f44882fcc1679ede..c6193159b77690e76db6b683c8771d88735d6970 100644 (file)
 #include "setup.h"
 #include "config.h"
 
-#include "tools.h"
 #include "ircd.h"
 #include "channel.h"
 #include "class.h"
 #include "client.h"
 #include "common.h"
-#include "event.h"
 #include "hash.h"
 #include "irc_string.h"
 #include "ircd_signal.h"
@@ -47,7 +45,6 @@
 #include "res.h"
 #include "restart.h"
 #include "s_auth.h"
-#include "commio.h"
 #include "s_conf.h"
 #include "s_log.h"
 #include "s_serv.h"            /* try_connections */
 #include "supported.h"
 #include "whowas.h"
 #include "modules.h"
-#include "memory.h"
 #include "hook.h"
 #include "ircd_getopt.h"
-#include "balloc.h"
 #include "newconf.h"
-#include "patricia.h"
 #include "reject.h"
 #include "s_conf.h"
 #include "s_newconf.h"
 #include "cache.h"
 #include "monitor.h"
-#include "libcharybdis.h"
 #include "patchlevel.h"
 #include "serno.h"
 
@@ -85,6 +78,8 @@ extern int ServerRunning;
 extern struct LocalUser meLocalUser;
 extern char **myargv;
 
+int maxconnections; /* XXX */
+
 /*
  * print_startup - print startup information
  */
@@ -116,7 +111,7 @@ ircd_log_cb(const char *str)
 static void
 ircd_restart_cb(const char *str)
 {
-       ilog(L_MAIN, "%s", str);
+       restart(str);
 }
 
 /*
@@ -234,6 +229,7 @@ void
 set_time(void)
 {
        struct timeval newtime;
+
        newtime.tv_sec = 0;
        newtime.tv_usec = 0;
 #ifdef HAVE_GETTIMEOFDAY
@@ -249,11 +245,11 @@ set_time(void)
        newtime.tv_sec = time(NULL);
        
 #endif
-       if(newtime.tv_sec < CurrentTime)
-               set_back_events(CurrentTime - newtime.tv_sec);
 
        SystemTime.tv_sec = newtime.tv_sec;
        SystemTime.tv_usec = newtime.tv_usec;
+
+       rb_set_time();
 }
 
 static void
@@ -284,26 +280,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 = eventNextTime();
-               if(delay <= CurrentTime)
-                       eventRun();
-
-
-               rb_select(250);
-       }
-}
-
 /*
  * initalialize_global_set_options
  *
@@ -563,17 +539,10 @@ main(int argc, char *argv[])
 
        /* Init the event subsystem */
        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)
-       {
-               rb_close_all();
-       }
+       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();
-       init_patricia();
        newconf_init();
        init_s_conf();
        init_s_newconf();
@@ -646,7 +615,7 @@ main(int argc, char *argv[])
        me.servptr = &me;
        SetMe(&me);
        make_server(&me);
-       startup_time = CurrentTime;
+       startup_time = rb_current_time();
        add_to_client_hash(me.name, &me);
        add_to_id_hash(me.id, &me);
        me.serv->nameinfo = scache_connect(me.name, me.info, 0);
@@ -662,22 +631,22 @@ main(int argc, char *argv[])
 
        ilog(L_MAIN, "Server Ready");
 
-       eventAddIsh("cleanup_glines", cleanup_glines, NULL, CLEANUP_GLINES_TIME);
+       rb_event_addish("cleanup_glines", cleanup_glines, NULL, CLEANUP_GLINES_TIME);
 
        /* We want try_connections to be called as soon as possible now! -- adrian */
        /* No, 'cause after a restart it would cause all sorts of nick collides */
        /* um.  by waiting even longer, that just means we have even *more*
         * nick collisions.  what a stupid idea. set an event for the IO loop --fl
         */
-       eventAddIsh("try_connections", try_connections, NULL, STARTUP_CONNECTIONS_TIME);
-       eventAddOnce("try_connections_startup", try_connections, NULL, 0);
+       rb_event_addish("try_connections", try_connections, NULL, STARTUP_CONNECTIONS_TIME);
+       rb_event_addonce("try_connections_startup", try_connections, NULL, 0);
 
-       eventAddIsh("collect_zipstats", collect_zipstats, NULL, ZIPSTATS_TIME);
+       rb_event_addish("collect_zipstats", collect_zipstats, NULL, ZIPSTATS_TIME);
 
        /* Setup the timeout check. I'll shift it later :)  -- adrian */
-       eventAddIsh("rb_checktimeouts", rb_checktimeouts, NULL, 1);
+       rb_event_addish("rb_checktimeouts", rb_checktimeouts, NULL, 1);
 
-       eventAdd("check_rehash", check_rehash, NULL, 1);
+       rb_event_add("check_rehash", check_rehash, NULL, 1);
 
        if(splitmode)
                check_splitmode_ev = rb_event_add("check_splitmode", check_splitmode, NULL, 2);
@@ -686,7 +655,7 @@ main(int argc, char *argv[])
 
        print_startup(getpid());
 
-       charybdis_io_loop();
+       rb_lib_loop(250);
 
        return 0;
 }