summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Helleu <flashcode@flashtux.org>2021-10-14 22:42:07 +0200
committerSébastien Helleu <flashcode@flashtux.org>2021-10-17 21:28:31 +0200
commit8ea41d91c98959e519c4ddfa220ea521c9d041a9 (patch)
tree233c4226bbc97e02090bacdb12658f50b575f716
parent7a88e007a55b11abba7e2232fa577d772772de84 (diff)
downloadweechat-8ea41d91c98959e519c4ddfa220ea521c9d041a9.zip
irc: use parsed command parameters in "ping" command callback
-rw-r--r--src/plugins/irc/irc-protocol.c12
-rw-r--r--tests/unit/plugins/irc/test-irc-protocol.cpp4
2 files changed, 11 insertions, 5 deletions
diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c
index d391ade53..b927f388e 100644
--- a/src/plugins/irc/irc-protocol.c
+++ b/src/plugins/irc/irc-protocol.c
@@ -2528,10 +2528,16 @@ IRC_PROTOCOL_CALLBACK(part)
IRC_PROTOCOL_CALLBACK(ping)
{
- IRC_PROTOCOL_MIN_ARGS(2);
+ char *str_params;
- irc_server_sendf (server, 0, NULL, "PONG :%s",
- (argv_eol[1][0] == ':') ? argv_eol[1] + 1 : argv_eol[1]);
+ IRC_PROTOCOL_MIN_PARAMS(1);
+
+ str_params = irc_protocol_string_params (params, 0, num_params - 1);
+
+ irc_server_sendf (server, 0, NULL, "PONG :%s", str_params);
+
+ if (str_params)
+ free (str_params);
return WEECHAT_RC_OK;
}
diff --git a/tests/unit/plugins/irc/test-irc-protocol.cpp b/tests/unit/plugins/irc/test-irc-protocol.cpp
index ec1c50059..d1a3faa5f 100644
--- a/tests/unit/plugins/irc/test-irc-protocol.cpp
+++ b/tests/unit/plugins/irc/test-irc-protocol.cpp
@@ -1526,9 +1526,9 @@ TEST(IrcProtocolWithServer, ping)
{
SRV_INIT;
- /* not enough arguments, no response */
+ /* not enough parameters, no response */
RECV("PING");
- CHECK_ERROR_ARGS("ping", 1, 2);
+ CHECK_ERROR_PARAMS("ping", 0, 1);
CHECK_SENT(NULL);
RECV("PING :123456789");