git: ccdd2b2b3cc2 - main - Add "-n" flag to sockstat.
Alexander Motin
mav at FreeBSD.org
Wed Dec 30 18:46:05 UTC 2020
The branch main has been updated by mav:
URL: https://cgit.FreeBSD.org/src/commit/?id=ccdd2b2b3cc2f86cd08a355be2fb58e435ec8ff8
commit ccdd2b2b3cc2f86cd08a355be2fb58e435ec8ff8
Author: Alexander Motin <mav at FreeBSD.org>
AuthorDate: 2020-12-30 18:40:37 +0000
Commit: Alexander Motin <mav at FreeBSD.org>
CommitDate: 2020-12-30 18:45:53 +0000
Add "-n" flag to sockstat.
sockstat can "hang" on getpwuid() calls in situations when FreeBSD
is joined to a directory service (AD/LDAP etc) and the directory
service fail to answer in a timely manner when trying to resolve
numeric UIDs to user names.
Submitted by: Caleb St. John <caleb at ixsystems.com>
MFC after: 1 week
---
usr.bin/sockstat/sockstat.1 | 6 ++++--
usr.bin/sockstat/sockstat.c | 8 ++++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1
index 571b3e7041bb..8521c50348c9 100644
--- a/usr.bin/sockstat/sockstat.1
+++ b/usr.bin/sockstat/sockstat.1
@@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 13, 2020
+.Dd December 30, 2020
.Dt SOCKSTAT 1
.Os
.Sh NAME
@@ -35,7 +35,7 @@
.Nd list open sockets
.Sh SYNOPSIS
.Nm
-.Op Fl 46CcLlSsUuvw
+.Op Fl 46CcLlnSsUuvw
.Op Fl j Ar jid
.Op Fl p Ar ports
.Op Fl P Ar protocols
@@ -71,6 +71,8 @@ or do not contain the IPv6 loopback address
.Li ::1 .
.It Fl l
Show listening sockets.
+.It Fl n
+Do not resolve numeric UIDs to user names.
.It Fl p Ar ports
Only show Internet sockets if the local or foreign port number
is on the specified list.
diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c
index 5ddbf0775507..26f31d96b8e0 100644
--- a/usr.bin/sockstat/sockstat.c
+++ b/usr.bin/sockstat/sockstat.c
@@ -79,6 +79,7 @@ static int opt_c; /* Show connected sockets */
static int opt_j; /* Show specified jail */
static int opt_L; /* Don't show IPv4 or IPv6 loopback sockets */
static int opt_l; /* Show listening sockets */
+static int opt_n; /* Don't resolve UIDs to user names */
static int opt_q; /* Don't show header */
static int opt_S; /* Show protocol stack if applicable */
static int opt_s; /* Show protocol state if applicable */
@@ -1205,7 +1206,7 @@ display(void)
continue;
s->shown = 1;
pos = 0;
- if ((pwd = getpwuid(xf->xf_uid)) == NULL)
+ if (opt_n || (pwd = getpwuid(xf->xf_uid)) == NULL)
pos += xprintf("%lu ", (u_long)xf->xf_uid);
else
pos += xprintf("%s ", pwd->pw_name);
@@ -1304,7 +1305,7 @@ main(int argc, char *argv[])
int o, i;
opt_j = -1;
- while ((o = getopt(argc, argv, "46Ccj:Llp:P:qSsUuvw")) != -1)
+ while ((o = getopt(argc, argv, "46Ccj:Llnp:P:qSsUuvw")) != -1)
switch (o) {
case '4':
opt_4 = 1;
@@ -1329,6 +1330,9 @@ main(int argc, char *argv[])
case 'l':
opt_l = 1;
break;
+ case 'n':
+ opt_n = 1;
+ break;
case 'p':
parse_ports(optarg);
break;
More information about the dev-commits-src-main
mailing list