summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/core')
-rw-r--r--src/leap/bitmask/core/dispatcher.py10
-rw-r--r--src/leap/bitmask/core/mail_services.py4
2 files changed, 9 insertions, 5 deletions
diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py
index e0cc1297..3d6f6704 100644
--- a/src/leap/bitmask/core/dispatcher.py
+++ b/src/leap/bitmask/core/dispatcher.py
@@ -315,10 +315,14 @@ class KeysCmd(SubCommand):
address = parts[3]
private = False
- if parts[-1] == 'private':
- private = True
+ fetch_remote = False
+ if len(parts) > 4:
+ if parts[4] == 'private':
+ private = True
+ elif parts[4] == 'fetch':
+ fetch_remote = True
- return service.do_export(uid, address, private)
+ return service.do_export(uid, address, private, fetch_remote)
@register_method('dict')
def do_INSERT(self, service, *parts, **kw):
diff --git a/src/leap/bitmask/core/mail_services.py b/src/leap/bitmask/core/mail_services.py
index a0238279..48528d8d 100644
--- a/src/leap/bitmask/core/mail_services.py
+++ b/src/leap/bitmask/core/mail_services.py
@@ -397,13 +397,13 @@ class KeymanagerService(HookableService):
d.addCallback(lambda keys: [dict(key) for key in keys])
return d
- def do_export(self, userid, address, private=False):
+ def do_export(self, userid, address, private=False, fetch_remote=False):
km = self._container.get_instance(userid)
if km is None:
return defer.fail(ValueError("User " + userid + " has no active "
"keymanager"))
- d = km.get_key(address, private=private, fetch_remote=False)
+ d = km.get_key(address, private=private, fetch_remote=fetch_remote)
d.addCallback(lambda key: dict(key))
return d