From a89efdb0d7460e55fa384657e10fb8081f7c2e88 Mon Sep 17 00:00:00 2001 From: ChsBuffer <33744752+chsbuffer@users.noreply.github.com> Date: Thu, 10 Sep 2020 17:03:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=80=E5=8C=96NTT=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=99=A8=E8=BF=94=E5=9B=9E=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Netch/Controllers/MainController.cs | 8 ++++---- Netch/Controllers/NTTController.cs | 24 +++++++++++++----------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/Netch/Controllers/MainController.cs b/Netch/Controllers/MainController.cs index 231f46ab..723f67b5 100644 --- a/Netch/Controllers/MainController.cs +++ b/Netch/Controllers/MainController.cs @@ -205,15 +205,15 @@ namespace Netch.Controllers { Global.MainForm.NatTypeStatusText(i18N.Translate("Starting NatTester")); // Thread.Sleep(1000); - var (nttResult, natType, localEnd, publicEnd) = NTTController.Start(); + var (result, localEnd, publicEnd) = NTTController.Start(); - if (nttResult) + if (!string.IsNullOrEmpty(publicEnd)) { var country = Utils.Utils.GetCityCode(publicEnd); - Global.MainForm.NatTypeStatusText(natType, country); + Global.MainForm.NatTypeStatusText(result, country); } else - Global.MainForm.NatTypeStatusText(natType); + Global.MainForm.NatTypeStatusText(result ?? "Error"); NttTested = true; }); diff --git a/Netch/Controllers/NTTController.cs b/Netch/Controllers/NTTController.cs index 57a96213..9372de4f 100644 --- a/Netch/Controllers/NTTController.cs +++ b/Netch/Controllers/NTTController.cs @@ -9,8 +9,8 @@ namespace Netch.Controllers { private string _localEnd; private string _publicEnd; - private string _natType; - private bool _nttResult; + private string _result; + private string _bindingTest; public NTTController() { @@ -22,10 +22,9 @@ namespace Netch.Controllers /// 启动 NatTypeTester /// /// - public (bool, string, string, string) Start() + public (string, string, string) Start() { - _nttResult = false; - _natType = _localEnd = _publicEnd = null; + _result = _localEnd = _publicEnd = null; try { @@ -36,7 +35,9 @@ namespace Netch.Controllers Instance.BeginOutputReadLine(); Instance.BeginErrorReadLine(); Instance.WaitForExit(); - return (_nttResult, _natType, _localEnd, _publicEnd); + if (_bindingTest == "Fail") + _result = "UdpBlocked"; + return (_result, _localEnd, _publicEnd); } catch (Exception e) { @@ -50,7 +51,7 @@ namespace Netch.Controllers // ignored } - return (false, null, null, null); + return (null, null, null); } } @@ -67,10 +68,12 @@ namespace Netch.Controllers switch (key) { case "Other address is": - case "Binding test": case "Nat mapping behavior": case "Nat filtering behavior": break; + case "Binding test": + _bindingTest = value; + break; case "Local address": _localEnd = value; break; @@ -78,11 +81,10 @@ namespace Netch.Controllers _publicEnd = value; break; case "result": - _natType = value; - _nttResult = true; + _result = value; break; default: - _natType = str.Last(); + _result = str.Last(); break; } }