diff --git a/misc/ss.c b/misc/ss.c index ac7f4110..8a9663cf 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -2331,12 +2331,9 @@ int print_summary(void) return 0; } - -static void usage(void) __attribute__((noreturn)); - -static void usage(void) +static void _usage(FILE *dest) { - fprintf(stderr, + fprintf(dest, "Usage: ss [ OPTIONS ]\n" " ss [ OPTIONS ] [ FILTER ]\n" " -h, --help this message\n" @@ -2368,6 +2365,19 @@ static void usage(void) " -F, --filter=FILE read filter information from FILE\n" " FILTER := [ state TCP-STATE ] [ EXPRESSION ]\n" ); +} + +static void help(void) __attribute__((noreturn)); +static void help(void) +{ + _usage(stdout); + exit(0); +} + +static void usage(void) __attribute__((noreturn)); +static void usage(void) +{ + _usage(stderr); exit(-1); } @@ -2514,7 +2524,7 @@ int main(int argc, char *argv[]) else if (strcmp(optarg, "netlink") == 0) preferred_family = AF_NETLINK; else if (strcmp(optarg, "help") == 0) - usage(); + help(); else { fprintf(stderr, "ss: \"%s\" is invalid family\n", optarg); usage(); @@ -2596,6 +2606,7 @@ int main(int argc, char *argv[]) exit(0); case 'h': case '?': + help(); default: usage(); }