Module Name:    src
Committed By:   bouyer
Date:           Tue Mar 31 17:56:41 UTC 2009

Modified Files:
        src/usr.bin/netstat [netbsd-4]: inet.c inet6.c iso.c

Log Message:
Pull up following revision(s) (requested by dholland in ticket #1292):
        usr.bin/netstat/inet.c: revision 1.89
        usr.bin/netstat/inet6.c: revision 1.51
        usr.bin/netstat/iso.c: revision 1.31
Make netstat handle -a properly; that is, don't show unconnected
listener sockets unless -a was given. (It was checking the local
address instead of the remote address for being INADDR_ANY or
equivalent.)
PR 38093 from Dieter Roelants; I adjusted the patch a little.


To generate a diff of this commit:
cvs rdiff -u -r1.77 -r1.77.2.1 src/usr.bin/netstat/inet.c
cvs rdiff -u -r1.40 -r1.40.2.1 src/usr.bin/netstat/inet6.c
cvs rdiff -u -r1.26 -r1.26.4.1 src/usr.bin/netstat/iso.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/netstat/inet.c
diff -u src/usr.bin/netstat/inet.c:1.77 src/usr.bin/netstat/inet.c:1.77.2.1
--- src/usr.bin/netstat/inet.c:1.77	Fri Sep 22 23:21:52 2006
+++ src/usr.bin/netstat/inet.c	Tue Mar 31 17:56:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet.c,v 1.77 2006/09/22 23:21:52 elad Exp $	*/
+/*	$NetBSD: inet.c,v 1.77.2.1 2009/03/31 17:56:41 bouyer Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "from: @(#)inet.c	8.4 (Berkeley) 4/20/94";
 #else
-__RCSID("$NetBSD: inet.c,v 1.77 2006/09/22 23:21:52 elad Exp $");
+__RCSID("$NetBSD: inet.c,v 1.77.2.1 2009/03/31 17:56:41 bouyer Exp $");
 #endif
 #endif /* not lint */
 
@@ -215,6 +215,10 @@
 			memcpy(&src, &pcblist[i].ki_s, sizeof(src));
 			memcpy(&dst, &pcblist[i].ki_d, sizeof(dst));
 
+			if (!aflag &&
+			    inet_lnaof(dst.sin_addr) == INADDR_ANY)
+				continue;
+
 			if (first) {
 				protoprhdr();
 				first = 0;
@@ -252,7 +256,7 @@
 			continue;
 
 		if (!aflag &&
-		    inet_lnaof(inpcb.inp_laddr) == INADDR_ANY)
+		    inet_lnaof(inpcb.inp_faddr) == INADDR_ANY)
 			continue;
 		kread((u_long)inpcb.inp_socket, (char *)&sockb, sizeof (sockb));
 		if (istcp) {

Index: src/usr.bin/netstat/inet6.c
diff -u src/usr.bin/netstat/inet6.c:1.40 src/usr.bin/netstat/inet6.c:1.40.2.1
--- src/usr.bin/netstat/inet6.c:1.40	Fri Sep 22 23:21:52 2006
+++ src/usr.bin/netstat/inet6.c	Tue Mar 31 17:56:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet6.c,v 1.40 2006/09/22 23:21:52 elad Exp $	*/
+/*	$NetBSD: inet6.c,v 1.40.2.1 2009/03/31 17:56:41 bouyer Exp $	*/
 /*	BSDI inet.c,v 2.3 1995/10/24 02:19:29 prb Exp	*/
 
 /*
@@ -64,7 +64,7 @@
 #if 0
 static char sccsid[] = "@(#)inet.c	8.4 (Berkeley) 4/20/94";
 #else
-__RCSID("$NetBSD: inet6.c,v 1.40 2006/09/22 23:21:52 elad Exp $");
+__RCSID("$NetBSD: inet6.c,v 1.40.2.1 2009/03/31 17:56:41 bouyer Exp $");
 #endif
 #endif /* not lint */
 
@@ -276,6 +276,9 @@
 			memcpy(&src, &pcblist[i].ki_s, sizeof(src));
 			memcpy(&dst, &pcblist[i].ki_d, sizeof(dst));
 
+			if (!aflag && IN6_IS_ADDR_UNSPECIFIED(&dst.sin6_addr))
+				continue;
+
 			if (first) {
 				ip6protoprhdr();
 				first = 0;
@@ -312,7 +315,7 @@
 		if (in6pcb.in6p_af != AF_INET6)
 			continue;
 
-		if (!aflag && IN6_IS_ADDR_UNSPECIFIED(&in6pcb.in6p_laddr))
+		if (!aflag && IN6_IS_ADDR_UNSPECIFIED(&in6pcb.in6p_faddr))
 			continue;
 		kread((u_long)in6pcb.in6p_socket, (char *)&sockb, 
 		    sizeof (sockb));

Index: src/usr.bin/netstat/iso.c
diff -u src/usr.bin/netstat/iso.c:1.26 src/usr.bin/netstat/iso.c:1.26.4.1
--- src/usr.bin/netstat/iso.c:1.26	Sat May 27 23:57:32 2006
+++ src/usr.bin/netstat/iso.c	Tue Mar 31 17:56:41 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: iso.c,v 1.26 2006/05/27 23:57:32 elad Exp $	*/
+/*	$NetBSD: iso.c,v 1.26.4.1 2009/03/31 17:56:41 bouyer Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "from: @(#)iso.c	8.1 (Berkeley) 6/6/93";
 #else
-__RCSID("$NetBSD: iso.c,v 1.26 2006/05/27 23:57:32 elad Exp $");
+__RCSID("$NetBSD: iso.c,v 1.26.4.1 2009/03/31 17:56:41 bouyer Exp $");
 #endif
 #endif /* not lint */
 
@@ -376,7 +376,7 @@
 	struct inpcb inpcb;
 
 	kget(tpcb.tp_npcb, inpcb);
-	if (!aflag && inet_lnaof(inpcb.inp_laddr) == INADDR_ANY)
+	if (!aflag && inet_lnaof(inpcb.inp_faddr) == INADDR_ANY)
 		return;
 	if (Aflag)
 		printf("%8lx ", pcb);

Reply via email to