private static bool AddWindowsFirewallEntry(string appPath) { switch (Environment.OSVersion.Platform) { case PlatformID.Win32NT: if (Environment.OSVersion.Version.Major > 5) { //vista and above try { RuleStatus status = WindowsFirewall.RuleExistsVista("", appPath); switch (status) { case RuleStatus.Blocked: case RuleStatus.Disabled: WindowsFirewall.RemoveRuleVista("", appPath); break; case RuleStatus.Allowed: return(true); } WindowsFirewall.AddRuleVista("Technitium DNS Server", "Allow incoming connection request to the DNS server.", FirewallAction.Allow, appPath, Protocol.ANY, null, null, null, null, InterfaceTypeFlags.All, true, Direction.Inbound, true); return(true); } catch { } } else { try { RuleStatus status = WindowsFirewall.ApplicationExists(appPath); switch (status) { case RuleStatus.Disabled: WindowsFirewall.RemoveApplication(appPath); break; case RuleStatus.Allowed: return(true); } WindowsFirewall.AddApplication("Technitium DNS Server", appPath); return(true); } catch { } } break; } return(false); }
private static void AddWindowsFirewallEntry(string appPath) { switch (Environment.OSVersion.Platform) { case PlatformID.Win32NT: if (Environment.OSVersion.Version.Major > 5) { //vista and above try { RuleStatus status = WindowsFirewall.RuleExistsVista("", appPath); switch (status) { case RuleStatus.Blocked: case RuleStatus.Disabled: WindowsFirewall.RemoveRuleVista("", appPath); break; case RuleStatus.Allowed: return; } WindowsFirewall.AddRuleVista("Bit Chat", "Allow incoming connection request to Bit Chat application.", FirewallAction.Allow, appPath, Protocol.ANY); } catch { } } else { try { RuleStatus status = WindowsFirewall.ApplicationExists(appPath); switch (status) { case RuleStatus.Disabled: WindowsFirewall.RemoveApplication(appPath); break; case RuleStatus.Allowed: return; } WindowsFirewall.AddApplication("Bit Chat", appPath); } catch { } } break; } }