Re: git: 746eadecaa7d - main - sockstat: show path state column only when useful
Date: Thu, 09 Oct 2025 20:01:40 UTC
It looks like this change will cause sockstat to skip output path state even in JSON output mode. Is that deliberate? I would think that it would be better for machine-readable formats if the output were predictable. Also, the English in the man page is awkward. I think you mean "at least one path to show". On Thu, Oct 9, 2025 at 1:19 PM Michael Tuexen <tuexen@freebsd.org> wrote: > 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 >