From 0a8ce0f9616957213124d73281dfe6f34bed40b2 Mon Sep 17 00:00:00 2001 From: 2dust <31833384+2dust@users.noreply.github.com> Date: Thu, 6 Mar 2025 10:46:50 +0800 Subject: [PATCH] Update ProxySettingWindows.cs AI-optimized code --- .../Handler/SysProxy/ProxySettingWindows.cs | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingWindows.cs b/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingWindows.cs index 818ea3f3..582d8702 100644 --- a/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingWindows.cs +++ b/v2rayN/ServiceLib/Handler/SysProxy/ProxySettingWindows.cs @@ -60,7 +60,7 @@ namespace ServiceLib.Handler.SysProxy try { // set proxy for LAN - bool result = SetConnectionProxy(null, strProxy, exceptions, type); + var result = SetConnectionProxy(null, strProxy, exceptions, type); // set proxy for dial up connections var connections = EnumerateRasEntries(); foreach (var connection in connections) @@ -71,16 +71,16 @@ namespace ServiceLib.Handler.SysProxy } catch { - SetProxyFallback(strProxy, exceptions, type); + _ = SetProxyFallback(strProxy, exceptions, type); return false; } } private static bool SetConnectionProxy(string? connectionName, string? strProxy, string? exceptions, int type) { - InternetPerConnOptionList list = new(); + var list = new InternetPerConnOptionList(); - int optionCount = 1; + var optionCount = 1; if (type == 1) // No proxy { optionCount = 1; @@ -90,8 +90,8 @@ namespace ServiceLib.Handler.SysProxy optionCount = string.IsNullOrEmpty(exceptions) ? 2 : 3; } - int m_Int = (int)PerConnFlags.PROXY_TYPE_DIRECT; - PerConnOption m_Option = PerConnOption.INTERNET_PER_CONN_FLAGS; + var m_Int = (int)PerConnFlags.PROXY_TYPE_DIRECT; + var m_Option = PerConnOption.INTERNET_PER_CONN_FLAGS; if (type == 2) // named proxy { m_Int = (int)(PerConnFlags.PROXY_TYPE_DIRECT | PerConnFlags.PROXY_TYPE_PROXY); @@ -103,11 +103,9 @@ namespace ServiceLib.Handler.SysProxy m_Option = PerConnOption.INTERNET_PER_CONN_AUTOCONFIG_URL; } - //int optionCount = Utile.IsNullOrEmpty(strProxy) ? 1 : (Utile.IsNullOrEmpty(exceptions) ? 2 : 3); - InternetConnectionOption[] options = new InternetConnectionOption[optionCount]; + var options = new InternetConnectionOption[optionCount]; // USE a proxy server ... options[0].m_Option = PerConnOption.INTERNET_PER_CONN_FLAGS; - //options[0].m_Value.m_Int = (int)((optionCount < 2) ? PerConnFlags.PROXY_TYPE_DIRECT : (PerConnFlags.PROXY_TYPE_DIRECT | PerConnFlags.PROXY_TYPE_PROXY)); options[0].m_Value.m_Int = m_Int; // use THIS proxy server if (optionCount > 1) @@ -135,20 +133,20 @@ namespace ServiceLib.Handler.SysProxy list.dwOptionCount = options.Length; list.dwOptionError = 0; - int optSize = Marshal.SizeOf(typeof(InternetConnectionOption)); + var optSize = Marshal.SizeOf(typeof(InternetConnectionOption)); // make a pointer out of all that ... - nint optionsPtr = Marshal.AllocCoTaskMem(optSize * options.Length); // !! remember to deallocate memory 4 + var optionsPtr = Marshal.AllocCoTaskMem(optSize * options.Length); // !! remember to deallocate memory 4 // copy the array over into that spot in memory ... - for (int i = 0; i < options.Length; ++i) + for (var i = 0; i < options.Length; ++i) { if (Environment.Is64BitOperatingSystem) { - nint opt = new(optionsPtr.ToInt64() + (i * optSize)); + var opt = new nint(optionsPtr.ToInt64() + (i * optSize)); Marshal.StructureToPtr(options[i], opt, false); } else { - nint opt = new(optionsPtr.ToInt32() + (i * optSize)); + var opt = new nint(optionsPtr.ToInt32() + (i * optSize)); Marshal.StructureToPtr(options[i], opt, false); } } @@ -156,14 +154,14 @@ namespace ServiceLib.Handler.SysProxy list.options = optionsPtr; // and then make a pointer out of the whole list - nint ipcoListPtr = Marshal.AllocCoTaskMem(list.dwSize); // !! remember to deallocate memory 5 + var ipcoListPtr = Marshal.AllocCoTaskMem(list.dwSize); // !! remember to deallocate memory 5 Marshal.StructureToPtr(list, ipcoListPtr, false); // and finally, call the API method! - bool isSuccess = NativeMethods.InternetSetOption(nint.Zero, + var isSuccess = NativeMethods.InternetSetOption(nint.Zero, InternetOption.INTERNET_OPTION_PER_CONNECTION_OPTION, ipcoListPtr, list.dwSize); - int returnvalue = 0; // ERROR_SUCCESS + var returnvalue = 0; // ERROR_SUCCESS if (!isSuccess) { // get the error codes, they might be helpful returnvalue = Marshal.GetLastPInvokeError(); @@ -171,13 +169,15 @@ namespace ServiceLib.Handler.SysProxy else { // Notify the system that the registry settings have been changed and cause them to be refreshed - NativeMethods.InternetSetOption(nint.Zero, InternetOption.INTERNET_OPTION_SETTINGS_CHANGED, nint.Zero, 0); - NativeMethods.InternetSetOption(nint.Zero, InternetOption.INTERNET_OPTION_REFRESH, nint.Zero, 0); + _ = NativeMethods.InternetSetOption(nint.Zero, InternetOption.INTERNET_OPTION_SETTINGS_CHANGED, nint.Zero, 0); + _ = NativeMethods.InternetSetOption(nint.Zero, InternetOption.INTERNET_OPTION_REFRESH, nint.Zero, 0); } // FREE the data ASAP if (list.szConnection != nint.Zero) + { Marshal.FreeHGlobal(list.szConnection); // release mem 3 + } if (optionCount > 1) { Marshal.FreeHGlobal(options[1].m_Value.m_StringPtr); // release mem 1 @@ -204,18 +204,18 @@ namespace ServiceLib.Handler.SysProxy /// Error message with win32 error code private static IEnumerable EnumerateRasEntries() { - int entries = 0; + var entries = 0; // attempt to query with 1 entry buffer - RASENTRYNAME[] rasEntryNames = new RASENTRYNAME[1]; - int bufferSize = Marshal.SizeOf(typeof(RASENTRYNAME)); + var rasEntryNames = new RASENTRYNAME[1]; + var bufferSize = Marshal.SizeOf(typeof(RASENTRYNAME)); rasEntryNames[0].dwSize = Marshal.SizeOf(typeof(RASENTRYNAME)); - uint result = NativeMethods.RasEnumEntries(null, null, rasEntryNames, ref bufferSize, ref entries); + var result = NativeMethods.RasEnumEntries(null, null, rasEntryNames, ref bufferSize, ref entries); // increase buffer if the buffer is not large enough if (result == (uint)ErrorCode.ERROR_BUFFER_TOO_SMALL) { rasEntryNames = new RASENTRYNAME[bufferSize / Marshal.SizeOf(typeof(RASENTRYNAME))]; - for (int i = 0; i < rasEntryNames.Length; i++) + for (var i = 0; i < rasEntryNames.Length; i++) { rasEntryNames[i].dwSize = Marshal.SizeOf(typeof(RASENTRYNAME)); } @@ -225,7 +225,7 @@ namespace ServiceLib.Handler.SysProxy if (result == 0) { var entryNames = new List(); - for (int i = 0; i < entries; i++) + for (var i = 0; i < entries; i++) { entryNames.Add(rasEntryNames[i].szEntryName); }