Index: ipfw2.c =================================================================== RCS file: /private/FreeBSD/src/sbin/ipfw/ipfw2.c,v retrieving revision 1.4.2.22 diff -u -p -r1.4.2.22 ipfw2.c --- ipfw2.c 7 Sep 2004 06:38:49 -0000 1.4.2.22 +++ ipfw2.c 8 Nov 2004 11:28:06 -0000 @@ -1498,7 +1498,7 @@ list_pipes(void *data, uint nbytes, int next = (char *)p + l; nbytes -= l; - if (rulenum != 0 && rulenum != p->pipe_nr) + if ((rulenum != 0 && rulenum != p->pipe_nr) || do_pipe == 2) continue; /* @@ -1532,6 +1532,12 @@ list_pipes(void *data, uint nbytes, int l = sizeof(*fs) + fs->rq_elements * sizeof(*q); next = (char *)fs + l; nbytes -= l; + + if (rulenum != 0 && ((rulenum != fs->fs_nr && do_pipe == 2) || + (rulenum != fs->parent_nr && do_pipe == 1))) { + continue; + } + q = (struct dn_flow_queue *)(fs+1); sprintf(prefix, "q%05d: weight %d pipe %d ", fs->fs_nr, fs->weight, fs->parent_nr);