From 3f3da329201d3e30ca01de9d0b24132f7f9f36bc Mon Sep 17 00:00:00 2001 From: Masatake YAMATO Date: Mon, 2 Oct 2023 23:50:21 +0900 Subject: [PATCH] lsfd: append SOCK.SHUTDOWN value to ENDPOINTS column of UNIX-STREAM sockets An example output: # ./lsfd -Q '((PID == 1) || (PID == 1896)) && (TYPE == "UNIX-STREAM") && ((FD == 1) || (FD == 278))' -o+ENDPOINTS COMMAND PID USER ASSOC XMODE TYPE SOURCE MNTID INODE NAME ENDPOINTS systemd 1 root 278 rw---m UNIX-STREAM sockfs 9 37012 state=connected path=/run/systemd/journal/stdout 1896,ModemManager,1-w ModemManager 1896 root 1 rw---- UNIX-STREAM sockfs 9 43126 state=connected 1,systemd,278r- 1870458,systemd-journal,68r- Signed-off-by: Masatake YAMATO --- misc-utils/lsfd-sock-xinfo.c | 12 ++++++++++-- tests/expected/lsfd/mkfds-socketpair-STREAM-ENDPOINT | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/misc-utils/lsfd-sock-xinfo.c b/misc-utils/lsfd-sock-xinfo.c index a0e82026d7..7ea8f2efe2 100644 --- a/misc-utils/lsfd-sock-xinfo.c +++ b/misc-utils/lsfd-sock-xinfo.c @@ -538,8 +538,16 @@ static bool unix_shutdown_chars(struct unix_xinfo *ux, char rw[2]) static inline char *unix_xstrendpoint(struct sock *sock) { char *str = NULL; - xasprintf(&str, "%d,%s,%d", - sock->file.proc->pid, sock->file.proc->command, sock->file.association); + char shutdown_chars[3] = { 0 }; + + if (!unix_shutdown_chars(((struct unix_xinfo *)sock->xinfo), shutdown_chars)) { + shutdown_chars[0] = '?'; + shutdown_chars[1] = '?'; + } + xasprintf(&str, "%d,%s,%d%c%c", + sock->file.proc->pid, sock->file.proc->command, sock->file.association, + shutdown_chars[0], shutdown_chars[1]); + return str; } diff --git a/tests/expected/lsfd/mkfds-socketpair-STREAM-ENDPOINT b/tests/expected/lsfd/mkfds-socketpair-STREAM-ENDPOINT index ad015d8dec..02f6498a96 100644 --- a/tests/expected/lsfd/mkfds-socketpair-STREAM-ENDPOINT +++ b/tests/expected/lsfd/mkfds-socketpair-STREAM-ENDPOINT @@ -1,3 +1,3 @@ -3 rw- SOCK sockfs 1,test_mkfds,4 -4 rw- SOCK sockfs 1,test_mkfds,3 +3 rw- SOCK sockfs 1,test_mkfds,4rw +4 rw- SOCK sockfs 1,test_mkfds,3rw ASSOC,MODE,STTYPE,SOURCE,ENDPOINTS: 0 -- 2.47.2