summaryrefslogtreecommitdiff
path: root/src/leap/bitmask
diff options
context:
space:
mode:
authorRuben Pollan <meskio@sindominio.net>2017-06-02 12:33:26 +0200
committerRuben Pollan <meskio@sindominio.net>2017-06-05 20:56:28 +0200
commit4d7380dd1e868aceeebc64ed5fc1d24369999fa9 (patch)
tree8cb479b025378ec4b2b76a078a562c8aad7dcf91 /src/leap/bitmask
parentbc7dd3e575fcd5ed6ee6aa352c97741f761130aa (diff)
[feat] On bitmaskclt vpn start use the last vpn if no provider is provided
- Resolves: #8835
Diffstat (limited to 'src/leap/bitmask')
-rw-r--r--src/leap/bitmask/cli/vpn.py6
-rw-r--r--src/leap/bitmask/core/dispatcher.py3
-rw-r--r--src/leap/bitmask/vpn/service.py9
3 files changed, 11 insertions, 7 deletions
diff --git a/src/leap/bitmask/cli/vpn.py b/src/leap/bitmask/cli/vpn.py
index 1c7ad3b4..219cac17 100644
--- a/src/leap/bitmask/cli/vpn.py
+++ b/src/leap/bitmask/cli/vpn.py
@@ -54,7 +54,7 @@ SUBCOMMANDS:
help='provider to start the VPN')
subargs = parser.parse_args(raw_args)
- provider = None
+ provider = ""
if subargs.provider:
provider = subargs.provider
else:
@@ -62,9 +62,7 @@ SUBCOMMANDS:
try:
_, provider = uid.split('@')
except ValueError:
- error = ValueError("A provider is needed to start the VPN")
- error.expected = True
- raise error
+ pass
self.data += ['start', provider]
diff --git a/src/leap/bitmask/core/dispatcher.py b/src/leap/bitmask/core/dispatcher.py
index ccb17db5..ba000d43 100644
--- a/src/leap/bitmask/core/dispatcher.py
+++ b/src/leap/bitmask/core/dispatcher.py
@@ -202,8 +202,7 @@ class VPNCmd(SubCommand):
try:
provider = parts[2]
except IndexError:
- raise DispatchError(
- 'wrong number of arguments: expected 1, got none')
+ provider = None
d = vpn.start_vpn(provider)
return d
diff --git a/src/leap/bitmask/vpn/service.py b/src/leap/bitmask/vpn/service.py
index 5ab1e97e..6586a4fe 100644
--- a/src/leap/bitmask/vpn/service.py
+++ b/src/leap/bitmask/vpn/service.py
@@ -72,11 +72,18 @@ class VPNService(HookableService):
super(VPNService, self).stopService()
@defer.inlineCallbacks
- def start_vpn(self, domain):
+ def start_vpn(self, domain=None):
if self._started:
exc = Exception('VPN already started')
exc.expected = True
raise exc
+ if not domain:
+ domain = self._read_last()
+ if not domain:
+ exc = Exception("VPN can't start, a provider is need")
+ exc.expected = True
+ raise exc
+
yield self._setup(domain)
try: