From 197b393ddab8d144d869a8a4f024e6ba1e92d941 Mon Sep 17 00:00:00 2001
From: Eric Garver <eric@garver.life>
Date: Wed, 7 Aug 2019 08:41:11 -0400
Subject: [PATCH 28/28] test: regression/rhbz1734765: add coverage for rhbz
1738545
(cherry picked from commit 20cd5c7d29c586fa55e76d6f21adfee6a7ca34bb)
---
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 d2158e34b547..168be70a2900 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])
@@ -49,6 +77,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
@@ -72,6 +102,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
@@ -90,6 +121,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
@@ -107,6 +139,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]
@@ -121,6 +154,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]
@@ -135,6 +169,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]
@@ -149,6 +184,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