diff options
| -rw-r--r-- | changes/bug_properly_logout | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/crypto/srpauth.py | 7 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 3 | ||||
| -rw-r--r-- | src/leap/bitmask/services/soledad/soledadbootstrapper.py | 3 | 
4 files changed, 11 insertions, 3 deletions
| diff --git a/changes/bug_properly_logout b/changes/bug_properly_logout new file mode 100644 index 00000000..a5d0d972 --- /dev/null +++ b/changes/bug_properly_logout @@ -0,0 +1 @@ +  o Use DELETE /1/logout to properly logout. Fixes #3510.
\ No newline at end of file diff --git a/src/leap/bitmask/crypto/srpauth.py b/src/leap/bitmask/crypto/srpauth.py index 2d34bb74..b3a305f1 100644 --- a/src/leap/bitmask/crypto/srpauth.py +++ b/src/leap/bitmask/crypto/srpauth.py @@ -478,13 +478,14 @@ class SRPAuth(QtCore.QObject):              """              logger.debug("Starting logout...") -            leap_assert(self.get_session_id(), -                        "Cannot logout an unexisting session") +            if self.get_session_id() is None: +                logger.debug("Already logged out") +                return              logout_url = "%s/%s/%s/" % (self._provider_config.get_api_uri(),                                          self._provider_config.                                          get_api_version(), -                                        "sessions") +                                        "logout")              try:                  self._session.delete(logout_url,                                       data=self.get_session_id(), diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index e84b7a7b..9b9359bd 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1343,6 +1343,9 @@ class MainWindow(QtGui.QMainWindow):          Starts the logout sequence          """ + +        self._soledad_bootstrapper.cancel_bootstrap() +          # XXX: If other defers are doing authenticated stuff, this          # might conflict with those. CHECK!          threads.deferToThread(self._srp_auth.logout) diff --git a/src/leap/bitmask/services/soledad/soledadbootstrapper.py b/src/leap/bitmask/services/soledad/soledadbootstrapper.py index a481df4e..2419fc0d 100644 --- a/src/leap/bitmask/services/soledad/soledadbootstrapper.py +++ b/src/leap/bitmask/services/soledad/soledadbootstrapper.py @@ -89,6 +89,9 @@ class SoledadBootstrapper(AbstractBootstrapper):      # retries +    def cancel_bootstrap(self): +        self._soledad_retries = self.MAX_INIT_RETRIES +      def should_retry_initialization(self):          """          Returns True if we should retry the initialization. | 
