firewall3: support table load on access on Linux 5.15+
authorAnsuel Smith <ansuelsmth@gmail.com>
Fri, 7 Jan 2022 17:22:17 +0000 (18:22 +0100)
committerRui Salvaterra <rsalvaterra@gmail.com>
Sat, 8 Jan 2022 11:33:39 +0000 (11:33 +0000)
commit3624c3786601699b6e7f9d18209fad0d7c6fe4e9
treebd5a62c931ce2dd3a2957968358d7e1a1cb49da8
parent40e5f6a2bd0b5406eff7e1d2d4f95bbf8f9410a4
firewall3: support table load on access on Linux 5.15+

With Linux 5.15+, tables are loaded on access. Firewall3 uses the
ip{,6}_tables_names proc entries to check if a table exists. In this new
implementation, the proc entries can contain wrong data if a table is present
but never used, and firewall3 will incorrectly think that the table is
unavailable. This causes configuration problems, since after a normal boot the
proc entries contain only the "filter" table and are missing "raw", "mangle" and
"nat".

To fix this, "poke" the tables to load them, simply by opening and closing them
without doing any operation. This simple operation is sufficient to make the
missing tables appear in the proc entries.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
[Reword the commit message and code comment]
Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
main.c