From 0617fdfb654454abae0fd8adf95fa9a05fbc88f4 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 3 Sep 2024 19:00:49 +0100 Subject: Check the connection state of a command before the parameter count. Works around a bug in irssi. Closes #2103. --- src/commands.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/commands.cpp') diff --git a/src/commands.cpp b/src/commands.cpp index 3c500e9b8..85ee41a1a 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -290,21 +290,21 @@ void CommandParser::ProcessCommand(LocalUser* user, std::string& command, Comman } } - if ((!command_p.empty()) && (command_p.back().empty()) && (!handler->allow_empty_last_param)) - command_p.pop_back(); - - if (command_p.size() < handler->min_params) + if (!user->IsFullyConnected() && !handler->works_before_reg) { user->CommandFloodPenalty += failpenalty; - handler->TellNotEnoughParameters(user, command_p); + handler->TellNotFullyConnected(user, command_p); FOREACH_MOD(OnCommandBlocked, (command, command_p, user)); return; } - if (!user->IsFullyConnected() && !handler->works_before_reg) + if ((!command_p.empty()) && (command_p.back().empty()) && (!handler->allow_empty_last_param)) + command_p.pop_back(); + + if (command_p.size() < handler->min_params) { user->CommandFloodPenalty += failpenalty; - handler->TellNotFullyConnected(user, command_p); + handler->TellNotEnoughParameters(user, command_p); FOREACH_MOD(OnCommandBlocked, (command, command_p, user)); } else -- cgit v1.3.1-10-gc9f91