Blob Blame History Raw
From 8baba36ffff504e6c107448b002a553a2c072850 Mon Sep 17 00:00:00 2001
From: Eric Garver <eric@garver.life>
Date: Wed, 7 Aug 2019 08:41:11 -0400
Subject: [PATCH 78/79] test: regression/rhbz1734765: add coverage for rhbz
 1738545

(cherry picked from commit 20cd5c7d29c586fa55e76d6f21adfee6a7ca34bb)
(cherry picked from commit cea43b784a092a8b155190b9988927daeeb0a0a4)
---
 src/tests/regression/rhbz1734765.at | 46 +++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 5 deletions(-)

diff --git a/src/tests/regression/rhbz1734765.at b/src/tests/regression/rhbz1734765.at
index 5145d716e576..de8e1ab40598 100644
--- a/src/tests/regression/rhbz1734765.at
+++ b/src/tests/regression/rhbz1734765.at
@@ -1,5 +1,5 @@
 FWD_START_TEST([zone sources ordered by name])
-AT_KEYWORDS(zone rhbz1734765 rhbz1421222 gh166)
+AT_KEYWORDS(zone rhbz1734765 rhbz1421222 gh166 rhbz1738545)
 dnl
 dnl Users depend on firewalld ordering source-based zone dispatch by zone name.
 dnl
@@ -11,20 +11,28 @@ FWD_CHECK([-q --permanent --new-zone=foobar_03])
 FWD_CHECK([-q --permanent --new-zone=foobar_01])
 FWD_CHECK([-q --permanent --new-zone=foobar_04])
 FWD_CHECK([-q --permanent --new-zone=foobar_010])
+FWD_CHECK([-q --permanent --new-zone=foobar_011])
+FWD_CHECK([-q --permanent --new-zone=foobar_012])
 
-FWD_CHECK([-q --permanent --zone=foobar_00 --add-source="10.1.1.1"])
+FWD_CHECK([-q --permanent --new-ipset 'ipsetv4' --type hash:ip])
+FWD_CHECK([-q --permanent --new-ipset 'ipsetv6' --type hash:ip --family=inet6])
+FWD_CHECK([-q --permanent --ipset ipsetv4 --add-entry '192.0.2.12'])
+FWD_CHECK([-q --permanent --ipset ipsetv6 --add-entry '::2'])
+
+FWD_CHECK([-q --permanent --zone=foobar_011 --add-source ipset:ipsetv4])
 FWD_CHECK([-q --permanent --zone=foobar_01 --add-source="10.1.1.0/24"])
 FWD_CHECK([-q --permanent --zone=foobar_02 --add-source="10.1.0.0/16"])
-FWD_CHECK([-q --permanent --zone=foobar_03 --add-source="10.2.2.0/24"])
 FWD_CHECK([-q --permanent --zone=foobar_04 --add-source="10.2.0.0/16"])
+FWD_CHECK([-q --permanent --zone=foobar_00 --add-source="10.1.1.1"])
+FWD_CHECK([-q --permanent --zone=foobar_03 --add-source="10.2.2.0/24"])
 FWD_CHECK([-q --permanent --zone=foobar_05 --add-source="10.0.0.0/8"])
 IF_IPV6_SUPPORTED([
-FWD_CHECK([-q --permanent --zone=foobar_00 --add-source="1234:5678::1:1:1"])
 FWD_CHECK([-q --permanent --zone=foobar_01 --add-source="1234:5678::1:1:0/112"])
 FWD_CHECK([-q --permanent --zone=foobar_02 --add-source="1234:5678::1:0:0/96"])
-FWD_CHECK([-q --permanent --zone=foobar_03 --add-source="1234:5678::2:2:0/112"])
 FWD_CHECK([-q --permanent --zone=foobar_04 --add-source="1234:5678::2:0:0/96"])
+FWD_CHECK([-q --permanent --zone=foobar_03 --add-source="1234:5678::2:2:0/112"])
 FWD_CHECK([-q --permanent --zone=foobar_05 --add-source="1234:5678::0:0:0/80"])
+FWD_CHECK([-q --permanent --zone=foobar_00 --add-source="1234:5678::1:1:1"])
 ])
 
 FWD_CHECK([-q --permanent --zone=internal --add-interface=foobar0])
@@ -32,11 +40,31 @@ FWD_CHECK([-q --permanent --zone=trusted --add-interface=foobar1])
 
 FWD_RELOAD
 
+NFT_LIST_SET([ipsetv4], 0, [dnl
+	table inet firewalld {
+		set ipsetv4 {
+			type ipv4_addr
+			flags interval
+			elements = { 192.0.2.12 }
+		}
+	}
+])
+NFT_LIST_SET([ipsetv6], 0, [dnl
+	table inet firewalld {
+		set ipsetv6 {
+			type ipv6_addr
+			flags interval
+			elements = { ::2 }
+		}
+	}
+])
+
 FWD_CHECK([-q --zone=foobar_010 --add-source="10.10.10.10"])
 FWD_CHECK([-q --zone=public --add-source="20.20.20.20"])
 IF_IPV6_SUPPORTED([
 FWD_CHECK([-q --zone=foobar_010 --add-source="1234:5678::10:10:10"])
 FWD_CHECK([-q --zone=public --add-source="1234:5678::20:20:20"])
+FWD_CHECK([-q --zone=foobar_012 --add-source ipset:ipsetv6])
 ])
 FWD_CHECK([-q --zone=foobar_010 --add-interface=foobar2])
 
@@ -50,6 +78,8 @@ NFT_LIST_RULES([inet], [filter_INPUT_ZONES], 0, [dnl
             ip6 saddr 1234:5678::1:1:0/112 goto filter_IN_foobar_01
             ip saddr 10.10.10.10 goto filter_IN_foobar_010
             ip6 saddr 1234:5678::10:10:10 goto filter_IN_foobar_010
+            ip saddr @ipsetv4 goto filter_IN_foobar_011
+            ip6 saddr @ipsetv6 goto filter_IN_foobar_012
             ip saddr 10.1.0.0/16 goto filter_IN_foobar_02
             ip6 saddr 1234:5678::1:0:0/96 goto filter_IN_foobar_02
             ip saddr 10.2.2.0/24 goto filter_IN_foobar_03
@@ -73,6 +103,7 @@ NFT_LIST_RULES([ip], [nat_POSTROUTING_ZONES], 0, [dnl
             ip daddr 10.1.1.1 goto nat_POST_foobar_00
             ip daddr 10.1.1.0/24 goto nat_POST_foobar_01
             ip daddr 10.10.10.10 goto nat_POST_foobar_010
+            ip daddr @ipsetv4 goto nat_POST_foobar_011
             ip daddr 10.1.0.0/16 goto nat_POST_foobar_02
             ip daddr 10.2.2.0/24 goto nat_POST_foobar_03
             ip daddr 10.2.0.0/16 goto nat_POST_foobar_04
@@ -91,6 +122,7 @@ NFT_LIST_RULES([ip6], [nat_POSTROUTING_ZONES], 0, [dnl
             ip6 daddr 1234:5678::1:1:1 goto nat_POST_foobar_00
             ip6 daddr 1234:5678::1:1:0/112 goto nat_POST_foobar_01
             ip6 daddr 1234:5678::10:10:10 goto nat_POST_foobar_010
+            ip6 daddr @ipsetv6 goto nat_POST_foobar_012
             ip6 daddr 1234:5678::1:0:0/96 goto nat_POST_foobar_02
             ip6 daddr 1234:5678::2:2:0/112 goto nat_POST_foobar_03
             ip6 daddr 1234:5678::2:0:0/96 goto nat_POST_foobar_04
@@ -109,6 +141,7 @@ IPTABLES_LIST_RULES([filter], [INPUT_ZONES], 0,
   [[IN_foobar_00 all -- 10.1.1.1 0.0.0.0/0 [goto]
     IN_foobar_01 all -- 10.1.1.0/24 0.0.0.0/0 [goto]
     IN_foobar_010 all -- 10.10.10.10 0.0.0.0/0 [goto]
+    IN_foobar_011 all -- 0.0.0.0/0 0.0.0.0/0 [goto] match-set ipsetv4 src
     IN_foobar_02 all -- 10.1.0.0/16 0.0.0.0/0 [goto]
     IN_foobar_03 all -- 10.2.2.0/24 0.0.0.0/0 [goto]
     IN_foobar_04 all -- 10.2.0.0/16 0.0.0.0/0 [goto]
@@ -123,6 +156,7 @@ IP6TABLES_LIST_RULES([filter], [INPUT_ZONES], 0,
   [[IN_foobar_00 all 1234:5678::1:1:1 ::/0 [goto]
     IN_foobar_01 all 1234:5678::1:1:0/112 ::/0 [goto]
     IN_foobar_010 all 1234:5678::10:10:10 ::/0 [goto]
+    IN_foobar_012 all ::/0 ::/0 [goto] match-set ipsetv6 src
     IN_foobar_02 all 1234:5678::1:0:0/96 ::/0 [goto]
     IN_foobar_03 all 1234:5678::2:2:0/112 ::/0 [goto]
     IN_foobar_04 all 1234:5678::2:0:0/96 ::/0 [goto]
@@ -137,6 +171,7 @@ IPTABLES_LIST_RULES([nat], [POSTROUTING_ZONES], 0,
   [[POST_foobar_00 all -- 0.0.0.0/0 10.1.1.1 [goto]
     POST_foobar_01 all -- 0.0.0.0/0 10.1.1.0/24 [goto]
     POST_foobar_010 all -- 0.0.0.0/0 10.10.10.10 [goto]
+    POST_foobar_011 all -- 0.0.0.0/0 0.0.0.0/0 [goto] match-set ipsetv4 dst
     POST_foobar_02 all -- 0.0.0.0/0 10.1.0.0/16 [goto]
     POST_foobar_03 all -- 0.0.0.0/0 10.2.2.0/24 [goto]
     POST_foobar_04 all -- 0.0.0.0/0 10.2.0.0/16 [goto]
@@ -151,6 +186,7 @@ IP6TABLES_LIST_RULES([nat], [POSTROUTING_ZONES], 0,
   [[POST_foobar_00 all ::/0 1234:5678::1:1:1 [goto]
     POST_foobar_01 all ::/0 1234:5678::1:1:0/112 [goto]
     POST_foobar_010 all ::/0 1234:5678::10:10:10 [goto]
+    POST_foobar_012 all ::/0 ::/0 [goto] match-set ipsetv6 dst
     POST_foobar_02 all ::/0 1234:5678::1:0:0/96 [goto]
     POST_foobar_03 all ::/0 1234:5678::2:2:0/112 [goto]
     POST_foobar_04 all ::/0 1234:5678::2:0:0/96 [goto]
-- 
2.20.1