modules/sasl, modules/route_replies: interpret messages as intended even if they have prefix tags

This commit is contained in:
Daniel Barnes
2015-12-21 11:52:22 -07:00
parent e210ade2ef
commit d4c299049e
2 changed files with 21 additions and 16 deletions
+14 -9
View File
@@ -212,17 +212,23 @@ class CSASLMod : public CModule {
}
}
EModRet OnRaw(CString& sLine) override {
if (sLine.Token(0).Equals("AUTHENTICATE")) {
Authenticate(sLine.Token(1, true));
} else if (sLine.Token(1).Equals("903")) {
EModRet OnRawMessage(CMessage& msg) override {
if (msg.GetCommand().Equals("AUTHENTICATE")) {
Authenticate(msg.GetParam(0));
return HALT;
}
return CONTINUE;
}
EModRet OnNumericMessage(CNumericMessage& msg) override {
if (msg.GetCode() == 903) {
/* SASL success! */
GetNetwork()->GetIRCSock()->ResumeCap();
m_bAuthenticated = true;
DEBUG("sasl: Authenticated with mechanism ["
<< m_Mechanisms.GetCurrent() << "]");
} else if (sLine.Token(1).Equals("904") ||
sLine.Token(1).Equals("905")) {
} else if (msg.GetCode() == 904 ||
msg.GetCode() == 905) {
DEBUG("sasl: Mechanism [" << m_Mechanisms.GetCurrent()
<< "] failed.");
PutModule(m_Mechanisms.GetCurrent() + " mechanism failed.");
@@ -234,18 +240,17 @@ class CSASLMod : public CModule {
CheckRequireAuth();
GetNetwork()->GetIRCSock()->ResumeCap();
}
} else if (sLine.Token(1).Equals("906")) {
} else if (msg.GetCode() == 906) {
/* CAP wasn't paused? */
DEBUG("sasl: Reached 906.");
CheckRequireAuth();
} else if (sLine.Token(1).Equals("907")) {
} else if (msg.GetCode() == 907) {
m_bAuthenticated = true;
GetNetwork()->GetIRCSock()->ResumeCap();
DEBUG("sasl: Received 907 -- We are already registered");
} else {
return CONTINUE;
}
return HALT;
}