diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index 6510dd232..e05ab7142 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -3379,7 +3379,7 @@ IRC_PROTOCOL_CALLBACK(warn) * Callback for the IRC command "001": connected to IRC server. * * Command looks like: - * :server 001 mynick :Welcome to the dancer-ircd Network + * 001 mynick :Welcome to the dancer-ircd Network */ IRC_PROTOCOL_CALLBACK(001) @@ -3389,10 +3389,10 @@ IRC_PROTOCOL_CALLBACK(001) const char *ptr_server_command; int length; - IRC_PROTOCOL_MIN_ARGS(3); + IRC_PROTOCOL_MIN_PARAMS(1); - if (irc_server_strcasecmp (server, server->nick, argv[2]) != 0) - irc_server_set_nick (server, argv[2]); + if (irc_server_strcasecmp (server, server->nick, params[0]) != 0) + irc_server_set_nick (server, params[0]); irc_protocol_cb_numeric (server, date, irc_message, tags, nick, address, host, command, diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp index 212773abb..027dc6340 100644 --- a/tests/unit/plugins/irc/test-irc-protocol.cpp +++ b/tests/unit/plugins/irc/test-irc-protocol.cpp @@ -1984,6 +1984,10 @@ TEST(IrcProtocolWithServer, 001_empty) LONGS_EQUAL(0, ptr_server->is_connected); STRCMP_EQUAL("nick1", ptr_server->nick); + /* not enough parameters */ + RECV(":server 001"); + CHECK_ERROR_PARAMS("001", 0, 1); + RECV(":server 001 alice"); CHECK_NO_MSG; LONGS_EQUAL(1, ptr_server->is_connected);