Date: Mon, 23 Aug 2004 18:57:18 +0200 From: Pawel Jakub Dawidek <pjd@FreeBSD.org> To: Pawel Malachowski <pawmal-posting@freebsd.lublin.pl> Cc: FreeBSD-gnats-submit@FreeBSD.org Subject: Re: bin/70311: ipfw(8) pipe/queue show N displays data not only for N Message-ID: <20040823165718.GQ30151@darkness.comp.waw.pl> In-Reply-To: <20040811163426.E06283474C2@shellma.zin.lublin.pl> References: <20040811163426.E06283474C2@shellma.zin.lublin.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
--7vS62bsm3BVGCDKV Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Aug 11, 2004 at 06:34:26PM +0200, Pawel Malachowski wrote: +> 2. After patching: +> `ipfw pipe show N' displays data for pipe N and queues with parentpipe= =3DN. +> `ipfw queue show N' displays data for queue N and no pipes. +>=20 +> *** /usr/src/sbin/ipfw/ipfw2.c.orig Wed Aug 11 18:08:27 2004 +> --- /usr/src/sbin/ipfw/ipfw2.c Wed Aug 11 18:27:21 2004 +> *************** +> *** 1498,1504 **** +> next =3D (char *)p + l; +> nbytes -=3D l; +>=20 +> ! if (rulenum !=3D 0 && rulenum !=3D p->pipe_nr) +> continue; +>=20 +> /* +> --- 1498,1504 ---- +> next =3D (char *)p + l; +> nbytes -=3D l; +>=20 +> ! if ( (rulenum !=3D 0 && rulenum !=3D p->pipe_nr) || (do_= pipe=3D=3D2) ) +> continue; +>=20 +> /* +> *************** +> *** 1532,1537 **** +> --- 1532,1542 ---- +> l =3D sizeof(*fs) + fs->rq_elements * sizeof(*q); +> next =3D (char *)fs + l; +> nbytes -=3D l; +> + +> + if (rulenum !=3D 0 && ((rulenum !=3D fs->fs_nr && do_pip= e=3D=3D2) +> + || (rulenum !=3D fs->parent_nr && do_pipe=3D=3D1))) +> + continue; +> + +> q =3D (struct dn_flow_queue *)(fs+1); +> sprintf(prefix, "q%05d: weight %d pipe %d ", +> fs->fs_nr, fs->weight, fs->parent_nr); This patch doesn't work for me as expected. It shows all pipes and queues with parentpipe=3DN. Could you check this patch (it is against -CURRENT, but it should be easy to apply it to 4.x): Index: ipfw2.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /private/FreeBSD/src/sbin/ipfw/ipfw2.c,v retrieving revision 1.54 diff -u -p -r1.54 ipfw2.c --- ipfw2.c 12 Aug 2004 22:06:55 -0000 1.54 +++ ipfw2.c 23 Aug 2004 16:51:26 -0000 @@ -1564,6 +1564,12 @@ list_pipes(void *data, uint nbytes, int=20 l =3D sizeof(*fs) + fs->rq_elements * sizeof(*q); next =3D (char *)fs + l; nbytes -=3D l; + + if (rulenum !=3D 0 && ((rulenum !=3D fs->fs_nr && do_pipe =3D=3D 2) || + (rulenum !=3D fs->parent_nr && do_pipe =3D=3D 1))) { + continue; + } + q =3D (struct dn_flow_queue *)(fs+1); sprintf(prefix, "q%05d: weight %d pipe %d ", fs->fs_nr, fs->weight, fs->parent_nr); Basically, it looks that first addition of 'do_pipe=3D=3D2' is bogus. PS. Could you use unified diff format for patches generation? --=20 Pawel Jakub Dawidek http://www.FreeBSD.org pjd@FreeBSD.org http://garage.freebsd.pl FreeBSD committer Am I Evil? Yes, I Am! --7vS62bsm3BVGCDKV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFBKiHuForvXbEpPzQRAr79AKChjiIY5ShwiIU+KZO76i1LfXhOOACfTQAm +gD5Y8Oo0SVqDdg5d28LbGk= =mOse -----END PGP SIGNATURE----- --7vS62bsm3BVGCDKV--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040823165718.GQ30151>