summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2017-09-10 22:10:31 +0200
committerKali Kaneko <kali@leap.se>2017-09-10 22:11:41 +0200
commit8f18e8a0fa96987de25d784f0df6c1066eee104e (patch)
tree63742201c4309a04f6c0058c9fcb4c53052d1d01
parent7953bd1844235bf12ab82c030194c7a78c2b3b28 (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.
-rw-r--r--src/leap/bitmask/core/dispatcher.py10
-rw-r--r--src/leap/bitmask/vpn/tunnel.py3
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):