diff options
Diffstat (limited to 'src/leap/bitmask')
-rw-r--r-- | src/leap/bitmask/core/dispatcher.py | 10 | ||||
-rw-r--r-- | src/leap/bitmask/vpn/tunnel.py | 3 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py index 363594ca..91168d87 100644 --- a/src/leap/bitmask/core/dispatcher.py +++ b/src/leap/bitmask/core/dispatcher.py @@ -186,8 +186,8 @@ class VPNCmd(SubCommand): @register_method('dict') def do_STATUS(self, vpn, *parts): - d = vpn.do_status() - return d + result = vpn.do_status() + return result @register_method('dict') def do_START(self, vpn, *parts): @@ -570,7 +570,11 @@ class CommandDispatcher(object): def _format_result(result): - return json.dumps({'error': None, 'result': result}) + if isinstance(result, dict) and result.get('error'): + error = result['error'] + else: + error = None + return json.dumps({'error': error, 'result': result}) def _format_error(failure): diff --git a/src/leap/bitmask/vpn/tunnel.py b/src/leap/bitmask/vpn/tunnel.py index 64796e9c..b49135df 100644 --- a/src/leap/bitmask/vpn/tunnel.py +++ b/src/leap/bitmask/vpn/tunnel.py @@ -118,8 +118,9 @@ class ConfiguredTunnel(object): running = yield self.__start_spawn_proc(vpnproc, cmd) vpnproc.pid = running.pid defer.returnValue(True) - except Exception: + except Exception as exc: self._vpnproc.failed = True + self._vpnproc.errmsg = exc.message raise def __start_pre_up(self, proc): |