diff options
| -rw-r--r-- | debian/changelog | 3 | ||||
| -rw-r--r-- | src/Propellor/Property/Firewall.hs | 60 |
2 files changed, 9 insertions, 54 deletions
diff --git a/debian/changelog b/debian/changelog index 1dabeaa0..3145acec 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,8 +5,7 @@ propellor (2.17.0) UNRELEASED; urgency=medium * Apt: Add safeupgrade. * Avoid repeated re-building on systems such as FreeBSD where building re-links the binary even when there are no changes. - * Firewall: Renamed TargetNat, TargetMangle, ... to - ChainNat, ChainMangle, ... (API change) + * Firewall: Reorganized Chain data type. (API change) Thanks, Félix Sipma. * Firewall: Separated Table and Target (API change) Thanks, Félix Sipma. diff --git a/src/Propellor/Property/Firewall.hs b/src/Propellor/Property/Firewall.hs index 9d9c7926..cb0f0b64 100644 --- a/src/Propellor/Property/Firewall.hs +++ b/src/Propellor/Property/Firewall.hs @@ -124,60 +124,16 @@ fromTarget DROP = "DROP" fromTarget LOG = "LOG" fromTarget (TargetCustom t) = t -data Chain = ChainFilter | ChainNat | ChainMangle | ChainRaw | ChainSecurity +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 ChainFilter = INPUT | OUTPUT | FORWARD | FilterCustom String - deriving (Eq, Show) - -instance FromChain ChainFilter where - fromChain INPUT = "INPUT" - fromChain OUTPUT = "OUTPUT" - fromChain FORWARD = "FORWARD" - fromChain (FilterCustom c) = c - -data ChainNat = NatPREROUTING | NatOUTPUT | NatPOSTROUTING | NatCustom String - deriving (Eq, Show) - -instance FromChain ChainNat where - fromChain NatPREROUTING = "PREROUTING" - fromChain NatOUTPUT = "OUTPUT" - fromChain NatPOSTROUTING = "POSTROUTING" - fromChain (NatCustom f) = f - -data ChainMangle = ManglePREROUTING | MangleOUTPUT | MangleINPUT | MangleFORWARD | ManglePOSTROUTING | MangleCustom String - deriving (Eq, Show) - -instance FromChain ChainMangle where - fromChain ManglePREROUTING = "PREROUTING" - fromChain MangleOUTPUT = "OUTPUT" - fromChain MangleINPUT = "INPUT" - fromChain MangleFORWARD = "FORWARD" - fromChain ManglePOSTROUTING = "POSTROUTING" - fromChain (MangleCustom f) = f - -data ChainRaw = RawPREROUTING | RawOUTPUT | RawCustom String - deriving (Eq, Show) - -instance FromChain ChainRaw where - fromChain RawPREROUTING = "PREROUTING" - fromChain RawOUTPUT = "OUTPUT" - fromChain (RawCustom f) = f - -data ChainSecurity = SecurityINPUT | SecurityOUTPUT | SecurityFORWARD | SecurityCustom String - deriving (Eq, Show) - -instance FromChain ChainSecurity 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) |
