Nuget package updates

- WindowsFirewallHelper
This commit is contained in:
Brett Hewitson 2022-06-21 20:33:25 +10:00
parent 38691bc939
commit 4ac3fdc7d2
7 changed files with 22 additions and 20 deletions

View file

@ -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)

View file

@ -162,7 +162,7 @@
<value>ConanServerManager</value>
</setting>
<setting name="FirewallRulePrefix" serializeAs="String">
<value>ConanServer:</value>
<value>Conan Server:</value>
</setting>
<setting name="DonationUrl" serializeAs="String">
<value>https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=bletch1971%40hotmail%2ecom&amp;lc=US&amp;item_name=Server%20Manager&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted</value>

View file

@ -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"]));

View file

@ -342,7 +342,7 @@
<Value Profile="(Default)">ConanServerManager</Value>
</Setting>
<Setting Name="FirewallRulePrefix" Type="System.String" Scope="Application">
<Value Profile="(Default)">ConanServer:</Value>
<Value Profile="(Default)">Conan Server:</Value>
</Setting>
<Setting Name="DonationUrl" Type="System.String" Scope="Application">
<Value Profile="(Default)">https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=bletch1971%40hotmail%2ecom&amp;lc=US&amp;item_name=Server%20Manager&amp;currency_code=USD&amp;bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted</Value>

View file

@ -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)

View file

@ -22,7 +22,7 @@
<PackageReference Include="NLog" Version="4.7.2" />
<PackageReference Include="System.ValueTuple" Version="4.5.0" />
<PackageReference Include="TaskScheduler" Version="2.8.19" />
<PackageReference Include="WindowsFirewallHelper" Version="1.6.3.40" />
<PackageReference Include="WindowsFirewallHelper" Version="2.2.0.86" />
</ItemGroup>
<ItemGroup>
<Page Include="Controls\AnnotatedCheckBoxAndFloatSlider.xaml" />

View file

@ -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
/// </summary>
public static class FirewallUtils
{
public static bool CreateFirewallRules(string exeName, List<int> ports, string ruleName, string description = "")
public static bool CreateFirewallRules(string exeName, List<int> 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<StandardRule>().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList();
var rulesToDelete = firewallManager.Rules.Cast<IFirewallRule>().Where(r => !string.IsNullOrWhiteSpace(r.ApplicationName) && r.ApplicationName.Equals(exeName, StringComparison.OrdinalIgnoreCase)).ToList();
if (rulesToDelete != null && rulesToDelete.Count > 0)
{