From 360d721e48fe52f8bd4ffcb342631569bb182489 Mon Sep 17 00:00:00 2001 From: Adam Saponara Date: Sun, 27 Jul 2025 19:10:15 -0400 Subject: [PATCH] Send RPL 002-005 on connect --- lib/irslackd.js | 21 ++++++++++++++++++++- tests/mocks.js | 7 +++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/lib/irslackd.js b/lib/irslackd.js index f8e7db7..aae7cb6 100644 --- a/lib/irslackd.js +++ b/lib/irslackd.js @@ -512,8 +512,27 @@ class Irslackd { // RPL_WELCOME this.ircd.write(ircUser.socket, 'irslackd', '001', [ ircUser.ircNick, 'irslackd' ]); + // RPL_YOURHOST + this.ircd.write(ircUser.socket, 'irslackd', '002', [ ircUser.ircNick, 'Your host is irslackd, running version irslackd' ]); + + // RPL_CREATED + this.ircd.write(ircUser.socket, 'irslackd', '003', [ ircUser.ircNick, 'This server was created by humans' ]); + + // RPL_MYINFO + this.ircd.write(ircUser.socket, 'irslackd', '004', [ ircUser.ircNick, + 'irslackd', // client + 'irslackd', // servername + 'irslackd', // version + '', // user modes + '', // chan modes + ]); + // RPL_ISUPPORT - this.ircd.write(ircUser.socket, 'irslackd', '005', [ ircUser.ircNick, 'LINELEN=' + this.config.lineLen, 'are supported by this server' ]); + this.ircd.write(ircUser.socket, 'irslackd', '005', [ ircUser.ircNick, + 'LINELEN=' + this.config.lineLen, + 'CHANTYPES=#&', + 'are supported by this server', + ]); // RPL_ENDOFMOTD this.ircd.write(ircUser.socket, 'irslackd', '376', [ ircUser.ircNick, 'End of MOTD' ]); diff --git a/tests/mocks.js b/tests/mocks.js index 546df50..18b1689 100644 --- a/tests/mocks.js +++ b/tests/mocks.js @@ -132,7 +132,10 @@ async function connectOneIrcClient(t, prefs = []) { ircSocket.expect(':irslackd 353 test_slack_user = #test_chan_1 :test_slack_user test_slack_user test_slack_fooo test_slack_barr'); ircSocket.expect(':irslackd 366 test_slack_user #test_chan_1 :End of /NAMES list'); ircSocket.expect(':irslackd 001 test_slack_user irslackd'); - ircSocket.expect(':irslackd 005 test_slack_user LINELEN=4096 :are supported by this server'); + ircSocket.expect(':irslackd 002 test_slack_user :Your host is irslackd, running version irslackd'); + ircSocket.expect(':irslackd 003 test_slack_user :This server was created by humans'); + ircSocket.expect(':irslackd 004 test_slack_user irslackd irslackd irslackd'); + ircSocket.expect(':irslackd 005 test_slack_user LINELEN=4096 CHANTYPES=#& :are supported by this server'); ircSocket.expect(':irslackd 376 test_slack_user :End of MOTD'); }; @@ -192,7 +195,7 @@ async function connectOneIrcClient(t, prefs = []) { end: () => ircSocket.end(), }; } -connectOneIrcClient.planCount = 22; +connectOneIrcClient.planCount = 25; exports.MockSlackWebClient = MockSlackWebClient; exports.MockSlackRtmClient = MockSlackRtmClient;