Fix handling AOL's login rejection
Found while investigating b/18031180 b/18049329 Change-Id: I2c86449008fb5e89c84db1a0753b8a61f42305b9
This commit is contained in:
parent
f61e098a41
commit
a2f1da2bdc
@ -344,6 +344,7 @@ class ImapConnection {
|
||||
|
||||
if (!response.isOk()) {
|
||||
final String toString = response.toString();
|
||||
final String status = response.getStatusOrEmpty().getString();
|
||||
final String alert = response.getAlertTextOrEmpty().getString();
|
||||
final String responseCode = response.getResponseCodeOrEmpty().getString();
|
||||
destroyResponses();
|
||||
@ -353,7 +354,7 @@ class ImapConnection {
|
||||
throw new MessagingException(MessagingException.SERVER_ERROR, alert);
|
||||
}
|
||||
|
||||
throw new ImapException(toString, alert, responseCode);
|
||||
throw new ImapException(toString, status, alert, responseCode);
|
||||
}
|
||||
return responses;
|
||||
}
|
||||
@ -505,12 +506,14 @@ class ImapConnection {
|
||||
LogUtils.d(Logging.LOG_TAG, ie, "ImapException");
|
||||
}
|
||||
|
||||
final String status = ie.getStatus();
|
||||
final String code = ie.getResponseCode();
|
||||
final String alertText = ie.getAlertText();
|
||||
|
||||
// if the response code indicates expired or bad credentials, throw a special exception
|
||||
if (ImapConstants.AUTHENTICATIONFAILED.equals(code) ||
|
||||
ImapConstants.EXPIRED.equals(code)) {
|
||||
ImapConstants.EXPIRED.equals(code) ||
|
||||
(ImapConstants.NO.equals(status) && TextUtils.isEmpty(code))) {
|
||||
throw new AuthenticationFailedException(alertText, ie);
|
||||
}
|
||||
|
||||
|
@ -661,15 +661,22 @@ public class ImapStore extends Store {
|
||||
static class ImapException extends MessagingException {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final String mStatus;
|
||||
private final String mAlertText;
|
||||
private final String mResponseCode;
|
||||
|
||||
public ImapException(String message, String alertText, String responseCode) {
|
||||
public ImapException(String message, String status, String alertText,
|
||||
String responseCode) {
|
||||
super(message);
|
||||
mStatus = status;
|
||||
mAlertText = alertText;
|
||||
mResponseCode = responseCode;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return mStatus;
|
||||
}
|
||||
|
||||
public String getAlertText() {
|
||||
return mAlertText;
|
||||
}
|
||||
|
@ -120,6 +120,13 @@ public class ImapResponse extends ImapList {
|
||||
return getStringOrEmpty(getElementOrNone(1).isList() ? 2 : 1);
|
||||
}
|
||||
|
||||
public ImapString getStatusOrEmpty() {
|
||||
if (!isStatusResponse()) {
|
||||
return ImapString.EMPTY;
|
||||
}
|
||||
return getStringOrEmpty(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
String tag = mTag;
|
||||
|
Loading…
Reference in New Issue
Block a user