FWD_START_TEST([service include]) AT_KEYWORDS(service xml gh273 rhbz1720300) AT_CHECK([mkdir -p ./services]) AT_CHECK([cat < ./services/my-service-with-include.xml my-service-with-include This service includes other services HERE ]) AT_CHECK([cat < ./services/recursive-service.xml recursive-service Include a service that included us HERE ]) FWD_RELOAD FWD_CHECK([-q --zone=drop --add-interface=foobar0]) FWD_CHECK([-q --zone=drop --add-service=my-service-with-include]) FWD_CHECK([--zone=drop --list-services], 0, [dnl my-service-with-include ]) dnl check recursive includes FWD_CHECK([-q --zone=drop --add-service=recursive-service]) FWD_CHECK([-q --zone=drop --remove-service=recursive-service]) NFT_LIST_RULES([inet], [filter_IN_drop_allow], 0, [dnl table inet firewalld { chain filter_IN_drop_allow { ip daddr 239.255.255.250 udp dport 1900 ct state new,untracked accept ip6 daddr ff02::c udp dport 1900 ct state new,untracked accept ip daddr 224.0.0.251 udp dport 5353 ct state new,untracked accept ip6 daddr ff02::fb udp dport 5353 ct state new,untracked accept tcp dport 12345 ct state new,untracked accept } } ]) IPTABLES_LIST_RULES([filter], [IN_drop_allow], 0, [dnl ACCEPT udp -- 0.0.0.0/0 239.255.255.250 udp dpt:1900 ctstate NEW,UNTRACKED ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 ctstate NEW,UNTRACKED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12345 ctstate NEW,UNTRACKED ]) IP6TABLES_LIST_RULES([filter], [IN_drop_allow], 0, [dnl ACCEPT udp ::/0 ff02::c udp dpt:1900 ctstate NEW,UNTRACKED ACCEPT udp ::/0 ff02::fb udp dpt:5353 ctstate NEW,UNTRACKED ACCEPT tcp ::/0 ::/0 tcp dpt:12345 ctstate NEW,UNTRACKED ]) dnl firewall-cmd FWD_CHECK([--permanent --service=my-service-with-include --query-include=recursive-service], 0, [ignore], [ignore]) FWD_CHECK([-q --permanent --service=my-service-with-include --add-include=ssh]) FWD_CHECK([--permanent --service=my-service-with-include --query-include=ssh], 0, [ignore], [ignore]) AT_CHECK([grep '' ./services/my-service-with-include.xml ], 0, [ignore], [ignore]) FWD_CHECK([-q --permanent --service=my-service-with-include --remove-include=ssh]) FWD_CHECK([--permanent --service=my-service-with-include --query-include=ssh], 1, [ignore], [ignore]) AT_CHECK([grep '' ./services/my-service-with-include.xml ], 1, [ignore], [ignore]) FWD_CHECK([--permanent --service=my-service-with-include --get-includes], 0, [dnl mdns recursive-service ssdp ]) FWD_CHECK([--permanent --info-service=my-service-with-include | TRIM_WHITESPACE], 0, [m4_strip([dnl my-service-with-include ports: 12345/tcp protocols: source-ports: modules: destination: includes: mdns recursive-service ssdp helpers: ])]) FWD_CHECK([--info-service=my-service-with-include | TRIM_WHITESPACE], 0, [m4_strip([dnl my-service-with-include ports: 12345/tcp protocols: source-ports: modules: destination: includes: mdns recursive-service ssdp helpers: ])]) dnl firewall-offline-cmd FWD_OFFLINE_CHECK([--service=my-service-with-include --query-include=recursive-service], 0, [ignore], [ignore]) FWD_OFFLINE_CHECK([-q --service=my-service-with-include --add-include=ssh]) FWD_OFFLINE_CHECK([--service=my-service-with-include --query-include=ssh], 0, [ignore], [ignore]) AT_CHECK([grep '' ./services/my-service-with-include.xml ], 0, [ignore], [ignore]) FWD_OFFLINE_CHECK([-q --service=my-service-with-include --remove-include=ssh]) FWD_OFFLINE_CHECK([--service=my-service-with-include --query-include=ssh], 1, [ignore], [ignore]) AT_CHECK([grep '' ./services/my-service-with-include.xml ], 1, [ignore], [ignore]) FWD_OFFLINE_CHECK([--service=my-service-with-include --get-includes], 0, [dnl mdns recursive-service ssdp ]) FWD_OFFLINE_CHECK([--info-service=my-service-with-include | TRIM_WHITESPACE], 0, [m4_strip([dnl my-service-with-include ports: 12345/tcp protocols: source-ports: modules: destination: includes: mdns recursive-service ssdp helpers: ])]) dnl negative test for including service that doesn't exist FWD_CHECK([-q --permanent --zone=drop --add-interface=foobar0]) FWD_CHECK([-q --permanent --zone=drop --add-service=my-service-with-include]) FWD_CHECK([-q --permanent --service=my-service-with-include --add-include=does-not-exist]) FWD_RELOAD(101, [ignore], [ignore], 251) FWD_CHECK([--zone=drop --list-services], 0, [dnl ]) FWD_CHECK([--zone=public --list-services], 0, [dnl cockpit dhcpv6-client ssh ]) FWD_CHECK([-q --permanent --service=my-service-with-include --remove-include=does-not-exist]) FWD_RELOAD FWD_END_TEST([-e '/ERROR: INVALID_SERVICE: does-not-exist/d'])