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