X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/075423b0569d2a4d0a48b562c951e458dccc8bc9..83b667df889c7d68aab40e4bb5afd49ab96d94bb:/src/ircd.c diff --git a/src/ircd.c b/src/ircd.c index 0d39431..1eee2ad 100644 --- a/src/ircd.c +++ b/src/ircd.c @@ -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" @@ -78,7 +78,7 @@ extern int ServerRunning; extern struct LocalUser meLocalUser; extern char **myargv; -extern int maxconnections; /* XXX */ +int maxconnections; /* XXX */ /* * print_startup - print startup information @@ -111,7 +111,7 @@ ircd_log_cb(const char *str) static void ircd_restart_cb(const char *str) { - ilog(L_MAIN, "%s", str); + restart(str); } /* @@ -154,6 +154,8 @@ init_sys(void) exit(EXIT_FAILURE); } } + + maxconnections = limit.rlim_cur; #endif /* RLIMIT_NOFILE */ } @@ -225,32 +227,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 +255,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 +426,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 */ @@ -558,7 +510,8 @@ main(int argc, char *argv[]) /* Init the event subsystem */ init_sys(); - rb_lib_init(ircd_log_cb, restart, ircd_die_cb, !server_state_foreground, maxconnections, DNODE_HEAP_SIZE, FD_HEAP_SIZE); + 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(); @@ -649,22 +602,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); @@ -673,7 +626,7 @@ main(int argc, char *argv[]) print_startup(getpid()); - charybdis_io_loop(); + rb_lib_loop(250); return 0; }