imapauth: Follow RFC more closely

The IMAP RFC allows the server to announce its capabilities before replying to
the LOGIN command. imapauth would misinterpret that as a failed login.

The fix is to only handle lines which contain the tag ("AUTH") used for the
login command.

Thanks to rlpowell for reporting that imapauth doesn't work against
imap.google.com and for testing the fix.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter authored and Kyle Fuller committed 2012-04-05 13:03:41 +01:00
1 parent 90896da6a7
commit 38b64c65ce
1 file changed
+1 -1
+1 -1
View File
@@ -134,7 +134,7 @@ void CIMAPSock::ReadLine(const CString& sLine) {
}
Write("AUTH LOGIN " + sUsername + " " + m_spAuth->GetPassword() + "\r\n");
} else {
} else if (sLine.Left(5) == "AUTH ") {
CUser* pUser = CZNC::Get().FindUser(m_spAuth->GetUsername());
if (pUser && sLine.Equals("AUTH OK", false, 7)) {