ss: fix display of raw sockets
After commit 8250bc9ff4 ("ss: Unify inet sockets output") raw sockets
are displayed as udp because dgram_show_line() is used for both and
thus IPPROTO_UDP is used for both so proto_name() returns "udp".
Fix this by checking dg_proto which is set according to the caller of
dgram_show_line().
Reported-by: Miha Marolt <miham@beyondsemi.com>
Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
This commit is contained in:
parent
b0085d0ee9
commit
235c445347
|
|
@ -1552,6 +1552,8 @@ out:
|
|||
static char *proto_name(int protocol)
|
||||
{
|
||||
switch (protocol) {
|
||||
case 0:
|
||||
return "raw";
|
||||
case IPPROTO_UDP:
|
||||
return "udp";
|
||||
case IPPROTO_TCP:
|
||||
|
|
@ -2416,7 +2418,7 @@ static int dgram_show_line(char *line, const struct filter *f, int family)
|
|||
if (n < 9)
|
||||
opt[0] = 0;
|
||||
|
||||
inet_stats_print(&s, IPPROTO_UDP);
|
||||
inet_stats_print(&s, dg_proto == UDP_PROTO ? IPPROTO_UDP : 0);
|
||||
|
||||
if (show_details && opt[0])
|
||||
printf(" opt:\"%s\"", opt);
|
||||
|
|
|
|||
Loading…
Reference in New Issue