From 6f12458190537c64461d4edcdb07f52142ca533d Mon Sep 17 00:00:00 2001 From: Félix Sipma Date: Fri, 4 Mar 2016 11:44:40 +0100 Subject: Firewall: update Chain constructors (cherry picked from commit 1a485202eeab60d9d677576278480a4109db72fb) --- src/Propellor/Property/Firewall.hs | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/Propellor/Property/Firewall.hs b/src/Propellor/Property/Firewall.hs index 9d9c7926..bb38c27f 100644 --- a/src/Propellor/Property/Firewall.hs +++ b/src/Propellor/Property/Firewall.hs @@ -6,6 +6,11 @@ module Propellor.Property.Firewall ( rule, installed, Chain(..), + ChainFilterT(..), + ChainNatT(..), + ChainMangleT(..), + ChainRawT(..), + ChainSecurityT(..), Table(..), Target(..), Proto(..), @@ -124,7 +129,12 @@ fromTarget DROP = "DROP" fromTarget LOG = "LOG" fromTarget (TargetCustom t) = t -data Chain = ChainFilter | ChainNat | ChainMangle | ChainRaw | ChainSecurity +data Chain + = ChainFilter ChainFilterT + | ChainNat ChainNatT + | ChainMangle ChainMangleT + | ChainRaw ChainRawT + | ChainSecurity ChainSecurityT deriving (Eq, Show) instance FromChain Chain where @@ -133,28 +143,28 @@ instance FromChain Chain where class FromChain a where fromChain :: a -> String -data ChainFilter = INPUT | OUTPUT | FORWARD | FilterCustom String +data ChainFilterT = INPUT | OUTPUT | FORWARD | FilterCustom String deriving (Eq, Show) -instance FromChain ChainFilter where +instance FromChain ChainFilterT where fromChain INPUT = "INPUT" fromChain OUTPUT = "OUTPUT" fromChain FORWARD = "FORWARD" fromChain (FilterCustom c) = c -data ChainNat = NatPREROUTING | NatOUTPUT | NatPOSTROUTING | NatCustom String +data ChainNatT = NatPREROUTING | NatOUTPUT | NatPOSTROUTING | NatCustom String deriving (Eq, Show) -instance FromChain ChainNat where +instance FromChain ChainNatT where fromChain NatPREROUTING = "PREROUTING" fromChain NatOUTPUT = "OUTPUT" fromChain NatPOSTROUTING = "POSTROUTING" fromChain (NatCustom f) = f -data ChainMangle = ManglePREROUTING | MangleOUTPUT | MangleINPUT | MangleFORWARD | ManglePOSTROUTING | MangleCustom String +data ChainMangleT = ManglePREROUTING | MangleOUTPUT | MangleINPUT | MangleFORWARD | ManglePOSTROUTING | MangleCustom String deriving (Eq, Show) -instance FromChain ChainMangle where +instance FromChain ChainMangleT where fromChain ManglePREROUTING = "PREROUTING" fromChain MangleOUTPUT = "OUTPUT" fromChain MangleINPUT = "INPUT" @@ -162,18 +172,18 @@ instance FromChain ChainMangle where fromChain ManglePOSTROUTING = "POSTROUTING" fromChain (MangleCustom f) = f -data ChainRaw = RawPREROUTING | RawOUTPUT | RawCustom String +data ChainRawT = RawPREROUTING | RawOUTPUT | RawCustom String deriving (Eq, Show) -instance FromChain ChainRaw where +instance FromChain ChainRawT where fromChain RawPREROUTING = "PREROUTING" fromChain RawOUTPUT = "OUTPUT" fromChain (RawCustom f) = f -data ChainSecurity = SecurityINPUT | SecurityOUTPUT | SecurityFORWARD | SecurityCustom String +data ChainSecurityT = SecurityINPUT | SecurityOUTPUT | SecurityFORWARD | SecurityCustom String deriving (Eq, Show) -instance FromChain ChainSecurity where +instance FromChain ChainSecurityT where fromChain SecurityINPUT = "INPUT" fromChain SecurityOUTPUT = "OUTPUT" fromChain SecurityFORWARD = "FORWARD" -- cgit v1.2.3 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(-) 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 From 238d9c86f4c314e2c6671e50990dd994fed999f0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 4 Mar 2016 12:34:20 -0400 Subject: changelog --- debian/changelog | 3 +-- 1 file changed, 1 insertion(+), 2 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. -- cgit v1.2.3