summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd20.cpp
diff options
context:
space:
mode:
authorDukePyrolator <DukePyrolator@anope.org>2013-02-17 12:26:51 +0100
committerDukePyrolator <DukePyrolator@anope.org>2013-02-17 12:26:51 +0100
commitbcf99d599862d8a7a6741b5f805c593fe7bf4ae0 (patch)
tree480716fcb2a7101688aa7bb1da94b634a480857f /modules/protocol/inspircd20.cpp
parent3ab6706993a50b7c65b9007ead7d13a9ce3010e6 (diff)
SASL sends AUTHFAIL on unsupported mechanisms, fixes bug #1482
Diffstat (limited to 'modules/protocol/inspircd20.cpp')
-rw-r--r--modules/protocol/inspircd20.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 32e1a76c1..c30923548 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -568,7 +568,12 @@ struct IRCDMessageEncap : IRCDMessage
base64(account\0account\0pass)
*/
if (params[4] == "S")
- UplinkSocket::Message(Me) << "ENCAP " << params[2].substr(0, 3) << " SASL " << Me->GetSID() << " " << params[2] << " C +";
+ {
+ if (params[5] == "PLAIN")
+ UplinkSocket::Message(Me) << "ENCAP " << params[2].substr(0, 3) << " SASL " << Me->GetSID() << " " << params[2] << " C +";
+ else
+ UplinkSocket::Message(Me) << "ENCAP " << params[2].substr(0, 3) << " SASL " << Me->GetSID() << " " << params[2] << " C F";
+ }
else if (params[4] == "C")
{
Anope::string decoded;