summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/leap/bitmask/vpn/_control.py6
-rw-r--r--src/leap/bitmask/vpn/service.py4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/leap/bitmask/vpn/_control.py b/src/leap/bitmask/vpn/_control.py
index ac683a2..45d2f2f 100644
--- a/src/leap/bitmask/vpn/_control.py
+++ b/src/leap/bitmask/vpn/_control.py
@@ -119,11 +119,13 @@ class VPNControl(object):
# We assume that the only valid stops are initiated
# by an user action, not hard restarts
self._user_stopped = not restart
- self._vpnproc.restarting = restart
+ if self._vpnproc is not None:
+ self._vpnproc.restarting = restart
self._stop_pollers()
try:
- self._vpnproc.preDown()
+ if self._vpnproc is not None:
+ self._vpnproc.preDown()
except Exception as e:
self.log.error('Error on vpn pre-down {0!r}'.format(e))
raise
diff --git a/src/leap/bitmask/vpn/service.py b/src/leap/bitmask/vpn/service.py
index 7cd595a..704bbc7 100644
--- a/src/leap/bitmask/vpn/service.py
+++ b/src/leap/bitmask/vpn/service.py
@@ -124,9 +124,7 @@ class VPNService(HookableService):
self.log.error("Firewall: error stopping")
if not self._tunnel:
- # XXX this avoids to shutdown anything that was in process.
- # or self._tunnel.status['status'] is not 'on':
- raise Exception('VPN was not running')
+ return {'result': 'VPN was not running'}
vpn_ok = self._tunnel.stop()
if not vpn_ok: