diff --git a/exec/load/ircd/core.js b/exec/load/ircd/core.js index 1824106be09d01ae887f3c6685255dc1939bd56c..ba8ebce9575eeae222655b00ee6b0ab5e73aa7ae 100644 --- a/exec/load/ircd/core.js +++ b/exec/load/ircd/core.js @@ -2754,26 +2754,43 @@ function IRCClient_check_timeout() { function IRCClient_finalize_server_connect(states) { var i; + var pass_sent = false; HCC_Counter++; - gnotice(format("Link with %s (%s) established, states: %s", + gnotice(format("Link established with %s (%s:%u), Sock (%s:%u), Class %u.", this.nick, this.hostname, - states + this.socket.remote_ip_address, + this.socket.remote_port, + this.ircclass )); if (server.client_update !== undefined) server.client_update(this.socket, this.nick, this.hostname); if (!this.socket.outbound) { for (i in CLines) { - if(wildmatch(this.nick,CLines[i].servername)) { + if (this.nick == CLines[i].servername) { this.rawout(format( "PASS %s :%s", CLines[i].password, states )); + pass_sent = true; break; } } + /* FIXME: Might want to have this behaviour able to be toggled on/off globally */ + if (!pass_sent) { + for (i in CLines) { + if(wildmatch(this.nick,CLines[i].servername)) { + this.rawout(format( + "PASS %s :%s", + CLines[i].password, + states + )); + break; + } + } + } this.rawout("CAPAB " + SERVER_CAPAB); this.rawout("SERVER " + ServerName + " 1 :" + ServerDesc); } diff --git a/exec/load/ircd/unregistered.js b/exec/load/ircd/unregistered.js index f8f750e54eddbed9515d7b6292226634f853a5d8..14e5e09860835833fe048976f42fb997a6f7b064 100644 --- a/exec/load/ircd/unregistered.js +++ b/exec/load/ircd/unregistered.js @@ -473,6 +473,9 @@ function Register_Unregistered_Local_Server(unreg, p, nline) { if (typeof Servers[p[0].toLowerCase()] !== 'undefined') throw "Trying to overwrite existing server in Register_Unregistered_Local_Server()"; + if (typeof Local_Servers[p[0].toLowerCase()] !== 'undefined') + throw "Trying to overwrite existing LOCAL server in Register_Unregistered_Local_Server()"; + Servers[p[0].toLowerCase()] = new IRC_Server(); s = Servers[p[0].toLowerCase()]; Local_Servers[p[0].toLowerCase()] = s;