File tree Expand file tree Collapse file tree 3 files changed +23
-7
lines changed
Expand file tree Collapse file tree 3 files changed +23
-7
lines changed Original file line number Diff line number Diff line change @@ -30,13 +30,16 @@ IndexSet * IMAPCapabilityOperation::capabilities()
3030
3131void IMAPCapabilityOperation::main ()
3232{
33- ErrorCode error;
34- session ()->session ()->loginIfNeeded (&error);
35- if (error != ErrorNone) {
36- setError (error);
37- return ;
33+ ErrorCode error = ErrorNone;
34+ mCapabilities = session ()->session ()->storedCapabilities ();
35+ if (mCapabilities == NULL ) {
36+ session ()->session ()->loginIfNeeded (&error);
37+ if (error != ErrorNone) {
38+ setError (error);
39+ return ;
40+ }
41+ mCapabilities = session ()->session ()->capability (&error);
3842 }
39- mCapabilities = session ()->session ()->capability (&error);
4043 MC_SAFE_RETAIN (mCapabilities );
4144 setError (error);
4245}
Original file line number Diff line number Diff line change @@ -3749,6 +3749,18 @@ void IMAPSession::capabilitySetWithSessionState(IndexSet * capabilities)
37493749 applyCapabilities (capabilities);
37503750}
37513751
3752+ IndexSet * IMAPSession::storedCapabilities () {
3753+ if (mImap == NULL ||
3754+ mImap ->imap_connection_info == NULL ||
3755+ mImap ->imap_connection_info ->imap_capability == NULL ) {
3756+ return NULL ;
3757+ }
3758+ IndexSet *result = new IndexSet ();
3759+ capabilitySetWithSessionState (result);
3760+ result->autorelease ();
3761+ return result;
3762+ }
3763+
37523764void IMAPSession::applyCapabilities (IndexSet * capabilities)
37533765{
37543766 if (capabilities->containsIndex (IMAPCapabilityId)) {
Original file line number Diff line number Diff line change @@ -176,7 +176,7 @@ namespace mailcore {
176176 virtual bool isXOAuthEnabled ();
177177 virtual bool isNamespaceEnabled ();
178178 virtual bool isCompressionEnabled ();
179- virtual bool allowsNewPermanentFlags ();
179+ virtual bool allowsNewPermanentFlags ();
180180
181181 virtual String * gmailUserDisplayName () DEPRECATED_ATTRIBUTE;
182182
@@ -210,6 +210,7 @@ namespace mailcore {
210210 virtual bool isAutomaticConfigurationDone ();
211211 virtual void resetAutomaticConfigurationDone ();
212212 virtual void applyCapabilities (IndexSet * capabilities);
213+ virtual IndexSet * storedCapabilities ();
213214
214215 private:
215216 String * mHostname ;
You can’t perform that action at this time.
0 commit comments