summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 1c7ad3b..219cac1 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 ccb17db..ba000d4 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 5ab1e97..6586a4f 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: