Explorar o código

Hotfix update v13.4

deadmoon %!s(int64=3) %!d(string=hai) anos
pai
achega
8d7b8e4f26
Modificáronse 6 ficheiros con 43 adicións e 15 borrados
  1. 4 1
      CHANGELOG.md
  2. 10 1
      Optimizer/Forms/MainForm.cs
  3. 22 6
      Optimizer/PingerHelper.cs
  4. 1 1
      Optimizer/Program.cs
  5. 5 5
      README.md
  6. 1 1
      version.txt

+ 4 - 1
CHANGELOG.md

@@ -1,5 +1,8 @@
+## [13.4] - 2022-05-14
+- Hotfix: Crashes on loading if network is offline
+
 ## [13.3] - 2022-05-10
-- New: Fully translated into Kurdish (thanks to Lord Paro)
+- New: Fully translated into Kurdish (thanks to Parwar Andam)
 
 ## [13.2] - 2022-05-08
 - New: Brave browser support in Cleaner (#176)

+ 10 - 1
Optimizer/Forms/MainForm.cs

@@ -895,7 +895,11 @@ namespace Optimizer
 
         private void LoadPingerDNSConfig()
         {
-            boxAdapter.Items.AddRange(PingerHelper.GetActiveNetworkAdapters().Select(z => z.Description).ToArray());
+            NetworkInterface[] nics = PingerHelper.GetActiveNetworkAdapters();
+            if (nics == null) return;
+            if (nics.Length == 0) return;
+
+            boxAdapter.Items.AddRange(nics.Select(z => z.Description).ToArray());
             if (boxAdapter.Items.Count > 0) boxAdapter.SelectedIndex = 0;
 
             linkDNSv4.LinkClicked += linkDNSIP_LinkClicked;
@@ -911,7 +915,12 @@ namespace Optimizer
             if (boxAdapter.Items.Count <= 0) return;
 
             PingerHelper.GetActiveNetworkAdapters();
+            if (PingerHelper.NetworkAdapters == null) return;
+            if (PingerHelper.NetworkAdapters.Length == 0) return;
+
             _currentDNS = PingerHelper.GetDNSFromNetworkAdapter(PingerHelper.NetworkAdapters[boxAdapter.SelectedIndex]).ToArray();
+            if (_currentDNS == null) return;
+            if (_currentDNS.Length == 0) return;
 
             if (PingerHelper.CloudflareDNSv4.Any(x => _currentDNS.Select(y => y.ToString()).Contains(x)))
             {

+ 22 - 6
Optimizer/PingerHelper.cs

@@ -42,19 +42,35 @@ namespace Optimizer
 
         internal static NetworkInterface[] GetActiveNetworkAdapters()
         {
-            if (ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces();
+            try
+            {
+                if (ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces();
 
-            if (!ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces().Where(
-                a => a.OperationalStatus == OperationalStatus.Up &&
-                (a.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || a.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
-                a.GetIPProperties().GatewayAddresses.Any(g => g.Address.AddressFamily.ToString() == "InterNetwork")).ToArray();
+                if (!ShowHiddenAdapters) NetworkAdapters = NetworkInterface.GetAllNetworkInterfaces().Where(
+                    a => a.OperationalStatus == OperationalStatus.Up &&
+                    (a.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || a.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
+                    a.GetIPProperties().GatewayAddresses.Any(g => g.Address.AddressFamily.ToString() == "InterNetwork")).ToArray();
+            }
+            catch (Exception ex)
+            {
+                ErrorLogger.LogError("PingerHelper.GetActiveNetworkAdapters", ex.Message, ex.StackTrace);
+                return null;
+            }
 
             return NetworkAdapters;
         }
 
         internal static IEnumerable<string> GetDNSFromNetworkAdapter(NetworkInterface nic)
         {
-            return nic.GetIPProperties().DnsAddresses.Select(z => z.ToString());
+            try
+            {
+                return nic.GetIPProperties().DnsAddresses.Select(z => z.ToString());
+            }
+            catch (Exception ex)
+            {
+                ErrorLogger.LogError("PingerHelper.GetDNSFromNetworkAdapter", ex.Message, ex.StackTrace);
+                return null;
+            }
         }
 
         internal static void SetDNS(string nic, string[] dnsv4, string[] dnsv6)

+ 1 - 1
Optimizer/Program.cs

@@ -13,7 +13,7 @@ namespace Optimizer
         /* DO NOT LEAVE THEM EMPTY */
 
         internal readonly static float Major = 13;
-        internal readonly static float Minor = 3;
+        internal readonly static float Minor = 4;
 
         internal readonly static bool EXPERIMENTAL_BUILD = false;
 

+ 5 - 5
README.md

@@ -3,7 +3,7 @@
 </p> 
 
 <p align="center">
-	<a href="https://github.com/hellzerg/optimizer/releases/download/13.3/Optimizer-13.3.exe" target="_blank">
+	<a href="https://github.com/hellzerg/optimizer/releases/download/13.4/Optimizer-13.4.exe" target="_blank">
 		<img src="https://raw.githubusercontent.com/hellzerg/optimizer/master/download-button.png">
 		<br>
 		<img src="https://raw.githubusercontent.com/hellzerg/optimizer/master/flags.png">
@@ -88,9 +88,9 @@ https://github.com/hellzerg/optimizer/blob/master/LEGACY.md
 
 ### #️ Details: ###
 
-* Latest version: 13.3
-* Released: May 8, 2022
-* SHA256: 9AE21F07308DC31D1BF4D3D60AB08A9A185872FEF1BF767442DF4DD795AB1410
+* Latest version: 13.4
+* Released: May 14, 2022
+* SHA256: 9B720340D2C0380ED65538BF0A9DFF6EB44C760A4022649C8E0135E8E2DCD481
 
 <hr>
 
@@ -122,4 +122,4 @@ Support my hard work by donating me through [PayPal](https://www.paypal.com/payp
 * https://github.com/VenusGirl - VenusGirl for Korean translation
 * https://github.com/factuall - Adrian Nieściur for Polish translation
 * https://github.com/MesterPerfect - MesterPerfect for Arabic translation
-* Lord Paro for Kurdish translation
+* Parwar Andam for Kurdish translation

+ 1 - 1
version.txt

@@ -1 +1 @@
-13.3
+13.4