diff options
| author | 2024-09-03 19:00:49 +0100 | |
|---|---|---|
| committer | 2024-09-03 19:04:27 +0100 | |
| commit | 0617fdfb654454abae0fd8adf95fa9a05fbc88f4 (patch) | |
| tree | 3efc996c51b64e3f54be109335c7de3a96c24fe2 /src/commands.cpp | |
| parent | Const correct the xline header. (diff) | |
| download | inspircd++-0617fdfb654454abae0fd8adf95fa9a05fbc88f4.tar.gz inspircd++-0617fdfb654454abae0fd8adf95fa9a05fbc88f4.tar.bz2 inspircd++-0617fdfb654454abae0fd8adf95fa9a05fbc88f4.zip | |
Check the connection state of a command before the parameter count.
Works around a bug in irssi.
Closes #2103.
Diffstat (limited to 'src/commands.cpp')
| -rw-r--r-- | src/commands.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
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 |
