diff options
author | kali <kali@katsi> | 2014-07-27 19:00:37 -0500 |
---|---|---|
committer | kali <kali@katsi> | 2014-08-01 15:40:04 -0500 |
commit | 3b469a2c006381ba9e56c1de92be4e87ad67e51b (patch) | |
tree | c3f52f9b7f19f1e0f9b176fe935a9e6e31324e2f /src/leap/bitmask/services/eip/vpnprocess.py | |
parent | 3b02e227cfa48074739eb4f6634a436e65923b61 (diff) |
Add cancel button for EIP connection.
Closes: #4035
This falls in the "quick" workaround category.
A proper state machine that extends the four basic connection states
is hence needed. We have to accomodate design to have a
connection-oriented state machine in the backend (I would favor a
twisted protocol for this), and a more lightweight one that conducts
the gui-level changes (ie, change the actions / buttons / labels
accordingly).
Since this "cancel" functionality has been long postponed, I chose
to do one more ugly hack here, that is, show and hide dance with a
button that just calls the bitmask-root to kill the vpn process. It
should work well enough until we get to the reorganization needed for a
clean process control for eip.
Diffstat (limited to 'src/leap/bitmask/services/eip/vpnprocess.py')
-rw-r--r-- | src/leap/bitmask/services/eip/vpnprocess.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/leap/bitmask/services/eip/vpnprocess.py b/src/leap/bitmask/services/eip/vpnprocess.py index d1a3fdaa..c6a7b98b 100644 --- a/src/leap/bitmask/services/eip/vpnprocess.py +++ b/src/leap/bitmask/services/eip/vpnprocess.py @@ -263,6 +263,18 @@ class VPN(object): BM_ROOT, "firewall", "stop"]) return True if exitCode is 0 else False + def bitmask_root_vpn_down(self): + """ + Bring openvpn down using the privileged wrapper. + """ + if IS_MAC: + # We don't support Mac so far + return True + BM_ROOT = force_eval(linuxvpnlauncher.LinuxVPNLauncher.BITMASK_ROOT) + exitCode = subprocess.call(["pkexec", + BM_ROOT, "openvpn", "stop"]) + return True if exitCode is 0 else False + def _kill_if_left_alive(self, tries=0): """ Check if the process is still alive, and send a |