From 04122fd0e1eacdcf4adb1815af53bdface04ffb5 Mon Sep 17 00:00:00 2001
From: Kali Kaneko <kali@leap.se>
Date: Sat, 11 Jan 2014 20:31:08 -0400
Subject: add offline flag

---
 mail/changes/feature_4943-offline-flag  |  1 +
 mail/src/leap/mail/imap/service/imap.py | 18 +++++++++++-------
 2 files changed, 12 insertions(+), 7 deletions(-)
 create mode 100644 mail/changes/feature_4943-offline-flag

(limited to 'mail')

diff --git a/mail/changes/feature_4943-offline-flag b/mail/changes/feature_4943-offline-flag
new file mode 100644
index 0000000..6edfd4d
--- /dev/null
+++ b/mail/changes/feature_4943-offline-flag
@@ -0,0 +1 @@
+  o Add a flag for offline mode in imap. Related to #4943
diff --git a/mail/src/leap/mail/imap/service/imap.py b/mail/src/leap/mail/imap/service/imap.py
index dfd4862..c48e5c5 100644
--- a/mail/src/leap/mail/imap/service/imap.py
+++ b/mail/src/leap/mail/imap/service/imap.py
@@ -178,6 +178,7 @@ def run_service(*args, **kwargs):
     check_period = kwargs.get('check_period', INCOMING_CHECK_PERIOD)
     userid = kwargs.get('userid', None)
     leap_check(userid is not None, "need an user id")
+    offline = kwargs.get('offline', False)
 
     uuid = soledad._get_uuid()
     factory = LeapIMAPFactory(uuid, userid, soledad)
@@ -187,12 +188,15 @@ def run_service(*args, **kwargs):
     try:
         tport = reactor.listenTCP(port, factory,
                                   interface="localhost")
-        fetcher = LeapIncomingMail(
-            keymanager,
-            soledad,
-            factory.theAccount,
-            check_period,
-            userid)
+        if not offline:
+            fetcher = LeapIncomingMail(
+                keymanager,
+                soledad,
+                factory.theAccount,
+                check_period,
+                userid)
+        else:
+            fetcher = None
     except CannotListenError:
         logger.error("IMAP Service failed to start: "
                      "cannot listen in port %s" % (port,))
@@ -200,7 +204,7 @@ def run_service(*args, **kwargs):
         logger.error("Error launching IMAP service: %r" % (exc,))
     else:
         # all good.
-        fetcher.start_loop()
+        # (the caller has still to call fetcher.start_loop)
         logger.debug("IMAP4 Server is RUNNING in port  %s" % (port,))
         leap_events.signal(IMAP_SERVICE_STARTED, str(port))
         return fetcher, tport, factory
-- 
cgit v1.2.3