diff --git a/lib/puppet/provider/firewall/firewall.rb b/lib/puppet/provider/firewall/firewall.rb index dc41b3eb7..548ac272b 100644 --- a/lib/puppet/provider/firewall/firewall.rb +++ b/lib/puppet/provider/firewall/firewall.rb @@ -15,7 +15,7 @@ class Puppet::Provider::Firewall::Firewall 'ip6tables' => 'ip6tables-save' } # Regex used to divide output of$list_command between tables - $table_regex = %r{(\*(?:nat|mangle|filter|raw|rawpost|broute|security)[^*]+)} + $table_regex = %r{(\*(?:nat|mangle|filter|raw|rawpost|broute|security)(?:[\s\S])+?)(?=^\*|\z)} # Regex used to retrieve table name $table_name_regex = %r{^\*(nat|mangle|filter|raw|rawpost|broute|security)} # Regex used to retrieve Rules diff --git a/lib/puppet/provider/firewallchain/firewallchain.rb b/lib/puppet/provider/firewallchain/firewallchain.rb index 5aff8d18c..3b2d4a760 100644 --- a/lib/puppet/provider/firewallchain/firewallchain.rb +++ b/lib/puppet/provider/firewallchain/firewallchain.rb @@ -12,7 +12,7 @@ class Puppet::Provider::Firewallchain::Firewallchain 'IPv6' => 'ip6tables-save' } # Regex used to divide output of$list_command between tables - $table_regex = %r{(\*(?:nat|mangle|filter|raw|rawpost|broute|security)[^*]+)} + $table_regex = %r{(\*(?:nat|mangle|filter|raw|rawpost|broute|security)(?:[\s\S])+?)(?=^\*|\z)} # Regex used to retrieve table name $table_name_regex = %r{^\*(nat|mangle|filter|raw|rawpost|broute|security)} # Regex used to retrieve Chains diff --git a/spec/unit/puppet/provider/firewallchain/firewallchain_spec.rb b/spec/unit/puppet/provider/firewallchain/firewallchain_spec.rb index 35c59c576..c452ca6ae 100644 --- a/spec/unit/puppet/provider/firewallchain/firewallchain_spec.rb +++ b/spec/unit/puppet/provider/firewallchain/firewallchain_spec.rb @@ -210,18 +210,18 @@ :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [39:3092] :TEST_ONE - [0:0] -COMMIT --A TEST_ONE -p tcp -m comment --comment "001 test rule" +-A TEST_ONE -p tcp -m comment --comment "001 test * rule" -A INPUT -p tcp -m comment --comment "004 test rule" -A TEST_ONE -p tcp -m comment --comment "ignore_this foreign" -A TEST_ONE -p tcp -m comment --comment "foreign" +COMMIT # Completed on Thu Aug 10 10:15:14 2023 # Generated by iptables-save v1.8.4 on Thu Aug 10 10:15:14 2023 *raw :PREROUTING ACCEPT [13222:23455532] :OUTPUT ACCEPT [12523:852730] -COMMIT -A OUTPUT -p tcp -m comment --comment "003 test rule" +COMMIT # Completed on Thu Aug 10 10:15:14 2023 ' end @@ -233,14 +233,14 @@ :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [13:824] :TEST_TWO - [0:0] -COMMIT -A OUTPUT -p tcp -m comment --comment "005 test rule" +COMMIT # Completed on Thu Aug 10 10:21:55 2023 *raw :PREROUTING ACCEPT [13222:23455532] :OUTPUT ACCEPT [12523:852730] -COMMIT -A TEST_TWO -p tcp -m comment --comment "002 test rule" +COMMIT # Completed on Thu Aug 10 10:21:55 2023 ' end @@ -248,15 +248,15 @@ [ { should: { name: 'TEST_ONE:filter:IPv4', purge: true, ensure: 'present' }, - purge: ['001 test rule', '9003 ignore_this foreign', '9004 foreign'] + purge: ['001 test * rule', '9003 ignore_this foreign', '9004 foreign'] }, { should: { name: 'TEST_ONE:filter:IPv4', purge: true, ignore: 'ignore_this', ensure: 'present' }, - purge: ['001 test rule', '9004 foreign'] + purge: ['001 test * rule', '9004 foreign'] }, { should: { name: 'TEST_ONE:filter:IPv4', purge: true, ignore_foreign: true, ensure: 'present' }, - purge: ['001 test rule'] + purge: ['001 test * rule'] }, { should: { name: 'TEST_TWO:raw:IPv6', purge: true, ensure: 'present' },