From 841a20cbd4049598ce98d967a9500d6903ce0f37 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Wed, 2 Nov 2022 19:18:31 +0800 Subject: [PATCH] fix naiveproxy redirect output issue --- v2rayN/v2rayN/Handler/LazyConfig.cs | 30 ++++++++++++++++++--------- v2rayN/v2rayN/Handler/V2rayHandler.cs | 29 +++++++++++++++----------- v2rayN/v2rayN/Mode/CoreInfo.cs | 4 +++- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/v2rayN/v2rayN/Handler/LazyConfig.cs b/v2rayN/v2rayN/Handler/LazyConfig.cs index eb5ae6b9..2a89f526 100644 --- a/v2rayN/v2rayN/Handler/LazyConfig.cs +++ b/v2rayN/v2rayN/Handler/LazyConfig.cs @@ -87,7 +87,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", coreDownloadUrl64 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", match = "V2Ray", - versionArg = "-version" + versionArg = "-version", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -100,7 +101,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", coreDownloadUrl64 = Global.SagerNetCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", match = "V2Ray", - versionArg = "version" + versionArg = "version", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -113,7 +115,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", coreDownloadUrl64 = Global.v2flyCoreUrl + "/download/{0}/v2ray-windows-{1}.zip", match = "V2Ray", - versionArg = "version" + versionArg = "version", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -126,7 +129,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", coreDownloadUrl64 = Global.xrayCoreUrl + "/download/{0}/Xray-windows-{1}.zip", match = "Xray", - versionArg = "-version" + versionArg = "-version", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -139,7 +143,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.clashCoreUrl + "/download/{0}/clash-windows-386-{0}.zip", coreDownloadUrl64 = Global.clashCoreUrl + "/download/{0}/clash-windows-amd64-{0}.zip", match = "v", - versionArg = "-v" + versionArg = "-v", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -152,7 +157,8 @@ namespace v2rayN.Handler coreDownloadUrl32 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-386-{0}.zip", coreDownloadUrl64 = Global.clashMetaCoreUrl + "/download/{0}/Clash.Meta-windows-amd64-compatible-{0}.zip", match = "v", - versionArg = "-v" + versionArg = "-v", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -164,6 +170,7 @@ namespace v2rayN.Handler coreReleaseApiUrl = Global.hysteriaCoreUrl.Replace(@"https://github.com", @"https://api.github.com/repos"), coreDownloadUrl32 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-windows-386.exe", coreDownloadUrl64 = Global.hysteriaCoreUrl + "/download/{0}/hysteria-windows-amd64.exe", + redirectInfo = true, }); coreInfos.Add(new CoreInfo @@ -171,7 +178,8 @@ namespace v2rayN.Handler coreType = ECoreType.naiveproxy, coreExes = new List { "naiveproxy", "naive" }, arguments = "config.json", - coreUrl = Global.naiveproxyCoreUrl + coreUrl = Global.naiveproxyCoreUrl, + redirectInfo = false, }); coreInfos.Add(new CoreInfo @@ -179,15 +187,17 @@ namespace v2rayN.Handler coreType = ECoreType.tuic, coreExes = new List { "tuic-client", "tuic" }, arguments = "-c config.json", - coreUrl = Global.tuicCoreUrl + coreUrl = Global.tuicCoreUrl, + redirectInfo = true, }); - + coreInfos.Add(new CoreInfo { coreType = ECoreType.sing_box, coreExes = new List { "sing-box-client", "sing-box" }, arguments = "run", - coreUrl = Global.singboxCoreUrl + coreUrl = Global.singboxCoreUrl, + redirectInfo = true, }); } diff --git a/v2rayN/v2rayN/Handler/V2rayHandler.cs b/v2rayN/v2rayN/Handler/V2rayHandler.cs index 2e9bcc6e..1760cf65 100644 --- a/v2rayN/v2rayN/Handler/V2rayHandler.cs +++ b/v2rayN/v2rayN/Handler/V2rayHandler.cs @@ -212,24 +212,29 @@ namespace v2rayN.Handler Arguments = coreInfo.arguments, WorkingDirectory = Utils.StartupPath(), UseShellExecute = false, - RedirectStandardOutput = true, - RedirectStandardError = true, + RedirectStandardOutput = coreInfo.redirectInfo, + RedirectStandardError = coreInfo.redirectInfo, CreateNoWindow = true, - StandardOutputEncoding = Encoding.UTF8, - StandardErrorEncoding = Encoding.UTF8 + StandardOutputEncoding = coreInfo.redirectInfo ? Encoding.UTF8 : null, + StandardErrorEncoding = coreInfo.redirectInfo ? Encoding.UTF8 : null, } }; - p.OutputDataReceived += (sender, e) => + if (coreInfo.redirectInfo) { - if (!String.IsNullOrEmpty(e.Data)) + p.OutputDataReceived += (sender, e) => { - string msg = e.Data + Environment.NewLine; - ShowMsg(false, msg); - } - }; + if (!String.IsNullOrEmpty(e.Data)) + { + string msg = e.Data + Environment.NewLine; + ShowMsg(false, msg); + } + }; + } p.Start(); - p.PriorityClass = ProcessPriorityClass.High; - p.BeginOutputReadLine(); + if (coreInfo.redirectInfo) + { + p.BeginOutputReadLine(); + } _process = p; if (p.WaitForExit(1000)) diff --git a/v2rayN/v2rayN/Mode/CoreInfo.cs b/v2rayN/v2rayN/Mode/CoreInfo.cs index 29a9d756..784ca607 100644 --- a/v2rayN/v2rayN/Mode/CoreInfo.cs +++ b/v2rayN/v2rayN/Mode/CoreInfo.cs @@ -22,6 +22,8 @@ namespace v2rayN.Mode public string match { get; set; } public string versionArg { get; set; } - + + public bool redirectInfo { get; set; } + } }