aboutsummaryrefslogtreecommitdiffstats
path: root/src/commands.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2024-09-03 19:00:49 +0100
committerGravatar Sadie Powell2024-09-03 19:04:27 +0100
commit0617fdfb654454abae0fd8adf95fa9a05fbc88f4 (patch)
tree3efc996c51b64e3f54be109335c7de3a96c24fe2 /src/commands.cpp
parentConst correct the xline header. (diff)
downloadinspircd++-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.cpp14
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