After commit
8250bc9ff4e5 ("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>
static char *proto_name(int protocol)
{
switch (protocol) {
+ case 0:
+ return "raw";
case IPPROTO_UDP:
return "udp";
case IPPROTO_TCP:
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);