14f06a4
diff -up net-tools-1.60/netstat.c.avoid-name-resolution net-tools-1.60/netstat.c
14f06a4
--- net-tools-1.60/netstat.c.avoid-name-resolution	2009-08-28 10:48:40.000000000 +0200
14f06a4
+++ net-tools-1.60/netstat.c	2009-08-14 12:36:56.000000000 +0200
14f06a4
@@ -961,6 +961,10 @@ static void tcp_do_one(int lnr, const ch
14f06a4
 		 &d, local_addr, &local_port, rem_addr, &rem_port, &state,
14f06a4
 		 &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
14f06a4
 
14f06a4
+    if (!flag_all && 
14f06a4
+         ((flag_lst && rem_port) || (!flag_lst && !rem_port)))
14f06a4
+       return;
14f06a4
+
14f06a4
     if (strlen(local_addr) > 8) {
14f06a4
 #if HAVE_AFINET6
14f06a4
 	/* Demangle what the kernel gives us */
14f06a4
@@ -1014,7 +1018,7 @@ static void tcp_do_one(int lnr, const ch
14f06a4
 					flag_not & FLAG_NUM_HOST), sizeof(local_addr));
14f06a4
     safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not & FLAG_NUM_HOST),
14f06a4
 		 sizeof(rem_addr));
14f06a4
-    if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) {
14f06a4
+
14f06a4
 	snprintf(buffer, sizeof(buffer), "%s",
14f06a4
 		 get_sname(htons(local_port), "tcp",
14f06a4
 			   flag_not & FLAG_NUM_PORT));
14f06a4
@@ -1075,7 +1079,6 @@ static void tcp_do_one(int lnr, const ch
14f06a4
 	       rxq, txq, local_addr, rem_addr, _(tcp_state[state]));
14f06a4
 
14f06a4
 	finish_this_one(uid,inode,timers);
14f06a4
-    }
14f06a4
 }
14f06a4
 
14f06a4
 static int tcp_info(void)