* $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"
#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"
#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.
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
static void
ircd_restart_cb(const char *str)
{
- restart(buf);
+ restart(str);
}
/*
exit(EXIT_FAILURE);
}
}
+
+ maxconnections = limit.rlim_cur;
#endif /* RLIMIT_NOFILE */
}
{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)
{
}
}
-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
*
return -1;
}
- /*
- * save server boot time right away, so getrusage works correctly
- */
- set_time();
/*
* Setup corefile size immediately after boot -kre
*/
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();
/* 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();
init_channels();
initclass();
initwhowas();
- init_stats();
init_reject();
init_cache();
init_monitor();
print_startup(getpid());
- charybdis_io_loop();
+ rb_lib_loop(250);
return 0;
}