DEV: tcploop: reorder options in the usage message
authorWilly Tarreau <w@1wt.eu>
Tue, 7 Jun 2022 09:29:16 +0000 (11:29 +0200)
committerWilly Tarreau <w@1wt.eu>
Wed, 8 Jun 2022 12:42:15 +0000 (14:42 +0200)
Options have become difficult to find, let's reorder them alphabetically.

dev/tcploop/tcploop.c

index c7cec6f..f13ceeb 100644 (file)
@@ -97,31 +97,31 @@ __attribute__((noreturn)) void usage(int code, const char *arg0)
            "  -v           : verbose\n"
            "  -t|-tt|-ttt  : show time (msec / relative / absolute)\n"
            "actions :\n"
-           "  L[<backlog>] : Listens to ip:port and optionally sets backlog\n"
-           "                 Note: fd=socket,bind(fd),listen(fd)\n"
+           "  A[<count>]   : Accepts <count> incoming sockets and closes count-1\n"
+           "                 Note: fd=accept(fd)\n"
            "  C            : Connects to ip:port\n"
            "                 Note: fd=socket,connect(fd)\n"
            "  D            : Disconnect (connect to AF_UNSPEC)\n"
-           "  A[<count>]   : Accepts <count> incoming sockets and closes count-1\n"
-           "                 Note: fd=accept(fd)\n"
+           "  E[<size>]    : Echo this amount of bytes. 0=infinite. unset=any amount.\n"
+           "  F            : FIN : shutdown(SHUT_WR)\n"
+           "  G            : disable lingering\n"
+           "  I            : wait for Input data to be present (POLLIN)\n"
            "  J            : Jump back to oldest post-fork/post-accept action\n"
            "  K            : kill the connection and go on with next operation\n"
-           "  G            : disable lingering\n"
-           "  T            : set TCP_NODELAY\n"
+           "  L[<backlog>] : Listens to ip:port and optionally sets backlog\n"
+           "                 Note: fd=socket,bind(fd),listen(fd)\n"
+           "  N<max>       : fork New process, limited to <max> concurrent (default 1)\n"
+           "  O            : wait for Output queue to be empty (POLLOUT + TIOCOUTQ)\n"
+           "  P[<time>]    : Pause for <time> ms (100 by default)\n"
            "  Q            : disable TCP Quick-ack\n"
            "  R[<size>]    : Read this amount of bytes. 0=infinite. unset=any amount.\n"
            "  S[<size>]    : Send this amount of bytes. 0=infinite. unset=any amount.\n"
            "  S:<string>   : Send this exact string. \\r, \\n, \\t, \\\\ supported.\n"
-           "  E[<size>]    : Echo this amount of bytes. 0=infinite. unset=any amount.\n"
+           "  T            : set TCP_NODELAY\n"
            "  W[<time>]    : Wait for any event on the socket, maximum <time> ms\n"
-           "  P[<time>]    : Pause for <time> ms (100 by default)\n"
-           "  I            : wait for Input data to be present (POLLIN)\n"
-           "  O            : wait for Output queue to be empty (POLLOUT + TIOCOUTQ)\n"
-           "  F            : FIN : shutdown(SHUT_WR)\n"
-           "  r            : shutr : shutdown(SHUT_RD) (pauses a listener or ends recv)\n"
-           "  N<max>       : fork New process, limited to <max> concurrent (default 1)\n"
            "  X[i|o|e]* ** : execvp() next args passing socket as stdin/stdout/stderr.\n"
            "                 If i/o/e present, only stdin/out/err are mapped to socket.\n"
+           "  r            : shutr : shutdown(SHUT_RD) (pauses a listener or ends recv)\n"
            "\n"
            "It's important to note that a single FD is used at once and that Accept\n"
            "replaces the listening FD with the accepted one. Thus always do it after\n"