diff --git a/exec/ircd.js b/exec/ircd.js index f619565ee274246a17ee10af94765f79780fe62a..3fb9d30aa6a7988d97efc97d438a57494e60fe97 100644 --- a/exec/ircd.js +++ b/exec/ircd.js @@ -4029,12 +4029,16 @@ function IRCClient_server_commands(origin, command, cmdline) { this.ircout("PONG " + servername + " :" + cmd[1]); break; case "PONG": - if (cmd[2] && !match_irc_mask(servername, cmd[2])) { - var dest_server = searchbyserver(cmd[2]); - if (!dest_server) + if (cmd[2]) { + if (cmd[2][0] == ":") + cmd[2] = cmd[2].slice(1); + if (!match_irc_mask(servername, cmd[2])) { + var dest_server = searchbyserver(cmd[2]); + if (!dest_server) + break; + dest_server.rawout(":" + ThisOrigin.nick + " PONG " + cmd[1] + " " + dest_server.nick); break; - dest_server.rawout(":" + ThisOrigin.nick + " PONG " + cmd[1] + " " + dest_server.nick); - break; + } } this.pinged = false; break;