bin/115372: [ipfw]: "ipfw show" prints ill result.
Tsurutani Naoki
turutani at scphys.kyoto-u.ac.jp
Fri Aug 10 02:50:09 PDT 2007
The following reply was made to PR bin/115372; it has been noted by GNATS.
From: Tsurutani Naoki <turutani at scphys.kyoto-u.ac.jp>
To: bug-followup at FreeBSD.org, "Andrey V. Elsukov" <bu7cher at yandex.ru>
Cc: Maxim Konovalov <maxim at FreeBSD.org>, Oleg Bulyzhin <oleg at FreeBSD.org>
Subject: Re: bin/115372: [ipfw]: "ipfw show" prints ill result.
Date: Fri, 10 Aug 2007 18:30:58 +0900
Hello,
"Andrey V. Elsukov" <bu7cher at yandex.ru> wrote:
> this bug was not introduced by mentioned commit.
> You can see this bug also with following rules:
> # ipfw add allow ip from any to any not ipid 1,2,3,4,5
> # ipfw add allow ip from any to any not ipttl 1,2,3,4,5
> # ipfw add allow ip from any to any not iplen 1,2,3,4,5
> and "not tcpdatalen 1,2,3,4", "not tagged 1,2,3,4".
That's right.
I tried some of above, and the previous version can produce
duplicated "not".
On my FreeBSD 6-STABLE host, the patch should be modified (only about line numbers),
like following;
@@ -632,8 +632,6 @@
int i;
char const *sep;
- if (cmd->o.len & F_NOT)
- printf(" not");
if (opcode != 0) {
sep = match_value(_port_name, opcode);
if (sep == NULL)
@@ -1715,6 +1713,8 @@
show_prerequisites(&flags, HAVE_PROTO|HAVE_SRCIP, 0);
if ((cmd->len & F_OR) && !or_block)
printf(" {");
+ if (cmd->len & F_NOT)
+ printf(" not");
print_newports((ipfw_insn_u16 *)cmd, proto,
(flags & HAVE_OPTIONS) ? cmd->opcode : 0);
break;
However, I do not know whether it is perfect or insufficient.
Please fix as you think good.
Thank you for your follow-up and patch.
More information about the freebsd-ipfw
mailing list