public IVpnConnection GetVpnConnection(IComponentContext c) { ILogger logger = c.Resolve <ILogger>(); OpenVpnConfig config = c.Resolve <OpenVpnConfig>(); ITaskQueue taskQueue = c.Resolve <ITaskQueue>(); TcpPortScanner tcpPortScanner = c.Resolve <TcpPortScanner>(); tcpPortScanner.Config(config.OpenVpnStaticKey); IEndpointScanner endpointScanner = c.Resolve <VpnEndpointScanner>(); VpnEndpointCandidates candidates = new(); return(new LoggingWrapper( logger, new ReconnectingWrapper( logger, candidates, endpointScanner, new HandlingRequestsWrapper( logger, taskQueue, new BestPortWrapper( logger, taskQueue, endpointScanner, new QueueingEventsWrapper( taskQueue, new VpnProtocolWrapper(GetOpenVpnConnection(c), GetWireguardConnection(c)))))))); }
public VpnEndpointScanner( ILogger logger, ITaskQueue taskQueue, TcpPortScanner tcpPortScanner, UdpPingClient udpPingClient) { _logger = logger; _taskQueue = taskQueue; _tcpPortScanner = tcpPortScanner; _udpPingClient = udpPingClient; }