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
This commit is contained in:
Michael Tuexen committed 2025-10-09 21:16:38 +02:00
1 parent 98b2a2265f
commit 746eadecaa
2 files changed
+8 -3

No files matched your search

+6 -2
View File
@@ -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)
+2 -1
View File
@@ -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