diff --git a/exec/ircd.js b/exec/ircd.js index 6188e462a80455d6a2b2e0cd5e5feac2a0b93587..df41b107aa67ae0a03a14b4600cc697290e407f0 100644 --- a/exec/ircd.js +++ b/exec/ircd.js @@ -823,9 +823,17 @@ function IRCClient_netsplit(ns_reason) { if (!ns_reason) ns_reason = "net.split.net.split net.split.net.split"; for (sqclient in Users) { - if (Users[sqclient].servername == this.nick) + if (Users[sqclient] && + (Users[sqclient].servername == this.nick) + ) Users[sqclient].quit(ns_reason,true,true); } + for (sqserver in Servers) { + if (Servers[sqserver] && + (Servers[sqserver].linkparent == this.nick) + ) + Servers[sqserver].quit(ns_reason,true,true); + } } function IRCClient_RMChan(rmchan_obj) { @@ -896,12 +904,15 @@ function originatorout(str,origin) { sendsock = this.socket; if(this.local && !this.server) { - send_data = ":" + origin.nuh + " " + str; - } else if (this.parent) { - sendsock = Servers[this.parent].socket; - send_data = ":" + origin.nick + " " + str; + if (origin.server) + send_data = ":" + origin.nick + " " + str; + else + send_data = ":" + origin.nuh + " " + str; } else if (this.server) { send_data = ":" + origin.nick + " " + str; + } else if (!this.local) { + sendsock = Servers[this.parent].socket; + send_data = ":" + origin.nick + " " + str; } else { log("!ERROR: No socket to send to?"); return 0; @@ -1233,7 +1244,8 @@ function IRCClient_bcast_to_list(chan, str, bounce, list_bit) { function IRCClient_bcast_to_channel(chan, str, bounce) { for(thisUser in chan.users) { var aUser=chan.users[thisUser]; - if ( ( aUser.id != this.id || (bounce) ) && aUser.local ) + if ( ( aUser.id != this.id || (bounce) ) && + aUser.local ) aUser.originatorout(str,this); } } @@ -1511,8 +1523,8 @@ function IRCClient_do_info() { this.numeric(371, ": Palom, Psyko, Torke, and all the #square oldbies."); this.numeric(371, ":--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--"); this.numeric(371, ":Synchronet " + system.full_version); - this.numeric(371, ":Running on " + system.os_version); this.numeric(371, ":Compiled with " + system.compiled_with + " at " + system.compiled_when); + this.numeric(371, ":Running on " + system.os_version); this.numeric(371, ":Utilizing socket library: " + system.socket_lib); this.numeric(371, ":Javascript library: " + system.js_version); this.numeric(371, ":This BBS has been up since " + system.timestr(system.uptime)); @@ -1522,7 +1534,7 @@ function IRCClient_do_info() { this.numeric(371, ":" + server.version_detail); } this.numeric(371, ":IRCd CVS revisions:") - this.numeric(371, ":Main: " + MAIN_REVISION + " User: " + USER_REVISION + " Channel: " + CHANNEL_REVISION + " Server: " + SERVER_REVISION + " Unreg: " + UNREG_REVISION); + this.numeric(371, ":Main(" + MAIN_REVISION + ") User(" + USER_REVISION + ") Channel(" + CHANNEL_REVISION + ") Server(" + SERVER_REVISION + ") Unreg(" + UNREG_REVISION + ")"); this.numeric(371, ":IRClib Version: " + IRCLIB_VERSION); this.numeric(371, ":--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--"); this.numeric(371, ":This program is distributed under the terms of the GNU General Public"); diff --git a/exec/load/ircd_server.js b/exec/load/ircd_server.js index b38abd5e29cb0f7b90b28a94e437bb1028b44c4a..b09194759f31eed7ab27a2c51d551ad445197422 100644 --- a/exec/load/ircd_server.js +++ b/exec/load/ircd_server.js @@ -1005,10 +1005,10 @@ function Server_Quit(str,suppress_bcast,is_netsplit,origin) { this.netsplit(); } - if((server.client_remove!=undefined) && this.local) - server.client_remove(this.socket); - if (this.local) { + if (server.client_remove!=undefined) + server.client_remove(this.socket); + this.rawout("ERROR :Closing Link: [" + this.uprefix + "@" + this.hostname + "] (" + str + ")"); // FIXME: wrong phrasing below umode_notice(USERMODE_CLIENT,"Client","SERVER exiting: " + @@ -1106,3 +1106,4 @@ function IRCClient_server_chan_info(sni_chan) { if (modeargs) this.ircout("MODE " + sni_chan.nam + " " + modestr + " " + modeargs); } +