summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-07-19 02:24:43 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-08-11 17:00:25 +0200
commit9e8ca28f060362e1540deb87153fde4161d39161 (patch)
treee754ef0fa214936d838f781d4b39313cb95333f9 /service/pixelated/bitmask_libraries
parent0f09b06f1aa19f1ab867729cccdf98eca2fe0447 (diff)
fixes mail fetcher
Diffstat (limited to 'service/pixelated/bitmask_libraries')
-rw-r--r--service/pixelated/bitmask_libraries/config.py2
-rw-r--r--service/pixelated/bitmask_libraries/nicknym.py2
-rw-r--r--service/pixelated/bitmask_libraries/session.py27
-rw-r--r--service/pixelated/bitmask_libraries/soledad.py3
4 files changed, 19 insertions, 15 deletions
diff --git a/service/pixelated/bitmask_libraries/config.py b/service/pixelated/bitmask_libraries/config.py
index efb43411..c521a093 100644
--- a/service/pixelated/bitmask_libraries/config.py
+++ b/service/pixelated/bitmask_libraries/config.py
@@ -36,7 +36,6 @@ class LeapConfig(object):
def __init__(self,
leap_home=None,
- fetch_interval_in_s=30,
timeout_in_s=15,
start_background_jobs=False,
gpg_binary=discover_gpg_binary()):
@@ -45,4 +44,3 @@ class LeapConfig(object):
self.timeout_in_s = timeout_in_s
self.start_background_jobs = start_background_jobs
self.gpg_binary = gpg_binary
- self.fetch_interval_in_s = fetch_interval_in_s
diff --git a/service/pixelated/bitmask_libraries/nicknym.py b/service/pixelated/bitmask_libraries/nicknym.py
index c9db32c6..ecd928cc 100644
--- a/service/pixelated/bitmask_libraries/nicknym.py
+++ b/service/pixelated/bitmask_libraries/nicknym.py
@@ -39,7 +39,7 @@ class NickNym(object):
@defer.inlineCallbacks
def _key_exists(self, email):
try:
- yield self.keymanager.get_key(email, openpgp.OpenPGPKey)
+ yield self.keymanager.get_key(email, openpgp.OpenPGPKey, private=True, fetch_remote=False)
defer.returnValue(True)
except KeyNotFound:
defer.returnValue(False)
diff --git a/service/pixelated/bitmask_libraries/session.py b/service/pixelated/bitmask_libraries/session.py
index 60084731..d1bdac73 100644
--- a/service/pixelated/bitmask_libraries/session.py
+++ b/service/pixelated/bitmask_libraries/session.py
@@ -61,10 +61,12 @@ class LeapSession(object):
self.nicknym = nicknym
self.account = soledad_account
self.incoming_mail_fetcher = incoming_mail_fetcher
- self.nicknym.generate_openpgp_key()
+
+ d = self.sync()
+ d.addCallback(lambda _: self.nicknym.generate_openpgp_key())
if self.config.start_background_jobs:
- self.start_background_jobs()
+ d.addCallback(lambda _: self.start_background_jobs())
def account_email(self):
name = self.user_auth.username
@@ -73,7 +75,9 @@ class LeapSession(object):
def close(self):
self.stop_background_jobs()
+ @defer.inlineCallbacks
def start_background_jobs(self):
+ self.incoming_mail_fetcher = yield self.incoming_mail_fetcher
reactor.callFromThread(self.incoming_mail_fetcher.startService)
def stop_background_jobs(self):
@@ -81,7 +85,7 @@ class LeapSession(object):
def sync(self):
try:
- self.soledad_session.sync()
+ return self.soledad_session.sync()
except:
traceback.print_exc(file=sys.stderr)
raise
@@ -113,11 +117,11 @@ class LeapSessionFactory(object):
nicknym = self._create_nicknym(account_email, auth.token, auth.uuid, soledad)
account = self._create_account(account_email, soledad)
- incoming_mail_fetcher = self._create_incoming_mail_fetcher(nicknym, soledad, auth, auth.username)
+ deferred_incoming_mail_fetcher = self._create_incoming_mail_fetcher(nicknym, soledad, account, account_email)
smtp = LeapSmtp(self._provider, auth, nicknym.keymanager)
- return LeapSession(self._provider, auth, soledad, nicknym, account, incoming_mail_fetcher, smtp)
+ return LeapSession(self._provider, auth, soledad, nicknym, account, deferred_incoming_mail_fetcher, smtp)
def _lookup_session(self, key):
global SESSIONS
@@ -151,8 +155,11 @@ class LeapSessionFactory(object):
# memstore = MemoryStore(permanent_store=SoledadStore(soledad_session.soledad))
# return SoledadBackedAccount(uuid, soledad_session.soledad, memstore)
- def _create_incoming_mail_fetcher(self, nicknym, soledad_session, auth, username):
- return IncomingMail(nicknym.keymanager,
- soledad_session.soledad,
- auth.uuid,
- self._config.fetch_interval_in_s)
+ @defer.inlineCallbacks
+ def _create_incoming_mail_fetcher(self, nicknym, soledad_session, account, user_mail):
+ # FIXME Replace inbox collection by our own mailbox indexer
+ inbox = yield account.getMailbox('INBOX')
+ defer.returnValue(IncomingMail(nicknym.keymanager,
+ soledad_session.soledad,
+ inbox,
+ user_mail))
diff --git a/service/pixelated/bitmask_libraries/soledad.py b/service/pixelated/bitmask_libraries/soledad.py
index 684d7da8..0546a158 100644
--- a/service/pixelated/bitmask_libraries/soledad.py
+++ b/service/pixelated/bitmask_libraries/soledad.py
@@ -88,8 +88,7 @@ class SoledadSession(object):
raise
def sync(self):
- if self.soledad.need_sync(self.soledad.server_url):
- self.soledad.sync()
+ return self.soledad.sync()
def _discover_soledad_server(self):
try: