summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_sasl.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/modules/m_sasl.cpp b/src/modules/m_sasl.cpp
index fda574fb2..0bbe76838 100644
--- a/src/modules/m_sasl.cpp
+++ b/src/modules/m_sasl.cpp
@@ -30,17 +30,21 @@ class CommandAuthenticate : public Command
{
if (user->registered != REG_ALL)
{
- /* Only allow AUTHENTICATE on unregistered clients */
- std::deque<std::string> params;
- params.push_back("*");
- params.push_back("AUTHENTICATE");
- params.push_back(user->uuid);
+ /* Only act if theyve enabled CAP REQ sasl */
+ if (user->GetExt("sasl"))
+ {
+ /* Only allow AUTHENTICATE on unregistered clients */
+ std::deque<std::string> params;
+ params.push_back("*");
+ params.push_back("AUTHENTICATE");
+ params.push_back(user->uuid);
- for (int i = 0; i < pcnt; ++i)
- params.push_back(parameters[i]);
+ for (int i = 0; i < pcnt; ++i)
+ params.push_back(parameters[i]);
- Event e((char*)&params, Creator, "send_encap");
- e.Send(ServerInstance);
+ Event e((char*)&params, Creator, "send_encap");
+ e.Send(ServerInstance);
+ }
}
return CMD_FAILURE;
}