diff options
Diffstat (limited to 'src/leap')
-rw-r--r-- | src/leap/bitmask/cli/vpn.py | 6 | ||||
-rw-r--r-- | src/leap/bitmask/core/dispatcher.py | 3 | ||||
-rw-r--r-- | src/leap/bitmask/vpn/service.py | 9 |
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: |