From d18de54f1fe00c0f7cfa3be64faed9863e248231 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Thu, 29 Jun 2017 12:39:59 +0200 Subject: [refactor] move TunnelManager duties to VPNService VPNService has knowledge of the tunnel and the firewall and controls them separately. Also exceptions from VPNControl are handled locally instead of being propagated. - Resolves: #8976 - Related: #8942 --- src/leap/bitmask/vpn/_control.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/leap/bitmask/vpn/_control.py') diff --git a/src/leap/bitmask/vpn/_control.py b/src/leap/bitmask/vpn/_control.py index a57c6e4..7f80f40 100644 --- a/src/leap/bitmask/vpn/_control.py +++ b/src/leap/bitmask/vpn/_control.py @@ -66,17 +66,23 @@ class VPNControl(object): vpnproc.preUp() except Exception as e: self.log.error('Error on vpn pre-up {0!r}'.format(e)) - raise + return False try: cmd = vpnproc.getCommand() except Exception as e: self.log.error( 'Error while getting vpn command... {0!r}'.format(e)) - raise + return False env = os.environ - runningproc = reactor.spawnProcess(vpnproc, cmd[0], cmd, env) + try: + runningproc = reactor.spawnProcess(vpnproc, cmd[0], cmd, env) + except Exception as e: + self.log.error( + 'Error while spwanning vpn process... {0!r}'.format(e)) + return False + vpnproc.pid = runningproc.pid self._vpnproc = vpnproc -- cgit v1.2.3