From 4ac3fdc7d2077c1a672f513b4d9c9f89645e93cd Mon Sep 17 00:00:00 2001 From: Brett Hewitson Date: Tue, 21 Jun 2022 20:33:25 +1000 Subject: [PATCH] Nuget package updates - WindowsFirewallHelper --- src/ARKServerManager/Lib/ServerRuntime.cs | 2 +- src/ConanServerManager/App.config | 2 +- src/ConanServerManager/Config.Designer.cs | 2 +- src/ConanServerManager/Config.settings | 2 +- src/ConanServerManager/Lib/ServerRuntime.cs | 2 +- .../ServerManager.Common.csproj | 2 +- .../Utils/FirewallUtils.cs | 30 ++++++++++--------- 7 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/ARKServerManager/Lib/ServerRuntime.cs b/src/ARKServerManager/Lib/ServerRuntime.cs index daaa814f..1b18a724 100644 --- a/src/ARKServerManager/Lib/ServerRuntime.cs +++ b/src/ARKServerManager/Lib/ServerRuntime.cs @@ -425,7 +425,7 @@ namespace ServerManagerTool.Lib ports.Add(this.ProfileSnapshot.RCONPort); } - if (!FirewallUtils.CreateFirewallRules(serverExe, ports, $"{Config.Default.FirewallRulePrefix} {this.ProfileSnapshot.ServerName}")) + if (!FirewallUtils.CreateFirewallRules(serverExe, ports, $"{Config.Default.FirewallRulePrefix} {this.ProfileSnapshot.ServerName}", description: "", group: Config.Default.FirewallRulePrefix.Replace(":", ""))) { var result = MessageBox.Show("Failed to automatically set firewall rules. If you are running custom firewall software, you may need to set your firewall rules manually. You may turn off automatic firewall management in Settings.\r\n\r\nWould you like to continue running the server anyway?", "Automatic Firewall Management Error", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (result == MessageBoxResult.No) diff --git a/src/ConanServerManager/App.config b/src/ConanServerManager/App.config index bdfee7dc..05526835 100644 --- a/src/ConanServerManager/App.config +++ b/src/ConanServerManager/App.config @@ -162,7 +162,7 @@ ConanServerManager - ConanServer: + Conan Server: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=bletch1971%40hotmail%2ecom&lc=US&item_name=Server%20Manager&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted diff --git a/src/ConanServerManager/Config.Designer.cs b/src/ConanServerManager/Config.Designer.cs index b349cc9a..be0cbdd2 100644 --- a/src/ConanServerManager/Config.Designer.cs +++ b/src/ConanServerManager/Config.Designer.cs @@ -1244,7 +1244,7 @@ namespace ServerManagerTool { [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("ConanServer:")] + [global::System.Configuration.DefaultSettingValueAttribute("Conan Server:")] public string FirewallRulePrefix { get { return ((string)(this["FirewallRulePrefix"])); diff --git a/src/ConanServerManager/Config.settings b/src/ConanServerManager/Config.settings index f9bc355a..ff8c2d3f 100644 --- a/src/ConanServerManager/Config.settings +++ b/src/ConanServerManager/Config.settings @@ -342,7 +342,7 @@ ConanServerManager - ConanServer: + Conan Server: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=bletch1971%40hotmail%2ecom&lc=US&item_name=Server%20Manager&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted diff --git a/src/ConanServerManager/Lib/ServerRuntime.cs b/src/ConanServerManager/Lib/ServerRuntime.cs index 835203f8..cc242dc4 100644 --- a/src/ConanServerManager/Lib/ServerRuntime.cs +++ b/src/ConanServerManager/Lib/ServerRuntime.cs @@ -432,7 +432,7 @@ namespace ServerManagerTool.Lib ports.Add(this.ProfileSnapshot.RconPort); } - if (!FirewallUtils.CreateFirewallRules(serverExe, ports, $"{Config.Default.FirewallRulePrefix} {this.ProfileSnapshot.ServerName}")) + if (!FirewallUtils.CreateFirewallRules(serverExe, ports, $"{Config.Default.FirewallRulePrefix} {this.ProfileSnapshot.ServerName}", description: "", group: Config.Default.FirewallRulePrefix.Replace(":", ""))) { var result = MessageBox.Show("Failed to automatically set firewall rules. If you are running custom firewall software, you may need to set your firewall rules manually. You may turn off automatic firewall management in Settings.\r\n\r\nWould you like to continue running the server anyway?", "Automatic Firewall Management Error", MessageBoxButton.YesNo, MessageBoxImage.Warning); if (result == MessageBoxResult.No) diff --git a/src/ServerManager.Common/ServerManager.Common.csproj b/src/ServerManager.Common/ServerManager.Common.csproj index 4eaa2a52..9a5e67cf 100644 --- a/src/ServerManager.Common/ServerManager.Common.csproj +++ b/src/ServerManager.Common/ServerManager.Common.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/ServerManager.Common/Utils/FirewallUtils.cs b/src/ServerManager.Common/Utils/FirewallUtils.cs index 9f270594..cdad2135 100644 --- a/src/ServerManager.Common/Utils/FirewallUtils.cs +++ b/src/ServerManager.Common/Utils/FirewallUtils.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq; using WindowsFirewallHelper; -using WindowsFirewallHelper.FirewallAPIv2.Rules; +using WindowsFirewallHelper.FirewallRules; /* WindowsFirewallHelper @@ -39,12 +39,12 @@ namespace ServerManagerTool.Common.Utils /// public static class FirewallUtils { - public static bool CreateFirewallRules(string exeName, List ports, string ruleName, string description = "") + public static bool CreateFirewallRules(string exeName, List ports, string ruleName, string description = "", string group = "") { - var firewallManager = FirewallManager.Instance; - - if (firewallManager.IsSupported) + if (FirewallWAS.IsSupported(new COMTypeResolver())) { + var firewallManager = FirewallManager.Instance; + DeleteFirewallRules(exeName); // create the TCP rule @@ -54,10 +54,11 @@ namespace ServerManagerTool.Common.Utils rule.Direction = FirewallDirection.Inbound; rule.IsEnable = true; rule.LocalPorts = ports.Select(p => (ushort)p).ToArray(); - - if (rule is StandardRule) + + if (rule is FirewallWASRule wasRule) { - ((StandardRule)rule).Description = description; + wasRule.Description = description; + wasRule.Grouping = group; } firewallManager.Rules.Add(rule); } @@ -70,9 +71,10 @@ namespace ServerManagerTool.Common.Utils rule.IsEnable = true; rule.LocalPorts = ports.Select(p => (ushort)p).ToArray(); - if (rule is StandardRule) + if (rule is FirewallWASRule wasRule) { - ((StandardRule)rule).Description = description; + wasRule.Description = description; + wasRule.Grouping = group; } firewallManager.Rules.Add(rule); } @@ -85,12 +87,12 @@ namespace ServerManagerTool.Common.Utils public static bool DeleteFirewallRules(string exeName) { - var firewallManager = FirewallManager.Instance; - - if (firewallManager.IsSupported) + if (FirewallWAS.IsSupported(new COMTypeResolver())) { + var firewallManager = FirewallManager.Instance; + // check for existing rules - var rulesToDelete = firewallManager.Rules.Cast().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList(); + var rulesToDelete = firewallManager.Rules.Cast().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList(); if (rulesToDelete != null && rulesToDelete.Count > 0) {