for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
{
- if (!fw3_has_table(family == FW3_FAMILY_V6, fw3_flag_names[table]))
- continue;
-
if (!(handle = fw3_ipt_open(family, table)))
continue;
continue;
}
+ /* Linux 5.15+: make sure the tables are loaded and
+ * /proc/net/ip{,6}_tables_names are thus populated.
+ */
for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
{
- if (!fw3_has_table(family == FW3_FAMILY_V6, fw3_flag_names[table]))
+ if (!(handle = fw3_ipt_open(family, table)))
continue;
+ fw3_ipt_close(handle);
+ }
+
+ for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
+ {
if (!(handle = fw3_ipt_open(family, table)))
continue;
for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
{
- if (!fw3_has_table(family == FW3_FAMILY_V6, fw3_flag_names[table]))
- continue;
-
if (!(handle = fw3_ipt_open(family, table)))
continue;
fw3_ipt_close(handle);
}
+ fw3_ipsets_update_run_state(family, run_state, cfg_state);
fw3_destroy_ipsets(run_state, family, true);
family_set(run_state, family, false);
for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
{
- if (!fw3_has_table(family == FW3_FAMILY_V6, fw3_flag_names[table]))
- continue;
-
if (!(handle = fw3_ipt_open(family, table)))
continue;
for (table = FW3_TABLE_FILTER; table <= FW3_TABLE_RAW; table++)
{
- if (!fw3_has_table(family == FW3_FAMILY_V6, fw3_flag_names[table]))
- continue;
-
if (!(handle = fw3_ipt_open(family, table)))
continue;