diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 19 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/statemachines.py | 16 | ||||
| -rw-r--r-- | src/leap/bitmask/services/connections.py | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/connection.py | 1 | 
4 files changed, 26 insertions, 11 deletions
| diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index cdf76f6e..e74258a8 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1531,7 +1531,9 @@ class MainWindow(QtGui.QMainWindow):          # TODO we should have a way of parsing the latest lines in the vpn          # log buffer so we can have a more precise idea of which type          # of error did we have (server side, local problem, etc) -        abnormal = True + +        qtsigs = self._eip_connection.qtsigs +        signal = qtsigs.disconnected_signal          # XXX check if these exitCodes are pkexec/cocoasudo specific          if exitCode in (126, 127): @@ -1540,28 +1542,25 @@ class MainWindow(QtGui.QMainWindow):                          "because you did not authenticate properly."),                  error=True)              self._vpn.killit() +            signal = qtsigs.connection_aborted_signal +          elif exitCode != 0 or not self.user_stopped_eip:              self._status_panel.set_global_status(                  self.tr("Encrypted Internet finished in an "                          "unexpected manner!"), error=True) -        else: -            abnormal = False +            signal = qtsigs.connection_died_signal +          if exitCode == 0 and IS_MAC:              # XXX remove this warning after I fix cocoasudo.              logger.warning("The above exit code MIGHT BE WRONG.") -        # We emit signals to trigger transitions in the state machine: -        qtsigs = self._eip_connection.qtsigs -        if abnormal: -            signal = qtsigs.connection_died_signal -        else: -            signal = qtsigs.disconnected_signal -          # XXX verify that the logic kees the same w/o the abnormal flag          # after the refactor to EIPConnection has been completed          # (eipconductor taking the most of the logic under transitions          # that right now are handled under status_panel)          #self._stop_eip(abnormal) + +        # We emit signals to trigger transitions in the state machine:          signal.emit()      def _on_raise_window_event(self, req): diff --git a/src/leap/bitmask/gui/statemachines.py b/src/leap/bitmask/gui/statemachines.py index c3dd5ed3..94726720 100644 --- a/src/leap/bitmask/gui/statemachines.py +++ b/src/leap/bitmask/gui/statemachines.py @@ -128,11 +128,25 @@ class ConnectionMachineBuilder(object):              states[_OFF])          # * If we receive the connection_died, we transition -        #   to the off state +        #   from on directly to the off state          states[_ON].addTransition(              conn.qtsigs.connection_died_signal,              states[_OFF]) +        # * If we receive the connection_aborted, we transition +        #   from connecting to the off state +        states[_CON].addTransition( +            conn.qtsigs.connection_aborted_signal, +            states[_OFF]) +        # * Connection died can in some cases also be +        #   triggered while we are in CONNECTING +        #   state. I should be avoided, since connection_aborted +        #   is clearer (and reserve connection_died +        #   for transitions from on->off +        states[_CON].addTransition( +            conn.qtsigs.connection_died_signal, +            states[_OFF]) +          # adding states to the machine          for state in states.itervalues():              machine.addState(state) diff --git a/src/leap/bitmask/services/connections.py b/src/leap/bitmask/services/connections.py index f3ab9e8e..8aeb4e0c 100644 --- a/src/leap/bitmask/services/connections.py +++ b/src/leap/bitmask/services/connections.py @@ -103,6 +103,7 @@ class AbstractLEAPConnection(object):      # Bypass stages      connection_died_signal = None +    connection_aborted_signal = None      class Disconnected(State):          """Disconnected state""" diff --git a/src/leap/bitmask/services/eip/connection.py b/src/leap/bitmask/services/eip/connection.py index 5f05ba07..08b29070 100644 --- a/src/leap/bitmask/services/eip/connection.py +++ b/src/leap/bitmask/services/eip/connection.py @@ -40,6 +40,7 @@ class EIPConnectionSignals(QtCore.QObject):      disconnected_signal = QtCore.Signal()      connection_died_signal = QtCore.Signal() +    connection_aborted_signal = QtCore.Signal()  class EIPConnection(AbstractLEAPConnection): | 
