Introduce -X/--exact switch to disable human-friendly printing of datarates. With the switch, data is not presented as MBps/Kbps.
Signed-off-by: Tomasz Torcz <tomasz.to...@nordea.com> --- misc/ss.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/misc/ss.c b/misc/ss.c index 29a25070..5ca5112a 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -95,6 +95,7 @@ int resolve_services = 1; int preferred_family = AF_UNSPEC; int show_options; int show_details; +int show_exact; int show_users; int show_mem; int show_tcpinfo; @@ -2270,7 +2271,9 @@ static int proc_inet_split_line(char *line, char **loc, char **rem, char **data) static char *sprint_bw(char *buf, double bw) { - if (bw > 1000000.) + if (show_exact) + sprintf(buf, "%.0f", bw); + else if (bw > 1000000.) sprintf(buf, "%.1fM", bw / 1000000.); else if (bw > 1000.) sprintf(buf, "%.1fK", bw / 1000.); @@ -4485,6 +4488,7 @@ static void _usage(FILE *dest) " -s, --summary show socket usage summary\n" " -b, --bpf show bpf filter socket information\n" " -E, --events continually display sockets as they are destroyed\n" +" -X, --exact show exact values\n" " -Z, --context display process SELinux security contexts\n" " -z, --contexts display process and socket SELinux security contexts\n" " -N, --net switch to the specified network namespace name\n" @@ -4617,6 +4621,7 @@ static const struct option long_opts[] = { { "net", 1, 0, 'N' }, { "kill", 0, 0, 'K' }, { "no-header", 0, 0, 'H' }, + { "exact", 0, 0, 'X' }, { 0 } }; @@ -4633,7 +4638,7 @@ int main(int argc, char *argv[]) int screen_width = 80; while ((ch = getopt_long(argc, argv, - "dhaletuwxnro460spbEf:miA:D:F:vVzZN:KHS", + "dhaletuwxXnro460spbEf:miA:D:F:vVzZN:KHS", long_opts, NULL)) != EOF) { switch (ch) { case 'n': @@ -4684,6 +4689,9 @@ int main(int argc, char *argv[]) case 'x': filter_af_set(¤t_filter, AF_UNIX); break; + case 'X': + show_exact = 1; + break; case OPT_VSOCK: filter_af_set(¤t_filter, AF_VSOCK); break; -- 2.14.3