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¤cy_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¤cy_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)
{