+int maxconnections;
+struct Client me; /* That's me */
+struct LocalUser meLocalUser; /* That's also part of me */
+
+rb_dlink_list global_client_list;
+
+/* unknown/client pointer lists */
+rb_dlink_list unknown_list; /* unknown clients ON this server only */
+rb_dlink_list lclient_list; /* local clients only ON this server */
+rb_dlink_list serv_list; /* local servers to this server ONLY */
+rb_dlink_list global_serv_list; /* global servers on the network */
+rb_dlink_list local_oper_list; /* our opers, duplicated in lclient_list */
+rb_dlink_list oper_list; /* network opers */
+
+const char *logFileName = LPATH;
+const char *pidFileName = PPATH;
+
+char **myargv;
+int dorehash = 0;
+int dorehashbans = 0;
+int doremotd = 0;
+int kline_queued = 0;
+int server_state_foreground = 0;
+int opers_see_all_users = 0;
+int ssl_ok = 0;
+int zlib_ok = 1;
+
+int testing_conf = 0;
+time_t startup_time;
+
+int default_server_capabs = CAP_MASK;
+
+int splitmode;
+int splitchecking;
+int split_users;
+int split_servers;
+int eob_count;
+
+void
+ircd_shutdown(const char *reason)
+{
+ struct Client *target_p;
+ rb_dlink_node *ptr;
+
+ RB_DLINK_FOREACH(ptr, lclient_list.head)
+ {
+ target_p = ptr->data;
+
+ sendto_one(target_p, ":%s NOTICE %s :Server Terminating. %s",
+ me.name, target_p->name, reason);
+ }
+
+ RB_DLINK_FOREACH(ptr, serv_list.head)
+ {
+ target_p = ptr->data;
+
+ sendto_one(target_p, ":%s ERROR :Terminated by %s",
+ me.name, reason);
+ }
+
+ ilog(L_MAIN, "Server Terminating. %s", reason);
+ close_logfiles();
+
+ unlink(pidFileName);
+ exit(0);
+}
+