diff options
author | Kali Kaneko <kali@leap.se> | 2017-09-10 21:08:37 +0200 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-09-10 22:11:40 +0200 |
commit | 7953bd1844235bf12ab82c030194c7a78c2b3b28 (patch) | |
tree | 262e9b5eae5b5cc30866718f5ea1b96e497b78c6 /src/leap/bitmask/vpn/process.py | |
parent | 0331bcc09c5fb602366c93ee35c95a2e320b78bd (diff) |
[bug] avoid bogus failed status
there was an exception catched, AttributeError, that showed up as a
transient "failed" state.
- Resolves: #9044
Diffstat (limited to 'src/leap/bitmask/vpn/process.py')
-rw-r--r-- | src/leap/bitmask/vpn/process.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/leap/bitmask/vpn/process.py b/src/leap/bitmask/vpn/process.py index 93e73d97..7f33e83a 100644 --- a/src/leap/bitmask/vpn/process.py +++ b/src/leap/bitmask/vpn/process.py @@ -102,6 +102,7 @@ class _VPNProcess(protocol.ProcessProtocol): self._providerconfig = providerconfig self._launcher = get_vpn_launcher() self._restartfun = restartfun + self._status = 'off' self.restarting = True self.failed = False @@ -215,8 +216,13 @@ class _VPNProcess(protocol.ProcessProtocol): if not self.proto: return {'status': 'off', 'error': None} - status = {'status': self.proto.state.simple.lower(), - 'error': None} + try: + self._status = self.proto.state.simple.lower() + status = {'status': self._status, 'error': None} + except AttributeError: + # glitch due to proto.state transition? + status = {'status': self._status, 'error': None} + if self.proto.traffic: remote = self.proto.remote rport = self.proto.rport |