]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/ircd.c
Fixing time_t warnings
[irc/rqf/shadowircd.git] / src / ircd.c
index dc5ec3782a1bf1c2635205e336314c7335ada4b0..bf13e0d3f5f617b6e896afa92481ae8b452377e0 100644 (file)
 #include "serno.h"
 #include "sslproc.h"
 
-extern int ServerRunning;
-extern struct LocalUser meLocalUser;
-extern char **myargv;
-
-int maxconnections;
-
 /* /quote set variables */\r
 struct SetOptions GlobalSetOptions;
 \r
@@ -81,13 +75,72 @@ struct config_file_entry ConfigFileEntry;
 /* 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 admin_info AdminInfo;
+
 struct Counter Count;\r
 struct ServerStatistics ServerStats;
 
+int maxconnections;
+struct timeval SystemTime;
+struct Client me;              /* That's me */\r
+struct LocalUser meLocalUser;  /* That's also part of me */
+
+rb_dlink_list lclient_list = { NULL, NULL, 0 };\r
+rb_dlink_list global_client_list = { NULL, NULL, 0 };\r
+rb_dlink_list global_channel_list = { NULL, NULL, 0 };\r
+\r
+rb_dlink_list unknown_list;        /* unknown clients ON this server only */\r
+rb_dlink_list serv_list;           /* local servers to this server ONLY */\r
+rb_dlink_list global_serv_list;    /* global servers on the network */\r
+rb_dlink_list local_oper_list;     /* our opers, duplicated in lclient_list */\r
+rb_dlink_list oper_list;           /* network opers */
+
+time_t startup_time;\r
+\r
+int default_server_capabs = CAP_MASK;\r
+\r
+int splitmode;\r
+int splitchecking;\r
+int split_users;\r
+int split_servers;\r
+int eob_count;\r
+\r
+unsigned long initialVMTop = 0;  /* top of virtual memory at init */\r
+const char *logFileName = LPATH;\r
+const char *pidFileName = PPATH;
+
+char **myargv;
+int dorehash = 0;\r
+int dorehashbans = 0;\r
+int doremotd = 0;\r
+int kline_queued = 0;\r
+int server_state_foreground = 0;\r
+int opers_see_all_users = 0;\r
 int ssl_ok = 0;\r
-int zlib_ok = 1;
+int zlib_ok = 1;\r
+\r
+int testing_conf = 0;\r
+\r
+struct config_channel_entry ConfigChannel;\r
+rb_bh *channel_heap;\r
+rb_bh *ban_heap;\r
+rb_bh *topic_heap;\r
+rb_bh *member_heap;\r
+\r
+rb_bh *client_heap = NULL;\r
+rb_bh *lclient_heap = NULL;\r
+rb_bh *pclient_heap = NULL;\r
+\r
+char current_uid[IDLEN];\r
+\r
+/* patricia */\r
+rb_bh *prefix_heap;\r
+rb_bh *node_heap;\r
+rb_bh *patricia_heap;\r
+\r
+rb_bh *linebuf_heap;\r
+\r
+rb_bh *dnode_heap;
 
 /*
  * print_startup - print startup information
@@ -133,9 +186,12 @@ ircd_restart_cb(const char *str)
 static void
 ircd_die_cb(const char *str)
 {
-       /* Try to get the message out to currently logged in operators. */
-       sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "Server panic! %s", str);
-       inotice("server panic: %s", str);
+       if(str != NULL)\r
+       {
+               /* Try to get the message out to currently logged in operators. */
+               sendto_realops_snomask(SNO_GENERAL, L_NETWIDE, "Server panic! %s", str);
+               inotice("server panic: %s", str);
+       }
 
        unlink(pidFileName);
        exit(EXIT_FAILURE);
@@ -280,7 +336,7 @@ initialize_global_set_options(void)
 
        GlobalSetOptions.maxclients = ServerInfo.default_max_clients;\r
 \r
-       if(GlobalSetOptions.maxclients > (maxconnections - MAX_BUFFER))\r
+       if(GlobalSetOptions.maxclients > (maxconnections - MAX_BUFFER) || (GlobalSetOptions.maxclients <= 0))\r
                GlobalSetOptions.maxclients = maxconnections - MAX_BUFFER;
 
        GlobalSetOptions.autoconn = 1;
@@ -445,7 +501,6 @@ main(int argc, char *argv[])
         */
        setup_corefile();
 
-       ServerRunning = 0;
        /* It ain't random, but it ought to be a little harder to guess */
        srand(SystemTime.tv_sec ^ (SystemTime.tv_usec | (getpid() << 20)));
        memset(&me, 0, sizeof(me));
@@ -648,11 +703,9 @@ main(int argc, char *argv[])
        if(splitmode)
                check_splitmode_ev = rb_event_add("check_splitmode", check_splitmode, NULL, 2);
 
-       ServerRunning = 1;
-
        print_startup(getpid());
 
-       rb_lib_loop(250);
+       rb_lib_loop(0);
 
        return 0;
 }