From: Masatake YAMATO Date: Tue, 21 Feb 2023 15:05:00 +0000 (+0900) Subject: lsfd: use extra information loaded from /proc/net/udplite6 X-Git-Tag: v2.39-rc1~52^2~14 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=93bca1517d3de1541e29b81ef6a8a8cd37f7e70f;p=thirdparty%2Futil-linux.git lsfd: use extra information loaded from /proc/net/udplite6 Signed-off-by: Masatake YAMATO --- diff --git a/misc-utils/lsfd-sock-xinfo.c b/misc-utils/lsfd-sock-xinfo.c index c833f61a65..59037729b5 100644 --- a/misc-utils/lsfd-sock-xinfo.c +++ b/misc-utils/lsfd-sock-xinfo.c @@ -46,6 +46,7 @@ static void load_xinfo_from_proc_udp(ino_t netns_inode); static void load_xinfo_from_proc_udplite(ino_t netns_inode); static void load_xinfo_from_proc_tcp6(ino_t netns_inode); static void load_xinfo_from_proc_udp6(ino_t netns_inode); +static void load_xinfo_from_proc_udplite6(ino_t netns_inode); static void load_xinfo_from_proc_raw6(ino_t netns_inode); static int self_netns_fd = -1; @@ -89,6 +90,7 @@ static void load_sock_xinfo_no_nsswitch(ino_t netns) load_xinfo_from_proc_raw(netns); load_xinfo_from_proc_tcp6(netns); load_xinfo_from_proc_udp6(netns); + load_xinfo_from_proc_udplite6(netns); load_xinfo_from_proc_raw6(netns); } @@ -1132,6 +1134,44 @@ static void load_xinfo_from_proc_udp6(ino_t netns_inode) &udp6_xinfo_class); } +/* + * UDPLITEv6 + */ +static bool udplite6_fill_column(struct proc *proc __attribute__((__unused__)), + struct sock_xinfo *sock_xinfo, + struct sock *sock __attribute__((__unused__)), + struct libscols_line *ln __attribute__((__unused__)), + int column_id, + size_t column_index __attribute__((__unused__)), + char **str) +{ + return l3_fill_column_handler(INET6, sock_xinfo, column_id, str) + || l4_fill_column_handler(UDPLITE, sock_xinfo, column_id, str); +} + +static const struct l4_xinfo_class udplite6_xinfo_class = { + .sock = { + .get_name = udp_get_name, + .get_type = udp_get_type, + .get_state = tcp_get_state, + .get_listening = NULL, + .fill_column = udplite6_fill_column, + .free = NULL, + }, + .scan_line = tcp6_xinfo_scan_line, + .get_addr = tcp6_xinfo_get_addr, + .is_any_addr = tcp6_xinfo_is_any_addr, + .family = AF_INET6, + .l3_decorator = {"[", "]"}, +}; + +static void load_xinfo_from_proc_udplite6(ino_t netns_inode) +{ + load_xinfo_from_proc_inet_L4(netns_inode, + "/proc/net/udplite6", + &udplite6_xinfo_class); +} + /* * RAW6 */