From bc9f57945afa4d9adbeee94c2b8a16fcd9d8f547 Mon Sep 17 00:00:00 2001 From: FĂ©lix Sipma Date: Fri, 4 Mar 2016 17:17:01 +0100 Subject: Firewall: simplify Chain data type (cherry picked from commit 313a94cd87cd0f977310a6eada559dd383f6e9f0) --- src/Propellor/Property/Firewall.hs | 70 +++++--------------------------------- 1 file changed, 8 insertions(+), 62 deletions(-) (limited to 'src/Propellor') diff --git a/src/Propellor/Property/Firewall.hs b/src/Propellor/Property/Firewall.hs index bb38c27f..cb0f0b64 100644 --- a/src/Propellor/Property/Firewall.hs +++ b/src/Propellor/Property/Firewall.hs @@ -6,11 +6,6 @@ module Propellor.Property.Firewall ( rule, installed, Chain(..), - ChainFilterT(..), - ChainNatT(..), - ChainMangleT(..), - ChainRawT(..), - ChainSecurityT(..), Table(..), Target(..), Proto(..), @@ -129,65 +124,16 @@ fromTarget DROP = "DROP" fromTarget LOG = "LOG" fromTarget (TargetCustom t) = t -data Chain - = ChainFilter ChainFilterT - | ChainNat ChainNatT - | ChainMangle ChainMangleT - | ChainRaw ChainRawT - | ChainSecurity ChainSecurityT +data Chain = INPUT | OUTPUT | FORWARD | PREROUTING | POSTROUTING | ChainCustom String deriving (Eq, Show) -instance FromChain Chain where - fromChain = fromChain - -class FromChain a where - fromChain :: a -> String - -data ChainFilterT = INPUT | OUTPUT | FORWARD | FilterCustom String - deriving (Eq, Show) - -instance FromChain ChainFilterT where - fromChain INPUT = "INPUT" - fromChain OUTPUT = "OUTPUT" - fromChain FORWARD = "FORWARD" - fromChain (FilterCustom c) = c - -data ChainNatT = NatPREROUTING | NatOUTPUT | NatPOSTROUTING | NatCustom String - deriving (Eq, Show) - -instance FromChain ChainNatT where - fromChain NatPREROUTING = "PREROUTING" - fromChain NatOUTPUT = "OUTPUT" - fromChain NatPOSTROUTING = "POSTROUTING" - fromChain (NatCustom f) = f - -data ChainMangleT = ManglePREROUTING | MangleOUTPUT | MangleINPUT | MangleFORWARD | ManglePOSTROUTING | MangleCustom String - deriving (Eq, Show) - -instance FromChain ChainMangleT where - fromChain ManglePREROUTING = "PREROUTING" - fromChain MangleOUTPUT = "OUTPUT" - fromChain MangleINPUT = "INPUT" - fromChain MangleFORWARD = "FORWARD" - fromChain ManglePOSTROUTING = "POSTROUTING" - fromChain (MangleCustom f) = f - -data ChainRawT = RawPREROUTING | RawOUTPUT | RawCustom String - deriving (Eq, Show) - -instance FromChain ChainRawT where - fromChain RawPREROUTING = "PREROUTING" - fromChain RawOUTPUT = "OUTPUT" - fromChain (RawCustom f) = f - -data ChainSecurityT = SecurityINPUT | SecurityOUTPUT | SecurityFORWARD | SecurityCustom String - deriving (Eq, Show) - -instance FromChain ChainSecurityT where - fromChain SecurityINPUT = "INPUT" - fromChain SecurityOUTPUT = "OUTPUT" - fromChain SecurityFORWARD = "FORWARD" - fromChain (SecurityCustom f) = f +fromChain :: Chain -> String +fromChain INPUT = "INPUT" +fromChain OUTPUT = "OUTPUT" +fromChain FORWARD = "FORWARD" +fromChain PREROUTING = "PREROUTING" +fromChain POSTROUTING = "POSTROUTING" +fromChain (ChainCustom c) = c data Proto = TCP | UDP | ICMP deriving (Eq, Show) -- cgit v1.2.3