summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 363594c..91168d8 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 64796e9..b49135d 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):