1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2025-02-27 08:33:21 +00:00

Actual fix for multiple network interfaces

This commit is contained in:
Mark McDowall 2013-12-08 20:59:04 -08:00
parent a7e210bfb3
commit f95f7c2320

View file

@ -13,6 +13,8 @@ public interface IFirewallAdapter
public class FirewallAdapter : IFirewallAdapter public class FirewallAdapter : IFirewallAdapter
{ {
private const NET_FW_PROFILE_TYPE_ FIREWALL_PROFILE = NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_STANDARD;
private readonly IConfigFileProvider _configFileProvider; private readonly IConfigFileProvider _configFileProvider;
private readonly Logger _logger; private readonly Logger _logger;
@ -47,11 +49,7 @@ private bool IsNzbDronePortOpen(int port)
var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType);
var ports = mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).GloballyOpenPorts;
if (!mgr.LocalPolicy.CurrentProfile.FirewallEnabled)
return false;
var ports = mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts;
foreach (INetFwOpenPort p in ports) foreach (INetFwOpenPort p in ports)
{ {
@ -81,9 +79,8 @@ private void OpenFirewallPort(int portNumber)
var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType);
//Adds ports for both the current profile and the 'standard' (private) profile //Open the port for the standard profile, should help when the user has multiple network adapters
mgr.LocalPolicy.GetProfileByType(NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_CURRENT).GloballyOpenPorts.Add(port); mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).GloballyOpenPorts.Add(port);
mgr.LocalPolicy.GetProfileByType(NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_STANDARD).GloballyOpenPorts.Add(port);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -99,7 +96,7 @@ private bool IsFirewallEnabled()
{ {
var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType);
return mgr.LocalPolicy.CurrentProfile.FirewallEnabled; return mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).FirewallEnabled;
} }
catch (Exception ex) catch (Exception ex)
{ {