Exemple #1
0
        private async void Connect()
        {
            if (!_connectRequested)
            {
                return;
            }

            InvokeConnecting();

            if (!_serviceSettings.Ipv6LeakProtection)
            {
                _connectRequested = false;
                _origin.Connect(_servers, _config, _protocol, _credentials);
                return;
            }

            if (_ipv6Task.IsCompleted)
            {
                if (_ipv6.Enabled)
                {
                    _networkChanged = false;
                    _ipv6Task       = _ipv6.DisableAsync();
                }
                else
                {
                    _connectRequested = false;
                    _origin.Connect(_servers, _config, _protocol, _credentials);
                    return;
                }
            }

            await _ipv6Task;

            Queued(Connect);
        }
Exemple #2
0
        public void Connect(IReadOnlyList <VpnHost> servers, VpnConfig config, VpnProtocol protocol,
                            VpnCredentials credentials)
        {
            AddDefaultGateway();

            _origin.Connect(servers, config, protocol, credentials);
        }
        public Task Connect(VpnConnectionRequestContract connectionRequest)
        {
            Ensure.NotNull(connectionRequest, nameof(connectionRequest));

            _logger.Info("Connect requested");

            _serviceSettings.Apply(connectionRequest.Settings);

            var endpoints   = Map(connectionRequest.Servers);
            var protocol    = Map(connectionRequest.Protocol);
            var credentials = Map(connectionRequest.Credentials);
            var config      = Map(connectionRequest.VpnConfig);
            NetworkSettingsConfig settingsConfig = new NetworkSettingsConfig
            {
                AddDefaultGatewayForTap = !connectionRequest.Settings.PortForwardingEnabled
            };

            if (_networkSettings.ApplyNetworkSettings(settingsConfig))
            {
                _vpnConnection.Connect(
                    endpoints,
                    config,
                    protocol,
                    credentials);
            }
            else
            {
                CallbackStateChanged(new VpnState(VpnStatus.Disconnected, VpnError.NoTapAdaptersError));
            }

            return(Task.CompletedTask);
        }
Exemple #4
0
        public void Connect(IReadOnlyList <VpnHost> servers, VpnConfig config, VpnProtocol protocol,
                            VpnCredentials credentials)
        {
            ApplyNetworkSettings();

            _origin.Connect(servers, config, protocol, credentials);
        }
Exemple #5
0
        public Task Connect(VpnConnectionRequestContract connectionRequest)
        {
            Ensure.NotNull(connectionRequest, nameof(connectionRequest));

            _logger.Info("Connect requested");

            _serviceSettings.Apply(connectionRequest.Settings);

            var endpoints   = Map(connectionRequest.Servers);
            var protocol    = Map(connectionRequest.Protocol);
            var credentials = Map(connectionRequest.Credentials);
            var config      = Map(connectionRequest.VpnConfig);

            _vpnConnection.Connect(
                endpoints,
                config,
                protocol,
                credentials);

            return(Task.CompletedTask);
        }
Exemple #6
0
 public void Connect(IReadOnlyList <VpnHost> servers, VpnConfig config, VpnCredentials credentials)
 {
     _origin.Connect(servers, config, credentials);
 }