* commit '461d3e749a32a946bfef1ea567dac04fcbaa12b7': Fix handling AOL's login rejection
This commit is contained in:
commit
d82ae435ec
@ -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