summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Firewall.hs
diff options
context:
space:
mode:
authorFĂ©lix Sipma2016-03-04 17:17:01 +0100
committerJoey Hess2016-03-04 12:32:41 -0400
commitbc9f57945afa4d9adbeee94c2b8a16fcd9d8f547 (patch)
tree08c77ba3e2ad5bd8083c90a51bdbdfc3e38bf091 /src/Propellor/Property/Firewall.hs
parent6f12458190537c64461d4edcdb07f52142ca533d (diff)
Firewall: simplify Chain data type
(cherry picked from commit 313a94cd87cd0f977310a6eada559dd383f6e9f0)
Diffstat (limited to 'src/Propellor/Property/Firewall.hs')
-rw-r--r--src/Propellor/Property/Firewall.hs70
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)