diff options
author | Alexander Karimov <a.karimov@corp.mail.ru> | 2016-02-04 17:26:26 +0300 |
---|---|---|
committer | Alexander Karimov <a.karimov@corp.mail.ru> | 2016-02-04 17:26:26 +0300 |
commit | ded5852c347a9ea669022b6d2a49b6968cbe6fd9 (patch) | |
tree | db359165915ec89c33f39457922f9a27e8371bc2 /src/async | |
parent | d8e239a6c25e5e8f46af1cd4ea8b4d4c14ddd35b (diff) |
MCIMAPCapabilityOperation takes into account cached capabilities values
Diffstat (limited to 'src/async')
-rw-r--r-- | src/async/imap/MCIMAPCapabilityOperation.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/async/imap/MCIMAPCapabilityOperation.cpp b/src/async/imap/MCIMAPCapabilityOperation.cpp index 9edb9b1c..9cd7becb 100644 --- a/src/async/imap/MCIMAPCapabilityOperation.cpp +++ b/src/async/imap/MCIMAPCapabilityOperation.cpp @@ -30,13 +30,16 @@ IndexSet * IMAPCapabilityOperation::capabilities() void IMAPCapabilityOperation::main() { - ErrorCode error; - session()->session()->loginIfNeeded(&error); - if (error != ErrorNone) { - setError(error); - return; + ErrorCode error = ErrorNone; + mCapabilities = session()->session()->storedCapabilities(); + if (mCapabilities == NULL) { + session()->session()->loginIfNeeded(&error); + if (error != ErrorNone) { + setError(error); + return; + } + mCapabilities = session()->session()->capability(&error); } - mCapabilities = session()->session()->capability(&error); MC_SAFE_RETAIN(mCapabilities); setError(error); } |