summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/services/eip/conductor.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/services/eip/conductor.py')
-rw-r--r--src/leap/bitmask/services/eip/conductor.py27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/leap/bitmask/services/eip/conductor.py b/src/leap/bitmask/services/eip/conductor.py
index 53b1fde9..3c031952 100644
--- a/src/leap/bitmask/services/eip/conductor.py
+++ b/src/leap/bitmask/services/eip/conductor.py
@@ -114,6 +114,12 @@ class EIPConductor(object):
"""
self.qtsigs.do_connect_signal.emit()
+ def tear_fw_down(self):
+ """
+ Tear the firewall down.
+ """
+ self._backend.tear_fw_down()
+
@QtCore.Slot()
def _start_eip(self):
"""
@@ -130,6 +136,7 @@ class EIPConductor(object):
else:
self._eip_status.eip_pre_up()
self.user_stopped_eip = False
+ self._eip_status.hide_fw_down_button()
# Until we set an option in the preferences window, we'll assume that
# by default we try to autostart. If we switch it off manually, it
@@ -138,7 +145,19 @@ class EIPConductor(object):
self._eip_status.is_restart = False
# DO the backend call!
- self._backend.eip_start()
+ self._backend.eip_start(restart=is_restart)
+
+ def reconnect_stop_signal(self):
+ """
+ Restore the original behaviour associated with the disconnecting
+ signal, this is, trigger a normal stop, and not a restart one.
+ """
+
+ def do_stop(*args):
+ self._stop_eip(restart=False)
+
+ self.qtsigs.disconnecting_signal.disconnect()
+ self.qtsigs.disconnecting_signal.connect(do_stop)
@QtCore.Slot()
def _stop_eip(self, restart=False, failed=False):
@@ -178,10 +197,6 @@ class EIPConductor(object):
def do_stop(*args):
self._stop_eip(restart=False)
- def reconnect_stop_signal():
- self.qtsigs.disconnecting_signal.disconnect()
- self.qtsigs.disconnecting_signal.connect(do_stop)
-
if restart:
# we bypass the on_eip_disconnected here
plug_restart_on_disconnected()
@@ -209,7 +224,7 @@ class EIPConductor(object):
# XXX needed?
if restart:
- QtDelayedCall(3000, reconnect_stop_signal)
+ QtDelayedCall(2000, self.reconnect_stop_signal)
@QtCore.Slot()
def _do_eip_restart(self):