From f95f7c23203c1c87f750484f7b3beda3edffd8a8 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sun, 8 Dec 2013 20:59:04 -0800 Subject: [PATCH] Actual fix for multiple network interfaces --- .../AccessControl/FirewallAdapter.cs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/NzbDrone.Host/AccessControl/FirewallAdapter.cs b/src/NzbDrone.Host/AccessControl/FirewallAdapter.cs index a2d7b207d..c252e3e9e 100644 --- a/src/NzbDrone.Host/AccessControl/FirewallAdapter.cs +++ b/src/NzbDrone.Host/AccessControl/FirewallAdapter.cs @@ -13,9 +13,11 @@ namespace NzbDrone.Host.AccessControl 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 Logger _logger; - + public FirewallAdapter(IConfigFileProvider configFileProvider, Logger logger) { _configFileProvider = configFileProvider; @@ -47,11 +49,7 @@ namespace NzbDrone.Host.AccessControl var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); - - if (!mgr.LocalPolicy.CurrentProfile.FirewallEnabled) - return false; - - var ports = mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts; + var ports = mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).GloballyOpenPorts; foreach (INetFwOpenPort p in ports) { @@ -81,9 +79,8 @@ namespace NzbDrone.Host.AccessControl var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); - //Adds ports for both the current profile and the 'standard' (private) profile - mgr.LocalPolicy.GetProfileByType(NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_CURRENT).GloballyOpenPorts.Add(port); - mgr.LocalPolicy.GetProfileByType(NET_FW_PROFILE_TYPE_.NET_FW_PROFILE_STANDARD).GloballyOpenPorts.Add(port); + //Open the port for the standard profile, should help when the user has multiple network adapters + mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).GloballyOpenPorts.Add(port); } catch (Exception ex) { @@ -99,7 +96,7 @@ namespace NzbDrone.Host.AccessControl { var netFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); var mgr = (INetFwMgr)Activator.CreateInstance(netFwMgrType); - return mgr.LocalPolicy.CurrentProfile.FirewallEnabled; + return mgr.LocalPolicy.GetProfileByType(FIREWALL_PROFILE).FirewallEnabled; } catch (Exception ex) {