git: fd258b6dd15b - stable/14 - ipfw: make 'ipfw show' output compatible with 'ipfw add' command
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 21 Feb 2025 11:17:53 UTC
The branch stable/14 has been updated by ae:
URL: https://cgit.FreeBSD.org/src/commit/?id=fd258b6dd15b663767a2c919489ba278333abd95
commit fd258b6dd15b663767a2c919489ba278333abd95
Author: Andrey V. Elsukov <ae@FreeBSD.org>
AuthorDate: 2025-02-11 09:48:17 +0000
Commit: Andrey V. Elsukov <ae@FreeBSD.org>
CommitDate: 2025-02-21 11:16:15 +0000
ipfw: make 'ipfw show' output compatible with 'ipfw add' command
If rule was added in compact form and rule body is empty, print
'proto ip' opcode to be compatible with ipfw(8) syntax parser.
Before:
$ ipfw add allow proto ip
000700 allow
After:
$ ipfw add allow proto ip
000700 allow proto ip
(cherry picked from commit 706a03f61bbb6e0cf10e6c3727966495b30d763e)
---
sbin/ipfw/ipfw2.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sbin/ipfw/ipfw2.c b/sbin/ipfw/ipfw2.c
index 7a8601aad46a..beff243ecdbd 100644
--- a/sbin/ipfw/ipfw2.c
+++ b/sbin/ipfw/ipfw2.c
@@ -2380,6 +2380,13 @@ show_static_rule(struct cmdline_opts *co, struct format_opts *fo,
if (rule->flags & IPFW_RULE_JUSTOPTS) {
state.flags |= HAVE_PROTO | HAVE_SRCIP | HAVE_DSTIP;
+ /*
+ * Print `proto ip` if all opcodes has been already printed.
+ */
+ if (memchr(state.printed, 0, rule->act_ofs) == NULL) {
+ bprintf(bp, " proto ip");
+ goto end;
+ }
goto justopts;
}