summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2015-10-12 13:58:02 +0200
committerFolker Bernitt <fbernitt@thoughtworks.com>2015-10-12 13:58:02 +0200
commit87892a34544c3fee446288e0d52f30c774187bc7 (patch)
tree2c8d217aa9f69522abda0b79298a4e2009bf5b57 /service
parent048418454631066426e53078740c009e729fd8ae (diff)
Move SOLEDAD_INVALID_AUTH_TOKEN listner to outermost user agent start
- Issue #485 - Problem was that register starts ZMQ without a session every time soledad is used - This reverts commit 36b9261f609901b83da4f8915640eb6043530f01
Diffstat (limited to 'service')
-rw-r--r--service/pixelated/application.py10
-rw-r--r--service/pixelated/bitmask_libraries/soledad.py6
-rw-r--r--service/test/unit/bitmask_libraries/test_soledad.py17
3 files changed, 10 insertions, 23 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index 1194a1a8..8502d5d1 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -28,6 +28,11 @@ from pixelated.config.site import PixelatedSite
from pixelated.resources.loading_page import LoadingResource
from pixelated.resources.root_resource import RootResource
+from leap.common.events import (
+ register,
+ catalog as events
+)
+
@defer.inlineCallbacks
def start_user_agent(loading_app, host, port, sslkey, sslcert, leap_home, leap_session):
@@ -95,6 +100,11 @@ def initialize():
failure.printTraceback()
reactor.stop()
+ def _register_shutdown_on_token_expire(leap_session):
+ register(events.SOLEDAD_INVALID_AUTH_TOKEN, lambda _: reactor.stop())
+ return leap_session
+
+ deferred.add_callback(_register_shutdown_on_token_expire)
deferred.addErrback(_quit_on_error)
reactor.run()
diff --git a/service/pixelated/bitmask_libraries/soledad.py b/service/pixelated/bitmask_libraries/soledad.py
index 84f9c3a3..0546a158 100644
--- a/service/pixelated/bitmask_libraries/soledad.py
+++ b/service/pixelated/bitmask_libraries/soledad.py
@@ -16,11 +16,6 @@
import errno
import os
-from twisted.internet import reactor
-from leap.common.events import (
- register,
- catalog as events
-)
from leap.soledad.client import Soledad
from leap.soledad.common.crypto import WrongMacError, UnknownMacMethodError
from pixelated.bitmask_libraries.certs import LeapCertificate
@@ -47,7 +42,6 @@ class SoledadSessionFactory(object):
class SoledadSession(object):
def __init__(self, provider, encryption_passphrase, user_token, user_uuid):
- register(events.SOLEDAD_INVALID_AUTH_TOKEN, lambda _: reactor.stop())
self.provider = provider
self.config = provider.config
self.user_uuid = user_uuid
diff --git a/service/test/unit/bitmask_libraries/test_soledad.py b/service/test/unit/bitmask_libraries/test_soledad.py
index 2359a652..af2cfd0a 100644
--- a/service/test/unit/bitmask_libraries/test_soledad.py
+++ b/service/test/unit/bitmask_libraries/test_soledad.py
@@ -17,7 +17,6 @@ from mock import patch
from pixelated.bitmask_libraries.soledad import SoledadSession
from pixelated.bitmask_libraries.certs import LeapCertificate
from test_abstract_leap import AbstractLeapTest
-from leap.common.events import catalog as events
class SoledadSessionTest(AbstractLeapTest):
@@ -60,19 +59,3 @@ class SoledadSessionTest(AbstractLeapTest):
# then
instance.sync.assert_called_with()
-
- @patch('pixelated.bitmask_libraries.soledad.Soledad')
- @patch('leap.common.events.client')
- def test_register_token_error_handler(self, events_mock, soledad_mock):
- instance = soledad_mock.return_value
- instance.server_url = '/foo/bar'
- register_mock = events_mock.register
- register_mock.register.return_value = None
- # when
- SoledadSession(self.provider, 'any-passphrase', self.auth.token, self.auth.uuid)
-
- # then
- used_arguments = register_mock.call_args
- self.assertIsNotNone(used_arguments)
- used_arguments = used_arguments[0]
- self.assertEqual(used_arguments[0], events.SOLEDAD_INVALID_AUTH_TOKEN)