From owner-freebsd-bugs@FreeBSD.ORG Fri Jun 2 03:20:16 2006 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B192316A56F for ; Fri, 2 Jun 2006 03:20:16 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id F3A0343D4C for ; Fri, 2 Jun 2006 03:20:14 +0000 (GMT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id k523KEVX096565 for ; Fri, 2 Jun 2006 03:20:14 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id k523KEt4096564; Fri, 2 Jun 2006 03:20:14 GMT (envelope-from gnats) Resent-Date: Fri, 2 Jun 2006 03:20:14 GMT Resent-Message-Id: <200606020320.k523KEt4096564@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Mark Andrews Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 61CAF16A8A6 for ; Fri, 2 Jun 2006 03:16:35 +0000 (UTC) (envelope-from Mark_Andrews@isc.org) Received: from farside.isc.org (farside.isc.org [204.152.187.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B07D43D46 for ; Fri, 2 Jun 2006 03:16:35 +0000 (GMT) (envelope-from Mark_Andrews@isc.org) Received: from drugs.dv.isc.org (localhost.isc.org [IPv6:::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by farside.isc.org (Postfix) with ESMTP id 67748E6031 for ; Fri, 2 Jun 2006 03:16:34 +0000 (UTC) (envelope-from marka@isc.org) Received: from drugs.dv.isc.org (localhost [127.0.0.1]) by drugs.dv.isc.org (8.13.4/8.13.4) with ESMTP id k523GUcD044991 for ; Fri, 2 Jun 2006 13:16:30 +1000 (EST) (envelope-from marka@drugs.dv.isc.org) Received: (from marka@localhost) by drugs.dv.isc.org (8.13.4/8.13.4/Submit) id k523GUGC044990; Fri, 2 Jun 2006 13:16:30 +1000 (EST) (envelope-from marka) Message-Id: <200606020316.k523GUGC044990@drugs.dv.isc.org> Date: Fri, 2 Jun 2006 13:16:30 +1000 (EST) From: Mark Andrews To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/98349: ipfw does not display dynamic IPv6 rules [patch] X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Mark Andrews List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 02 Jun 2006 03:20:16 -0000 >Number: 98349 >Category: bin >Synopsis: ipfw does not display dynamic IPv6 rules [patch] >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Jun 02 03:20:14 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Mark Andrews >Release: FreeBSD 6.1-PRERELEASE i386 >Organization: ISC >Environment: System: FreeBSD drugs.dv.isc.org 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #4: Fri Mar 24 10:55:39 EST 2006 marka@drugs.dv.isc.org:/usr/obj/usr/src/sys/DRUGS i386 >Description: ipfw does not display dynamic IPv6 rules >How-To-Repeat: Add a rule like this // support traceroute add 4500 set 1 pass udp from { me or me6 } to any keep-state out run traceroute6 to some destination. run "ipfw -d list" >Fix: --- /home/marka/ipfw2.c Fri Jun 2 13:11:11 2006 +++ ipfw2.c Fri Jun 2 13:03:39 2006 @@ -17,7 +17,7 @@ * * NEW command line interface for IP firewall facility * - * $FreeBSD: /repoman/r/ncvs/src/sbin/ipfw/ipfw2.c,v 1.76.2.6 2006/03/09 09:18:37 ume Exp $ + * $FreeBSD: src/sbin/ipfw/ipfw2.c,v 1.76.2.6 2006/03/09 09:18:37 ume Exp $ */ #include @@ -1931,6 +1931,7 @@ struct protoent *pe; struct in_addr a; uint16_t rulenum; + char buf[sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:123.123.123.123")]; if (!do_expired) { if (!d->expire && !(d->dyn_type == O_LIMIT_PARENT)) @@ -1959,11 +1960,21 @@ else printf(" proto %u", d->id.proto); - a.s_addr = htonl(d->id.src_ip); - printf(" %s %d", inet_ntoa(a), d->id.src_port); - - a.s_addr = htonl(d->id.dst_ip); - printf(" <-> %s %d", inet_ntoa(a), d->id.dst_port); + if (d->id.addr_type == 4) { + a.s_addr = htonl(d->id.src_ip); + printf(" %s %d", inet_ntoa(a), d->id.src_port); + + a.s_addr = htonl(d->id.dst_ip); + printf(" <-> %s %d", inet_ntoa(a), d->id.dst_port); + } else if (d->id.addr_type == 6) { + printf(" %s %d", + inet_ntop(AF_INET6, &d->id.src_ip6, buf, sizeof(buf)), + d->id.src_port); + printf(" <-> %s %d", + inet_ntop(AF_INET6, &d->id.dst_ip6, buf, sizeof(buf)), + d->id.dst_port); + } else + printf("UNKNOWN <-> UNKNOWN"); printf("\n"); } >Release-Note: >Audit-Trail: >Unformatted: