diff options
| author | Félix Sipma <felix.sipma@no-log.org> | 2016-03-04 17:17:01 +0100 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2016-03-04 12:32:41 -0400 |
| commit | bc9f57945afa4d9adbeee94c2b8a16fcd9d8f547 (patch) | |
| tree | 08c77ba3e2ad5bd8083c90a51bdbdfc3e38bf091 /src | |
| parent | 6f12458190537c64461d4edcdb07f52142ca533d (diff) | |
Firewall: simplify Chain data type
(cherry picked from commit 313a94cd87cd0f977310a6eada559dd383f6e9f0)
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Property/Firewall.hs | 70 |
1 files 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) |
