diff options
| -rw-r--r-- | src/leap/bitmask/backend.py | 6 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/eip_status.py | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 2 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/conductor.py | 4 | 
4 files changed, 12 insertions, 2 deletions
| diff --git a/src/leap/bitmask/backend.py b/src/leap/bitmask/backend.py index a18dffef..3c97c797 100644 --- a/src/leap/bitmask/backend.py +++ b/src/leap/bitmask/backend.py @@ -381,6 +381,9 @@ class EIP(object):      def _start_eip(self, restart=False):          """          Start EIP + +        :param restart: whether is is a restart. +        :type restart: bool          """          provider_config = self._provider_config          eip_config = eipconfig.EIPConfig() @@ -1742,6 +1745,9 @@ class Backend(object):              eip_state_changed -> str              eip_status_changed -> tuple of str (download, upload)              eip_vpn_launcher_exception + +        :param restart: whether is is a restart. +        :type restart: bool          """          self._call_queue.put(("eip", "start", None, restart)) diff --git a/src/leap/bitmask/gui/eip_status.py b/src/leap/bitmask/gui/eip_status.py index f03a1a1d..280ce79e 100644 --- a/src/leap/bitmask/gui/eip_status.py +++ b/src/leap/bitmask/gui/eip_status.py @@ -85,6 +85,7 @@ class EIPStatusWidget(QtGui.QWidget):          self._provider = ""          self.is_restart = False +        self.is_cold_start = True          # Action for the systray          self._eip_disabled_action = QtGui.QAction( @@ -508,6 +509,7 @@ class EIPStatusWidget(QtGui.QWidget):              # --- is this currently being sent?              self.eipconnection.qtsigs.connected_signal.emit()              self._on_eip_connected() +            self.is_cold_start = False          # XXX should lookup vpn_state map in EIPConnection          elif vpn_state == "AUTH": diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index 6d30e399..a3b81fde 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -1543,6 +1543,8 @@ class MainWindow(QtGui.QMainWindow):              should_start = self._provides_eip_and_enabled()          if should_start and not self._already_started_eip: +            if self._eip_status.is_cold_start: +                self._backend.tear_fw_down()              # XXX this should be handled by the state machine.              self._enable_eip_start_action()              self._eip_status.set_eip_status( diff --git a/src/leap/bitmask/services/eip/conductor.py b/src/leap/bitmask/services/eip/conductor.py index 4c01225f..cde53631 100644 --- a/src/leap/bitmask/services/eip/conductor.py +++ b/src/leap/bitmask/services/eip/conductor.py @@ -125,8 +125,8 @@ class EIPConductor(object):          """          Starts EIP.          """ -        # FIXME --- pass is_restart parameter to here ??? -        is_restart = self._eip_status and self._eip_status.is_restart +        st = self._eip_status +        is_restart = st and st.is_restart          def reconnect():              self.qtsigs.disconnecting_signal.connect(self._stop_eip) | 
