Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 Aug 2015 22:50:53 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287178 - head/usr.bin/sockstat
Message-ID:  <201508262250.t7QMorfm097151@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Wed Aug 26 22:50:53 2015
New Revision: 287178
URL: https://svnweb.freebsd.org/changeset/base/287178

Log:
  Print the status on the first line of a socket description, not at
  the last one. This doesn't matter for TCP, but it does for the upcoming
  SCTP support.
  
  PR:		201585
  MFC after:	3 weeks

Modified:
  head/usr.bin/sockstat/sockstat.c

Modified: head/usr.bin/sockstat/sockstat.c
==============================================================================
--- head/usr.bin/sockstat/sockstat.c	Wed Aug 26 22:19:53 2015	(r287177)
+++ head/usr.bin/sockstat/sockstat.c	Wed Aug 26 22:50:53 2015	(r287178)
@@ -911,7 +911,7 @@ static void
 displaysock(struct sock *s, int pos)
 {
 	void *p;
-	int hash;
+	int hash, first;
 	struct addr *laddr, *faddr;
 	struct sock *s_tmp;
 
@@ -924,6 +924,7 @@ displaysock(struct sock *s, int pos)
 		pos += xprintf("6 ");
 	laddr = s->laddr;
 	faddr = s->faddr;
+	first = 1;
 	while (laddr != NULL || faddr != NULL) {
 		while (pos < 36)
 			pos += xprintf(" ");
@@ -975,6 +976,14 @@ displaysock(struct sock *s, int pos)
 		default:
 			abort();
 		}
+		if (first && opt_s && s->proto == IPPROTO_TCP) {
+			while (pos < 80)
+				pos += xprintf(" ");
+			if (s->state >= 0 && s->state < TCP_NSTATES)
+				pos += xprintf("%s", tcpstates[s->state]);
+			else
+				pos += xprintf("?");
+		}
 		if (laddr != NULL)
 			laddr = laddr->next;
 		if (faddr != NULL)
@@ -983,15 +992,9 @@ displaysock(struct sock *s, int pos)
 			xprintf("\n");
 			pos = 0;
 		}
+		first = 0;
 	}
-	if (opt_s && s->proto == IPPROTO_TCP) {
-		while (pos < 80)
-			pos += xprintf(" ");
-		if (s->state >= 0 && s->state < TCP_NSTATES)
-			pos += xprintf("%s", tcpstates[s->state]);
-		else
-			pos += xprintf("?");
-	}
+	xprintf("\n");
 }
 
 static void
@@ -1036,7 +1039,6 @@ display(void)
 				pos += xprintf(" ");
 			pos += xprintf("%d ", xf->xf_fd);
 			displaysock(s, pos);
-			xprintf("\n");
 		}
 	}
 	if (opt_j >= 0)
@@ -1051,7 +1053,6 @@ display(void)
 			pos += xprintf("%-8s %-10s %-5s %-2s ",
 			    "?", "?", "?", "?");
 			displaysock(s, pos);
-			xprintf("\n");
 		}
 	}
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201508262250.t7QMorfm097151>