refactor: Bandwidth.NetTraffic

This commit is contained in:
ChsBuffer
2020-10-29 13:44:30 +08:00
parent c04b8f6ffd
commit 9b3f5f456f
2 changed files with 30 additions and 26 deletions

View File

@@ -151,32 +151,33 @@ namespace Netch.Controllers
private static async Task<bool> StartMode(Server server, Mode mode)
{
ModeController = ModeHelper.GetModeControllerByType(mode.Type, out var port, out var portName, out var portType);
if (ModeController == null)
{
return true;
}
if (port != null)
{
PortCheckAndShowMessageBox((ushort) port, portName, portType);
UsingPorts.Add((ushort) port);
}
if (ModeController != null)
Global.MainForm.StatusText(i18N.TranslateFormat("Starting {0}", ModeController.Name));
if (await Task.Run(() => ModeController.Start(mode)))
{
Global.MainForm.StatusText(i18N.TranslateFormat("Starting {0}", ModeController.Name));
if (await Task.Run(() => ModeController.Start(mode)))
if (ModeController is Guard guard)
{
if (ModeController is Guard guard)
if (guard.Instance != null)
{
if (guard.Instance != null)
{
ChildProcessTracker.AddProcess(guard.Instance);
}
ChildProcessTracker.AddProcess(guard.Instance);
}
return true;
}
return false;
return true;
}
return true;
return false;
}
/// <summary>

View File

@@ -8,6 +8,7 @@ using Microsoft.Diagnostics.Tracing.Session;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.Shadowsocks;
using Netch.Servers.Socks5;
namespace Netch.Utils
{
@@ -63,26 +64,28 @@ namespace Netch.Utils
//var processList = Process.GetProcessesByName(ProcessName).Select(p => p.Id).ToHashSet();
var instances = new List<Process>();
if (server.Type.Equals("Socks5") && MainController.ModeController.Name == "HTTP")
switch (MainController.ServerController)
{
instances.Add(((HTTPController) MainController.ModeController).pPrivoxyController.Instance);
}
else if (MainController.ServerController != null)
{
switch (MainController.ServerController)
{
case SSController ssController when ssController.DllFlag:
instances.Add(Process.GetCurrentProcess());
break;
case Guard instanceController:
case null:
break;
case SSController ssController when ssController.DllFlag:
instances.Add(Process.GetCurrentProcess());
break;
case Guard instanceController:
if (instanceController.Instance != null)
instances.Add(instanceController.Instance);
break;
}
break;
}
else if (MainController.ModeController != null)
if (!instances.Any())
{
switch (MainController.ModeController)
{
case null:
break;
case HTTPController httpController:
instances.Add(httpController.pPrivoxyController.Instance);
break;
case NFController _:
instances.Add(Process.GetCurrentProcess());
break;