git: 746eadecaa7d - main - sockstat: show path state column only when useful

From: Michael Tuexen <tuexen_at_FreeBSD.org>
Date: Thu, 09 Oct 2025 19:19:05 UTC
The branch main has been updated by tuexen:

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

commit 746eadecaa7dc8913721cbaa9be4e603bd36ea49
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2025-10-09 19:16:38 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2025-10-09 19:16:38 +0000

    sockstat: show path state column only when useful
    
    Showing the path state column is only useful, if there is at least one
    SCTP endpoint shown, which is not in the state CLOSED or LISTEN.
    Don't show it when it is not useful.
    
    Reviewed by:            rrs
    MFC after:              3 days
    Sponsored by:           Netflix, Inc.
    Differential Revision:  https://reviews.freebsd.org/D52986
---
 usr.bin/sockstat/main.c     | 8 ++++++--
 usr.bin/sockstat/sockstat.1 | 3 ++-
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/usr.bin/sockstat/main.c b/usr.bin/sockstat/main.c
index f0eb83eb3e9f..7fedfd5b8724 100644
--- a/usr.bin/sockstat/main.c
+++ b/usr.bin/sockstat/main.c
@@ -103,6 +103,7 @@ static bool	 opt_u;		/* Show Unix domain sockets */
 static u_int	 opt_v;		/* Verbose mode */
 static bool	 opt_w;		/* Automatically size the columns */
 static bool	 is_xo_style_encoding;
+static bool	 show_path_state = false;
 
 /*
  * Default protocols to use if no -P was defined.
@@ -584,6 +585,7 @@ gather_sctp(void)
 				     !(local_all_loopback ||
 				     foreign_all_loopback))) {
 					RB_INSERT(socks_t, &socks, sock);
+					show_path_state = true;
 				} else {
 					free_socket(sock);
 				}
@@ -1485,7 +1487,7 @@ display_sock(struct sock *s, struct col_widths *cw, char *buf, size_t bufsize)
 			} else if (!is_xo_style_encoding)
 				xo_emit(" {:encaps/%*s}", cw->encaps, "??");
 		}
-		if (opt_s) {
+		if (opt_s && show_path_state) {
 			if (faddr != NULL &&
 			    s->proto == IPPROTO_SCTP &&
 			    s->state != SCTP_CLOSED &&
@@ -1632,7 +1634,9 @@ display(void)
 		if (opt_U)
 			xo_emit(" {T:/%*s}", cw.encaps, "ENCAPS");
 		if (opt_s) {
-			xo_emit(" {T:/%-*s}", cw.path_state, "PATH STATE");
+			if (show_path_state)
+				xo_emit(" {T:/%-*s}", cw.path_state,
+				    "PATH STATE");
 			xo_emit(" {T:/%-*s}", cw.conn_state, "CONN STATE");
 		}
 		if (opt_b)
diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1
index dabb3042bfd4..d14eb967ad0f 100644
--- a/usr.bin/sockstat/sockstat.1
+++ b/usr.bin/sockstat/sockstat.1
@@ -25,7 +25,7 @@
 .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd October 7, 2025
+.Dd October 9, 2025
 .Dt SOCKSTAT 1
 .Os
 .Sh NAME
@@ -205,6 +205,7 @@ is specified (only for SCTP or TCP).
 The path state if
 .Fl s
 is specified (only for SCTP).
+This column is only shown when there is at least one path state shown.
 .It Li CONN STATE
 The connection state if
 .Fl s