]> code.delx.au - offlineimap/commitdiff
Re-scan list of remote folders on each sync
authorJohn Goerzen <jgoerzen@complete.org>
Fri, 6 Jul 2007 16:46:29 +0000 (17:46 +0100)
committerJohn Goerzen <jgoerzen@complete.org>
Fri, 6 Jul 2007 16:46:29 +0000 (17:46 +0100)
rather than just up-front.

fixes deb#396772

offlineimap/accounts.py
offlineimap/repository/Base.py
offlineimap/repository/IMAP.py

index 0047e1f4e6d80984eb079096c236f4c03b70e885..d05928c561b990f153dfb30db59b8febc77cbeec 100644 (file)
@@ -146,6 +146,8 @@ class AccountSynchronizationMixin:
                 folderthreads.append(thread)
             threadutil.threadsreset(folderthreads)
             mbnames.write()
+            localrepos.forgetfolders()
+            remoterepos.forgetfolders()
             localrepos.holdordropconnections()
             remoterepos.holdordropconnections()
         finally:
index 5c976c79bee799e42164eab5d97576fea16a5018..a6c62cd5f70d71477480c2c5930d3e204402c99c 100644 (file)
@@ -106,6 +106,11 @@ class BaseRepository(CustomConfig.ConfigHelperMixin):
         """Returns a list of ALL folders on this server."""
         return []
 
+    def forgetfolders(self):
+        """Forgets the cached list of folders, if any.  Useful to run
+        after a sync run."""
+        pass
+
     def getsep(self):
         raise NotImplementedError
 
index 6bde06e9a70e24e3f3789f48b05956b132cc3c8c..388535859c00084d8aeef04317e1e07cc378abf2 100644 (file)
@@ -160,6 +160,9 @@ class IMAPRepository(BaseRepository):
         imapobj = self.imapserver.acquireconnection()
         self.imapserver.releaseconnection(imapobj)
 
+    def forgetfolders(self):
+        self.folders = None
+
     def getfolders(self):
         if self.folders != None:
             return self.folders