From 40d8093e0ac72069ecfbba0d8c3be98b56899ce3 Mon Sep 17 00:00:00 2001 From: ChsBuffer <33744752+chsbuffer@users.noreply.github.com> Date: Fri, 12 Nov 2021 19:39:32 +0800 Subject: [PATCH] Refactor PcapController arguments --- Netch/Controllers/PcapController.cs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Netch/Controllers/PcapController.cs b/Netch/Controllers/PcapController.cs index c610db12..ae1c28f2 100644 --- a/Netch/Controllers/PcapController.cs +++ b/Netch/Controllers/PcapController.cs @@ -43,14 +43,21 @@ namespace Netch.Controllers var outboundNetworkInterface = NetworkInterfaceUtils.GetBest(); - var argument = new StringBuilder($@"-i \Device\NPF_{outboundNetworkInterface.Id}"); - if (!_server.Auth()) - argument.Append($" --destination {await _server.AutoResolveHostnameAsync()}:{_server.Port}"); - else - throw new InvalidOperationException(); + var arguments = new List + { + "--interface", $@"\Device\NPF_{outboundNetworkInterface.Id}", + "--destination", $"{await _server.AutoResolveHostnameAsync()}:{_server.Port}", + _mode.Argument, SpecialArgument.Flag + }; - argument.Append($" {_mode.Argument}"); - await StartGuardAsync(argument.ToString()); + if (_server.Auth()) + arguments.AddRange(new[] + { + "--username", server.Username, + "--password", server.Password + }); + + await StartGuardAsync(Arguments.Format(arguments)); } public override async Task StopAsync()