From c293e116fc6130baae9ed82ca122b69ee6ff8390 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 15 Mar 2022 12:45:04 +0100 Subject: nft: Review static extension loading Combine the init_extensions() call common to all families, do not load IPv6 extensions for iptables and vice versa, drop the outdated comment about "same table". Signed-off-by: Phil Sutter --- iptables/xtables-restore.c | 7 +++---- iptables/xtables-save.c | 8 ++++---- iptables/xtables-standalone.c | 7 +++---- iptables/xtables-translate.c | 7 +++---- 4 files changed, 13 insertions(+), 16 deletions(-) (limited to 'iptables') diff --git a/iptables/xtables-restore.c b/iptables/xtables-restore.c index 0250ed7d..b3cf4017 100644 --- a/iptables/xtables-restore.c +++ b/iptables/xtables-restore.c @@ -360,19 +360,18 @@ xtables_restore_main(int family, const char *progname, int argc, char *argv[]) p.in = stdin; } + init_extensions(); switch (family) { case NFPROTO_IPV4: - case NFPROTO_IPV6: /* fallthough, same table */ - init_extensions(); init_extensions4(); + break; + case NFPROTO_IPV6: init_extensions6(); break; case NFPROTO_ARP: - init_extensions(); init_extensionsa(); break; case NFPROTO_BRIDGE: - init_extensions(); init_extensionsb(); break; default: diff --git a/iptables/xtables-save.c b/iptables/xtables-save.c index 3b6b7e25..5a82cac5 100644 --- a/iptables/xtables-save.c +++ b/iptables/xtables-save.c @@ -199,16 +199,17 @@ xtables_save_main(int family, int argc, char *argv[], exit(1); } + init_extensions(); switch (family) { case NFPROTO_IPV4: - case NFPROTO_IPV6: /* fallthough, same table */ - init_extensions(); init_extensions4(); + d.commit = true; + break; + case NFPROTO_IPV6: init_extensions6(); d.commit = true; break; case NFPROTO_ARP: - init_extensions(); init_extensionsa(); break; case NFPROTO_BRIDGE: { @@ -220,7 +221,6 @@ xtables_save_main(int family, int argc, char *argv[], d.format &= ~FMT_NOCOUNTS; d.format |= FMT_C_COUNTS | FMT_EBT_SAVE; } - init_extensions(); init_extensionsb(); break; } diff --git a/iptables/xtables-standalone.c b/iptables/xtables-standalone.c index 3faae02d..117b0c69 100644 --- a/iptables/xtables-standalone.c +++ b/iptables/xtables-standalone.c @@ -67,19 +67,18 @@ xtables_main(int family, const char *progname, int argc, char *argv[]) exit(1); } xt_params->program_name = progname; + init_extensions(); switch (family) { case NFPROTO_IPV4: - case NFPROTO_IPV6: - init_extensions(); init_extensions4(); + break; + case NFPROTO_IPV6: init_extensions6(); break; case NFPROTO_ARP: - init_extensions(); init_extensionsa(); break; case NFPROTO_BRIDGE: - init_extensions(); init_extensionsb(); break; } diff --git a/iptables/xtables-translate.c b/iptables/xtables-translate.c index 07a9c1be..d1e87f16 100644 --- a/iptables/xtables-translate.c +++ b/iptables/xtables-translate.c @@ -485,19 +485,18 @@ static int xtables_xlate_main_common(struct nft_handle *h, xtables_globals.program_version); return 1; } + init_extensions(); switch (family) { case NFPROTO_IPV4: - case NFPROTO_IPV6: /* fallthrough: same table */ - init_extensions(); init_extensions4(); + break; + case NFPROTO_IPV6: init_extensions6(); break; case NFPROTO_ARP: - init_extensions(); init_extensionsa(); break; case NFPROTO_BRIDGE: - init_extensions(); init_extensionsb(); break; default: -- cgit v1.2.3