1
0
mirror of https://github.com/moparisthebest/k-9 synced 2024-11-27 11:42:16 -05:00

Change POP3 error response detection

Instead of interpreting a "-" at the beginning of a line as
an error response, consider the absence of a "+" at the
beginning of a line as an error response.

This is what Thunderbird does.

http://hg.mozilla.org/releases/comm-esr24/file/55e96a433bd1/mailnews/local/src/nsPop3Protocol.cpp#l1177

The problem arises with godaddy servers spewing additional
lines of data upon login failure.  The login was being
interpreted as successful, and a STAT commanded was subsequently
being sent, resulting in a dialog saying 'Cannot connect to
server. (Invalid int: "auth_error:")'.

$ openssl s_client -quiet -crlf -connect pop.secureserver.net:995
...
+OK <24984.1394317012@pop.secureserver.net>
user testuser
+OK
pass testpass
testuser not found in the auth database
warning: auth_error: authorization failed (no such object)
-ERR authorization failed  Check your server settings.
This commit is contained in:
Joe Steele 2014-03-08 18:41:43 -05:00
parent dc920b8641
commit 01d2247ffd

View File

@ -1113,7 +1113,7 @@ public class Pop3Store extends Store {
}
String response = readLine();
if (response.length() > 1 && response.charAt(0) == '-') {
if (response.length() == 0 || response.charAt(0) != '+') {
throw new Pop3ErrorResponse(response);
}