3 lass.iptables sort rules instead of tables

This commit is contained in:
lassulus 2015-07-18 14:30:29 +02:00
parent 5637a9634b
commit 83901e1e47

View file

@ -99,26 +99,27 @@ let
#todo: differentiate by iptables-version
buildTables = v: ts:
let
sortedTable = sort (a: b: a.precedence < b.precedence) ts;
declareChain = t: cn:
#TODO: find out what to do whit these count numbers
":${cn} ${t."${cn}".policy} [0:0]";
buildChain = tn: cn:
#"${concatStringsSep " " ((attrNames t."${cn}") ++ [cn])}";
let
sortedRules = sort (a: b: a.precedence < b.precedence) ts."${tn}"."${cn}".rules;
#TODO: double check should be unneccessary, refactor!
if (hasAttr "rules" ts."${tn}"."${cn}") then
if (ts."${tn}"."${cn}".rules == null) then
""
in
#TODO: double check should be unneccessary, refactor!
if (hasAttr "rules" ts."${tn}"."${cn}") then
if (ts."${tn}"."${cn}".rules == null) then
""
else
concatMapStringsSep "\n" (rule: "\n-A ${cn} ${rule}") ([]
++ map (buildRule tn cn) sortedRules
)
else
concatMapStringsSep "\n" (rule: "\n-A ${cn} ${rule}") ([]
++ map (buildRule tn cn) ts."${tn}"."${cn}".rules
)
else
""
;
""
;
buildRule = tn: cn: rule:
@ -143,7 +144,7 @@ let
"\nCOMMIT";
in
concatStringsSep "\n" ([]
++ map buildTable (attrNames sortedTable)
++ map buildTable (attrNames ts)
);
#=====