X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/d665092128d199e7a619d94042f1e0a0c8e56ec8..b0ac993f2db7353d633ba9a508506bb453cb0341:/src/ircd.c diff --git a/src/ircd.c b/src/ircd.c index 2d87e2d..c619315 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -28,13 +28,11 @@ #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 */ @@ -58,18 +55,14 @@ #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; }