diff --git a/Netch/Controllers/MainController.cs b/Netch/Controllers/MainController.cs index f92dede8..0854bebe 100644 --- a/Netch/Controllers/MainController.cs +++ b/Netch/Controllers/MainController.cs @@ -1,12 +1,15 @@ using System; using System.Diagnostics; using System.IO; +using System.Runtime.InteropServices; using System.Threading.Tasks; namespace Netch.Controllers { public class MainController { + [DllImport("dnsapi", EntryPoint = "DnsFlushResolverCache")] + public static extern UInt32 FlushDNSResolverCache(); public static Process GetProcess() { var process = new Process(); @@ -65,6 +68,8 @@ namespace Netch.Controllers /// 是否启动成功 public bool Start(Models.Server server, Models.Mode mode) { + FlushDNSResolverCache(); + var result = false; switch (server.Type) { diff --git a/Netch/Controllers/NFController.cs b/Netch/Controllers/NFController.cs index c9d49500..4cd94fb2 100644 --- a/Netch/Controllers/NFController.cs +++ b/Netch/Controllers/NFController.cs @@ -49,9 +49,26 @@ namespace Netch.Controllers // 生成驱动文件路径 var driver = string.Format("{0}\\drivers\\netfilter2.sys", Environment.SystemDirectory); - // 检查驱动是否存在 - if (!File.Exists(driver)) + if (File.Exists(driver)) { + //为了防止小白一直问如何卸载老驱动核心,每次启动时卸载删除一次驱动,保证系统使用最新驱动核心(简单粗暴 但有效:D。增加启动成功率,驱动在被其他加速器占用的情况下可能会导致启动失败 + try + { + var service = new ServiceController("netfilter2"); + if (service.Status == ServiceControllerStatus.Running) + { + service.Stop(); + service.WaitForStatus(ServiceControllerStatus.Stopped); + } + nfapinet.NFAPI.nf_unRegisterDriver("netfilter2"); + + File.Delete(driver); + } + catch (Exception) + { + // 跳过 + } + // 生成系统版本 var version = $"{Environment.OSVersion.Version.Major.ToString()}.{Environment.OSVersion.Version.Minor.ToString()}"; @@ -94,6 +111,10 @@ namespace Netch.Controllers return false; } } + // 检查驱动是否存在 + /*if (!File.Exists(driver)) + { + }*/ try { diff --git a/Netch/Forms/MainForm.cs b/Netch/Forms/MainForm.cs index 0b4ff10b..b2beaa7b 100644 --- a/Netch/Forms/MainForm.cs +++ b/Netch/Forms/MainForm.cs @@ -488,6 +488,7 @@ namespace Netch.Forms if (Global.Settings.SubscribeLink.Count > 0) { + StatusLabel.Text = $"{Utils.i18N.Translate("Status")}{Utils.i18N.Translate(": ")}{Utils.i18N.Translate("Starting update subscription")}"; DeletePictureBox.Enabled = false; UpdateServersFromSubscribeLinksToolStripMenuItem.Enabled = false; @@ -571,6 +572,7 @@ namespace Netch.Forms NatTypeStatusLabel.Text = ""; } Utils.Configuration.Save(); + StatusLabel.Text = $"{Utils.i18N.Translate("Status")}{Utils.i18N.Translate(": ")}{Utils.i18N.Translate("Subscription updated")}"; }).ContinueWith(task => { BeginInvoke(new Action(() => diff --git a/Netch/Global.cs b/Netch/Global.cs index 56915e58..fdb05de4 100644 --- a/Netch/Global.cs +++ b/Netch/Global.cs @@ -56,6 +56,7 @@ namespace Netch "table", "rc4", "rc4-md5", + "rc4-md5-6", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", diff --git a/Netch/Resources/zh-CN b/Netch/Resources/zh-CN index 415c27b9..a0790c52 100644 --- a/Netch/Resources/zh-CN +++ b/Netch/Resources/zh-CN @@ -27,6 +27,8 @@ "Starting dns2tcp Service": "正在启动dns2tcp服务", "SetupBypass": "设置绕行规则", "Test failed": "测试失败", + "Starting update subscription": "正在更新订阅", + "Subscription updated": "订阅更新完毕", "Server": "服务器", "Import Servers From Clipboard": "从剪贴板导入服务器", diff --git a/binaries b/binaries index 4218a905..f0686ab1 160000 --- a/binaries +++ b/binaries @@ -1 +1 @@ -Subproject commit 4218a90538491dc9f41e4bdd870d9f5191bf74bc +Subproject commit f0686ab18491e3b5128749805f6a7059a8b1c524 diff --git a/modes b/modes index 8d6f98d4..b1366d48 160000 --- a/modes +++ b/modes @@ -1 +1 @@ -Subproject commit 8d6f98d43eb3e63159aaa0a3fc45ab14def1c936 +Subproject commit b1366d48be1a4517391f88eca63df96d59ec8346