Page MenuHomeFreeBSD

D47316.diff
No OneTemporary

D47316.diff

diff --git a/usr.bin/sockstat/sockstat.1 b/usr.bin/sockstat/sockstat.1
--- 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 July 9, 2024
+.Dd October 15, 2024
.Dt SOCKSTAT 1
.Os
.Sh NAME
@@ -33,7 +33,7 @@
.Nd list open sockets
.Sh SYNOPSIS
.Nm
-.Op Fl 46CcIiLlnqSsUuvw
+.Op Fl 46CcfIiLlnqSsUuvw
.Op Fl j Ar jail
.Op Fl p Ar ports
.Op Fl P Ar protocols
@@ -59,6 +59,8 @@
This is currently only implemented for TCP.
.It Fl c
Show connected sockets.
+.It Fl f
+Show the FIB number of each socket.
.It Fl I
Show the local address of the socket to which the current socket is spliced, if
any.
@@ -228,6 +230,7 @@
.Xr fstat 1 ,
.Xr netstat 1 ,
.Xr procstat 1 ,
+.Xr setfib 1 ,
.Xr inet 4 ,
.Xr inet6 4 ,
.Xr protocols 5
diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c
--- a/usr.bin/sockstat/sockstat.c
+++ b/usr.bin/sockstat/sockstat.c
@@ -82,6 +82,7 @@
static int opt_6; /* Show IPv6 sockets */
static int opt_C; /* Show congestion control */
static int opt_c; /* Show connected sockets */
+static int opt_f; /* Show FIB numbers */
static int opt_I; /* Show spliced socket addresses */
static int opt_i; /* Show inp_gencnt */
static int opt_j; /* Show specified jail */
@@ -140,6 +141,7 @@
int family;
int proto;
int state;
+ int fibnum;
const char *protoname;
char stack[TCP_FUNCTION_NAME_LEN_MAX];
char cc[TCP_CA_NAME_MAX];
@@ -771,6 +773,7 @@
sock->splice_socket = so->so_splice_so;
sock->proto = proto;
sock->inp_gencnt = xip->inp_gencnt;
+ sock->fibnum = so->so_fibnum;
if (xip->inp_vflag & INP_IPV4) {
sock->family = AF_INET;
sockaddr(&laddr->address, sock->family,
@@ -1204,6 +1207,12 @@
default:
abort();
}
+ if (opt_f) {
+ while (pos < offset)
+ pos += xprintf(" ");
+ pos += xprintf("%d", s->fibnum);
+ offset += 7;
+ }
if (opt_I) {
if (s->splice_socket != 0) {
struct sock *sp;
@@ -1329,6 +1338,9 @@
"USER", "COMMAND", "PID", "FD", "PROTO",
opt_w ? 45 : 21, "LOCAL ADDRESS",
opt_w ? 45 : 21, "FOREIGN ADDRESS");
+ if (opt_f)
+ /* RT_MAXFIBS is 65535. */
+ printf(" %-6s", "FIB");
if (opt_I)
printf(" %-*s", opt_w ? 45 : 21, "SPLICE ADDRESS");
if (opt_i)
@@ -1453,9 +1465,8 @@
static void
usage(void)
{
- fprintf(stderr,
- "usage: sockstat [-46CcIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]\n");
- exit(1);
+ errx(1,
+ "usage: sockstat [-46CcfIiLlnqSsUuvw] [-j jid] [-p ports] [-P protocols]");
}
int
@@ -1469,7 +1480,7 @@
int o, i;
opt_j = -1;
- while ((o = getopt(argc, argv, "46CcIij:Llnp:P:qSsUuvw")) != -1)
+ while ((o = getopt(argc, argv, "46CcfIij:Llnp:P:qSsUuvw")) != -1)
switch (o) {
case '4':
opt_4 = 1;
@@ -1483,6 +1494,9 @@
case 'c':
opt_c = 1;
break;
+ case 'f':
+ opt_f = 1;
+ break;
case 'I':
opt_I = 1;
break;

File Metadata

Mime Type
text/plain
Expires
Thu, May 1, 1:12 PM (6 h, 28 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17882116
Default Alt Text
D47316.diff (2 KB)

Event Timeline