Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Nov 2002 18:40:02 -0800 (PST)
From:      Chris Pepper <pepper@reppep.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: kern/44843: ipfw -t l doesn't align columns quite right
Message-ID:  <200211050240.gA52e2IU042841@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/44843; it has been noted by GNATS.

From: Chris Pepper <pepper@reppep.com>
To: Giorgos Keramidas <keramida@freebsd.org>
Cc: bug-followup@freebsd.org, Luigi Rizzo <luigi@freebsd.org>
Subject: Re: kern/44843: ipfw -t l doesn't align columns quite right
Date: Mon, 4 Nov 2002 21:28:43 -0500

 	Looks much better, thanks.
 
 
 						Chris
 
 At 5:17 PM +0200 2002/11/04, Giorgos Keramidas wrote:
 >On 2002-11-04 09:26, Chris Pepper <pepper@reppep.com> wrote:
 >>	Sorry, I'm using ipfw1 -- isn't this for v2?
 >
 >Err, yes.  Sorry 'bout that.  I don't have a -STABLE machine right
 >now.  Does the following work for your ipfw version?  I have tested
 >that it compiles on ref4.freebsd.org but I don't have access to a
 >-stable system to run ipfw and see if it fixes it all.  I've tried to
 >make changes both to ipfw.c and ipfw2.c since the necessary diffs were
 >pretty similar...
 >
 >%%%
 >Index: ipfw.c
 >===================================================================
 >RCS file: /home/ncvs/src/sbin/ipfw/ipfw.c,v
 >retrieving revision 1.80.2.24
 >diff -u -r1.80.2.24 ipfw.c
 >--- ipfw.c	26 Sep 2002 07:19:05 -0000	1.80.2.24
 >+++ ipfw.c	4 Nov 2002 14:52:51 -0000
 >@@ -183,6 +183,7 @@
 >  static void
 >  show_ipfw(struct ip_fw *chain, int pcwidth, int bcwidth)
 >  {
 >+	static int twidth = 0;
 >  	char comma;
 >  	u_long adrt;
 >  	struct hostent *he;
 >@@ -200,14 +201,19 @@
 >  		printf("%*qu %*qu ", pcwidth, chain->fw_pcnt, 
 >bcwidth, chain->fw_bcnt);
 >
 >  	if (do_time) {
 >-		if (chain->timestamp) {
 >-			char timestr[30];
 >+		char timestr[30];
 >
 >+		if (twidth == 0) {
 >+			strcpy(timestr, ctime((time_t *)&twidth));
 >+			*strchr(timestr, '\n') = '\0';
 >+			twidth = strlen(timestr);
 >+		}
 >+		if (chain->timestamp) {
 >  			strcpy(timestr, ctime((time_t *)&chain->timestamp));
 >  			*strchr(timestr, '\n') = '\0';
 >  			printf("%s ", timestr);
 >  		} else {
 >-			printf("			 ");
 >+			printf("%*s ", twidth, " ");
 >  		}
 >  	}
 >  	if (chain->fw_flg == IP_FW_F_CHECK_S) {
 >Index: ipfw2.c
 >===================================================================
 >RCS file: /home/ncvs/src/sbin/ipfw/ipfw2.c,v
 >retrieving revision 1.4.2.6
 >diff -u -r1.4.2.6 ipfw2.c
 >--- ipfw2.c	10 Oct 2002 20:46:04 -0000	1.4.2.6
 >+++ ipfw2.c	4 Nov 2002 14:57:24 -0000
 >@@ -803,6 +803,7 @@
 >  static void
 >  show_ipfw(struct ip_fw *rule)
 >  {
 >+	static int twidth = 0;
 >  	int l;
 >  	ipfw_insn *cmd;
 >  	int proto = 0;		/* default */
 >@@ -824,8 +825,14 @@
 >  		printf("%10qu %10qu ", rule->pcnt, rule->bcnt);
 >
 >  	if (do_time) {
 >+		char timestr[30];
 >+
 >+		if (twidth == 0) {
 >+			strcpy(timestr, ctime((time_t *)&twidth));
 >+			*strchr(timestr, '\n') = '\0';
 >+			twidth = strlen(timestr);
 >+		}
 >  		if (rule->timestamp) {
 >-			char timestr[30];
 >  #if _FreeBSD_version < 500000 /* XXX check */
 >  #define	_long_to_time(x)	(time_t)(x)
 >  #endif
 >@@ -835,7 +842,7 @@
 >  			*strchr(timestr, '\n') = '\0';
 >  			printf("%s ", timestr);
 >  		} else {
 >-			printf("			 ");
 >+			printf("%*s ", twidth, " ");
 >  		}
 >  	}
 >
 >%%%
 
 
 -- 
 Chris Pepper:               <http://www.reppep.com/~pepper/>;
 Rockefeller University:     <http://www.rockefeller.edu/>;

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211050240.gA52e2IU042841>