Thread (9 messages) 9 messages, 3 authors, 2018-10-30

Re: [PATCH] Fix ss Netid column and Local/Peer_Address

From: Yoann P. <hidden>
Date: 2018-10-30 04:56:52

Hi Yohann,

On Fri, 26 Oct 2018 22:53:32 +0200

"Yoann P." [off-list ref] wrote:
quoted
When using ss -Hutn4 or -utn3, Netid and State columns are sometime
merged, it can be confusing when trying to pipe into awk or column.
Thanks for fixing this. A few comments though:
quoted
@@ -144,9 +144,9 @@ static struct column columns[] = {

        { ALIGN_LEFT,   "State",                " ",    0, 0, 0 },
        { ALIGN_LEFT,   "Recv-Q",               " ",    0, 0, 0 },
        { ALIGN_LEFT,   "Send-Q",               " ",    0, 0, 0 },

-       { ALIGN_RIGHT,  "Local Address:",       " ",    0, 0, 0 },
+       { ALIGN_RIGHT,  "Local_Address:",       " ",    0, 0, 0 },

        { ALIGN_LEFT,   "Port",                 "",     0, 0, 0 },

-       { ALIGN_RIGHT,  "Peer Address:",        " ",    0, 0, 0 },
+       { ALIGN_RIGHT,  "Peer_Address:",        " ",    0, 0, 0 },
This is needed only if you pipe the output to column(1), I don't think
it's a bug, because printing the header when you pass the output to
column(1) makes little sense -- one should use -H then.
I don't really care about this modification, I came across it while making the 
github issue example, seemed to be little change, so I dit it.
By the way, why do you use column(1), when ss already prints output in
columns? Any other issue you are working around?
column can hide columns with "-H -" and is a bit faster than awk to output a 
single column according to time, it's the only reason I mentioned it.
quoted
        { ALIGN_LEFT,   "Port",                 "",     0, 0, 0 },
        { ALIGN_LEFT,   "",                     "",     0, 0, 0 },
 
 };
@@ -1334,7 +1334,7 @@ static void sock_state_print(struct sockstat *s)

                out("`- %s", sctp_sstate_name[s->state]);
        
        } else {
        
                field_set(COL_NETID);

-               out("%s", sock_name);
+               out("%-6s", sock_name);
I could reproduce this issue with a 70-columns terminal and the options
you gave.

Anyway, I don't think this is the right way to fix it: this will waste
one to two columns in case we have three letters for the Netid
specifier, and won't work the day we get six-letters names. In general,
it looks like a bad idea to reintroduce hardcoded width counts.
I agree, I just not found the proper way to do it (Not a programmer).
The actual issue seems to be that in some cases the left delimiter for
the State column is not printed, and I think you should fix that
instead. I'll look into this within a couple of days and give you some
more specific hints in case you still need them by then.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help