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