Date: Tue, 11 Feb 2025 18:23:53 GMT From: Gleb Smirnoff <glebius@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 9f55128fecb5 - main - sockstat: with -A print pcb addresses, just like netstat(1) Message-ID: <202502111823.51BINrMw027268@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by glebius: URL: https://cgit.FreeBSD.org/src/commit/?id=9f55128fecb5b5eb8e8fffa5b65d38255762d176 commit 9f55128fecb5b5eb8e8fffa5b65d38255762d176 Author: Gleb Smirnoff <glebius@FreeBSD.org> AuthorDate: 2025-02-11 18:23:15 +0000 Commit: Gleb Smirnoff <glebius@FreeBSD.org> CommitDate: 2025-02-11 18:23:15 +0000 sockstat: with -A print pcb addresses, just like netstat(1) --- usr.bin/sockstat/sockstat.1 | 7 +++++-- usr.bin/sockstat/sockstat.c | 20 +++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1 index ca486a088b13..b13c6afdd9c0 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 15, 2024 +.Dd February 6, 2025 .Dt SOCKSTAT 1 .Os .Sh NAME @@ -33,7 +33,7 @@ .Nd list open sockets .Sh SYNOPSIS .Nm -.Op Fl 46CcfIiLlnqSsUuvw +.Op Fl 46ACcfIiLlnqSsUuvw .Op Fl j Ar jail .Op Fl p Ar ports .Op Fl P Ar protocols @@ -54,6 +54,9 @@ Show Show .Dv AF_INET6 (IPv6) sockets. +.It Fl A +Show the address of a protocol control block (PCB) associated with a socket; +used for debugging. .It Fl C Display the congestion control module, if applicable. This is currently only implemented for TCP. diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 6283f600b322..e1a52c57b3d1 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -81,6 +81,7 @@ static bool opt_4; /* Show IPv4 sockets */ static bool opt_6; /* Show IPv6 sockets */ +static bool opt_A; /* Show kernel address of pcb */ static bool opt_C; /* Show congestion control */ static bool opt_c; /* Show connected sockets */ static bool opt_f; /* Show FIB numbers */ @@ -771,6 +772,7 @@ gather_inet(int proto) if ((faddr = calloc(1, sizeof *faddr)) == NULL) err(1, "malloc()"); sock->socket = so->xso_so; + sock->pcb = so->so_pcb; sock->splice_socket = so->so_splice_so; sock->proto = proto; sock->inp_gencnt = xip->inp_gencnt; @@ -1206,10 +1208,13 @@ displaysock(struct sock *s, int pos) default: abort(); } + while (pos < offset) + pos += xprintf(" "); + if (opt_A) { + pos += xprintf("0x%16lx", s->pcb); + offset += 18; + } if (opt_f) { - do - pos += xprintf(" "); - while (pos < offset); pos += xprintf("%d", s->fibnum); offset += 7; } @@ -1346,6 +1351,8 @@ display(void) "USER", "COMMAND", "PID", "FD", "PROTO", opt_w ? 45 : 21, "LOCAL ADDRESS", opt_w ? 45 : 21, "FOREIGN ADDRESS"); + if (opt_A) + printf(" %-18s", "PCB KVA"); if (opt_f) /* RT_MAXFIBS is 65535. */ printf(" %-6s", "FIB"); @@ -1477,7 +1484,7 @@ static void usage(void) { errx(1, - "usage: sockstat [-46CcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]"); + "usage: sockstat [-46ACcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]"); } int @@ -1491,7 +1498,7 @@ main(int argc, char *argv[]) int o, i; opt_j = -1; - while ((o = getopt(argc, argv, "46CcfIij:Llnp:P:qSsUuvw")) != -1) + while ((o = getopt(argc, argv, "46ACcfIij:Llnp:P:qSsUuvw")) != -1) switch (o) { case '4': opt_4 = true; @@ -1499,6 +1506,9 @@ main(int argc, char *argv[]) case '6': opt_6 = true; break; + case 'A': + opt_A = true; + break; case 'C': opt_C = true; break;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202502111823.51BINrMw027268>