예제 #1
0
        public async Task RefreshCurrentConnectAddressAsync()
        {
            var parser = new CommandResultParser {
                ListenAddress = config.ListenAddress
            };

            currentAddress = parser.GetCurrentProxyAddress(
                await processRunner.RunAsync(
                    NetshCommandFactory.Executable,
                    NetshCommandFactory.GetShowCommandArguments()).ConfigureAwait(false));
        }
예제 #2
0
        private async Task SetConnectAddressAsync(string address)
        {
            var(hostname, port) = SplitAddressAndPort(address);
            await processRunner.RunAsync(
                NetshCommandFactory.Executable,
                NetshCommandFactory.GetDeleteCommandArguments(config.ListenAddress))
            .ConfigureAwait(false);

            if (!string.IsNullOrEmpty(hostname))
            {
                await processRunner.RunAsync(
                    NetshCommandFactory.Executable,
                    NetshCommandFactory.GetAddCommandArguments(config.ListenAddress, hostname, port))
                .ConfigureAwait(false);
            }

            await RefreshCurrentConnectAddressAsync().ConfigureAwait(false);
        }