diff options
author | Kali Kaneko <kali@leap.se> | 2017-09-10 22:10:31 +0200 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2017-09-10 22:11:41 +0200 |
commit | 8f18e8a0fa96987de25d784f0df6c1066eee104e (patch) | |
tree | 63742201c4309a04f6c0058c9fcb4c53052d1d01 /src | |
parent | 7953bd1844235bf12ab82c030194c7a78c2b3b28 (diff) |
[bug] add the error as an upper level attribute of the dict
the UI is expecting it there, not inside the result data.
we probably could delete it from the later.
Diffstat (limited to 'src')
-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): |