First three patches eliminate the 'print_help' callback added to struct xtables_globals by making xtables_printhelp() do the right thing for arptables as well. Due to the shared parser there are only a few distinct options left anyway. While doing so, help output is aligned with legacy arptables which prints all extensions' help texts even if not requested for. Patch four changes how the different optstrings are passed to the shared parser. Via central storage in xshared.h and a helper function which maps from afinfo->family value, struct xtables_global's 'optstring' field may be dropped again. The last patch just undoes the "fix" to struct xtables_pprot. It is not a problem which may occur during run-time and the compiler complains if code changes would trigger the bug. Phil Sutter (5): extensions: MARK: Drop extra newline at end of help xshared: Move arp_opcodes into shared space xshared: Extend xtables_printhelp() for arptables libxtables: Drop xtables_globals 'optstring' field libxtables: Revert change to struct xtables_pprot extensions/libarpt_mangle.c | 1 - extensions/libxt_MARK.c | 3 +- include/xtables.h | 4 +- iptables/ip6tables.c | 2 - iptables/iptables.c | 2 - iptables/nft-arp.c | 22 ++------ iptables/nft-arp.h | 7 --- iptables/xshared.c | 84 ++++++++++++++++++++++++---- iptables/xshared.h | 7 ++- iptables/xtables-arp.c | 106 ------------------------------------ iptables/xtables-eb.c | 3 +- iptables/xtables-monitor.c | 1 - iptables/xtables.c | 3 - 13 files changed, 86 insertions(+), 159 deletions(-) delete mode 100644 iptables/nft-arp.h -- 2.34.1