]> granicus.if.org Git - strace/commitdiff
Print shutdown(2) modes as SHUT_* constants
authorSebastian Pipping <sebastian@pipping.org>
Thu, 3 Mar 2011 00:12:25 +0000 (01:12 +0100)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 3 Mar 2011 18:49:33 +0000 (18:49 +0000)
* net.c (shutdown_modes): New xlat structure.
(sys_shutdown): Use shutdown_modes to decode 2nd syscall argument.

net.c

diff --git a/net.c b/net.c
index cafa739625c0726e194151ec2851aa4bf1f3de46..a46cf061a51d67163396ae504e77a286559795e0 100644 (file)
--- a/net.c
+++ b/net.c
@@ -1796,23 +1796,20 @@ sys_recvmmsg(struct tcb *tcp)
 
 #endif /* HAVE_SENDMSG */
 
+static const struct xlat shutdown_modes[] = {
+       { 0,    "SHUT_RD"       },
+       { 1,    "SHUT_WR"       },
+       { 2,    "SHUT_RDWR"     },
+       { 0,    NULL            }
+};
+
 int
 sys_shutdown(tcp)
 struct tcb *tcp;
 {
        if (entering(tcp)) {
-               tprintf("%ld, %ld", tcp->u_arg[0], tcp->u_arg[1]);
-               switch (tcp->u_arg[1]) {
-               case 0:
-                       tprintf("%s", " /* receive */");
-                       break;
-               case 1:
-                       tprintf("%s", " /* send */");
-                       break;
-               case 2:
-                       tprintf("%s", " /* send and receive */");
-                       break;
-               }
+               tprintf("%ld, ", tcp->u_arg[0]);
+               printxval(shutdown_modes, tcp->u_arg[1], "SHUT_???");
        }
        return 0;
 }