git: bd27c71c4573 - main - netstat: reduce use of historical Internet classes

From: Mike Karels <karels_at_FreeBSD.org>
Date: Tue, 09 Nov 2021 15:36:07 UTC
The branch main has been updated by karels:

URL: https://cgit.FreeBSD.org/src/commit/?id=bd27c71c4573e14916ccd27e545a69606f0a8192

commit bd27c71c4573e14916ccd27e545a69606f0a8192
Author:     Mike Karels <karels@FreeBSD.org>
AuthorDate: 2021-10-27 03:39:10 +0000
Commit:     Mike Karels <karels@FreeBSD.org>
CommitDate: 2021-11-09 15:34:22 +0000

    netstat: reduce use of historical Internet classes
    
    When attempting to characterize bound addresses, netstat was checking
    for host 0 on a (historical) net using inet_lnaof().  Such addresses
    are not normally bound, as they would not work, with the exception
    of the unspecified address, INADDR_ANY.  Check for that explicitly.
    Similarly, don't check bound addresses for a match to a network name.
    
    MFC after:      1 month
    Reviewed by:    tuexen
    Differential Revision: https://reviews.freebsd.org/D32714
---
 usr.bin/netstat/inet.c | 23 ++++++-----------------
 1 file changed, 6 insertions(+), 17 deletions(-)

diff --git a/usr.bin/netstat/inet.c b/usr.bin/netstat/inet.c
index 2d3a4bb10d52..dc777b0be990 100644
--- a/usr.bin/netstat/inet.c
+++ b/usr.bin/netstat/inet.c
@@ -296,14 +296,14 @@ protopr(u_long off, const char *name, int af1, int proto)
 		    (
 		     (istcp && tp->t_state == TCPS_LISTEN)
 		     || (af1 == AF_INET &&
-		      inet_lnaof(inp->inp_laddr) == INADDR_ANY)
+		      inp->inp_laddr.s_addr == INADDR_ANY)
 #ifdef INET6
 		     || (af1 == AF_INET6 &&
 			 IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr))
 #endif /* INET6 */
 		     || (af1 == AF_UNSPEC &&
 			 (((inp->inp_vflag & INP_IPV4) != 0 &&
-			   inet_lnaof(inp->inp_laddr) == INADDR_ANY)
+			   inp->inp_laddr.s_addr == INADDR_ANY)
 #ifdef INET6
 			  || ((inp->inp_vflag & INP_IPV6) != 0 &&
 			      IN6_IS_ADDR_UNSPECIFIED(&inp->in6p_laddr))
@@ -1479,24 +1479,13 @@ inetname(struct in_addr *inp)
 	char *cp;
 	static char line[MAXHOSTNAMELEN];
 	struct hostent *hp;
-	struct netent *np;
 
 	cp = 0;
 	if (!numeric_addr && inp->s_addr != INADDR_ANY) {
-		int net = inet_netof(*inp);
-		int lna = inet_lnaof(*inp);
-
-		if (lna == INADDR_ANY) {
-			np = getnetbyaddr(net, AF_INET);
-			if (np)
-				cp = np->n_name;
-		}
-		if (cp == NULL) {
-			hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET);
-			if (hp) {
-				cp = hp->h_name;
-				trimdomain(cp, strlen(cp));
-			}
+		hp = gethostbyaddr((char *)inp, sizeof (*inp), AF_INET);
+		if (hp) {
+			cp = hp->h_name;
+			trimdomain(cp, strlen(cp));
 		}
 	}
 	if (inp->s_addr == INADDR_ANY)