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);