@ -3,12 +3,11 @@ using NetFwTypeLib;
using NLog ;
using NLog ;
using NzbDrone.Core.Configuration ;
using NzbDrone.Core.Configuration ;
namespace NzbDrone.Host. Host
namespace NzbDrone.Host. AccessControl
{
{
public interface IFirewallAdapter
public interface IFirewallAdapter
{
{
void MakeAccessible ( ) ;
void MakeAccessible ( ) ;
bool IsNzbDronePortOpen ( ) ;
}
}
public class FirewallAdapter : IFirewallAdapter
public class FirewallAdapter : IFirewallAdapter
@ -24,8 +23,6 @@ namespace NzbDrone.Host.Host
public void MakeAccessible ( )
public void MakeAccessible ( )
{
{
int port = 0 ;
if ( IsFirewallEnabled ( ) )
if ( IsFirewallEnabled ( ) )
{
{
if ( IsNzbDronePortOpen ( ) )
if ( IsNzbDronePortOpen ( ) )
@ -42,7 +39,7 @@ namespace NzbDrone.Host.Host
}
}
p ublic bool IsNzbDronePortOpen ( )
p rivate bool IsNzbDronePortOpen ( )
{
{
try
try
{
{
@ -75,7 +72,7 @@ namespace NzbDrone.Host.Host
try
try
{
{
var type = Type . GetTypeFromProgID ( "HNetCfg.FWOpenPort" , false ) ;
var type = Type . GetTypeFromProgID ( "HNetCfg.FWOpenPort" , false ) ;
var port = Activator . CreateInstance ( type ) as INetFwOpenPort ;
var port = ( INetFwOpenPort ) Activator . CreateInstance ( type ) ;
port . Port = portNumber ;
port . Port = portNumber ;
port . Name = "NzbDrone" ;
port . Name = "NzbDrone" ;
@ -94,7 +91,7 @@ namespace NzbDrone.Host.Host
}
}
}
}
private int CloseFirewallPort ( )
private void CloseFirewallPort ( )
{
{
try
try
{
{
@ -116,14 +113,12 @@ namespace NzbDrone.Host.Host
if ( portNumber ! = _configFileProvider . Port )
if ( portNumber ! = _configFileProvider . Port )
{
{
ports . Remove ( portNumber , NET_FW_IP_PROTOCOL_ . NET_FW_IP_PROTOCOL_TCP ) ;
ports . Remove ( portNumber , NET_FW_IP_PROTOCOL_ . NET_FW_IP_PROTOCOL_TCP ) ;
return portNumber ;
}
}
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
_logger . WarnException ( "Failed to close port in firewall for NzbDrone" , ex ) ;
_logger . WarnException ( "Failed to close port in firewall for NzbDrone" , ex ) ;
}
}
return 0 ;
}
}
private bool IsFirewallEnabled ( )
private bool IsFirewallEnabled ( )