aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async
diff options
context:
space:
mode:
authorGravatar Alexander Karimov <a.karimov@corp.mail.ru>2016-02-04 17:26:26 +0300
committerGravatar Alexander Karimov <a.karimov@corp.mail.ru>2016-02-04 17:26:26 +0300
commitded5852c347a9ea669022b6d2a49b6968cbe6fd9 (patch)
treedb359165915ec89c33f39457922f9a27e8371bc2 /src/async
parentd8e239a6c25e5e8f46af1cd4ea8b4d4c14ddd35b (diff)
MCIMAPCapabilityOperation takes into account cached capabilities values
Diffstat (limited to 'src/async')
-rw-r--r--src/async/imap/MCIMAPCapabilityOperation.cpp15
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);
}