]> granicus.if.org Git - strace/blobdiff - net.c
io: handle data_size of -1 as unlimited data in print_iovec
[strace] / net.c
diff --git a/net.c b/net.c
index a9f51dc24fe5cd3198be72a2319d78ca1a81d00f..017764cc74d9d6b887405524e606047383dea159 100644 (file)
--- a/net.c
+++ b/net.c
@@ -206,8 +206,7 @@ decode_sockname(struct tcb *tcp)
                printfd(tcp, tcp->u_arg[0]);
                tprints(", ");
                if (fetch_socklen(tcp, &ulen, tcp->u_arg[1], tcp->u_arg[2])) {
-                       /* abuse of auxstr to retain state */
-                       tcp->auxstr = (void *) (long) ulen;
+                       set_tcb_priv_ulong(tcp, ulen);
                        return 0;
                } else {
                        printaddr(tcp->u_arg[1]);
@@ -217,8 +216,7 @@ decode_sockname(struct tcb *tcp)
                }
        }
 
-       ulen = (long) tcp->auxstr;
-       tcp->auxstr = NULL;
+       ulen = get_tcb_priv_ulong(tcp);
 
        if (syserror(tcp) || umove(tcp, tcp->u_arg[2], &rlen) < 0) {
                printaddr(tcp->u_arg[1]);
@@ -281,18 +279,6 @@ SYS_FUNC(sendto)
        return RVAL_DECODED;
 }
 
-SYS_FUNC(sendmsg)
-{
-       printfd(tcp, tcp->u_arg[0]);
-       tprints(", ");
-       decode_msghdr(tcp, 0, tcp->u_arg[1], (unsigned long) -1L);
-       /* flags */
-       tprints(", ");
-       printflags(msg_flags, tcp->u_arg[2], "MSG_???");
-
-       return RVAL_DECODED;
-}
-
 SYS_FUNC(recv)
 {
        if (entering(tcp)) {
@@ -320,8 +306,7 @@ SYS_FUNC(recvfrom)
                printfd(tcp, tcp->u_arg[0]);
                tprints(", ");
                if (fetch_socklen(tcp, &ulen, tcp->u_arg[4], tcp->u_arg[5])) {
-                       /* abuse of auxstr to retain state */
-                       tcp->auxstr = (void *) (long) ulen;
+                       set_tcb_priv_ulong(tcp, ulen);
                }
        } else {
                /* buf */
@@ -337,8 +322,7 @@ SYS_FUNC(recvfrom)
                printflags(msg_flags, tcp->u_arg[3], "MSG_???");
                tprints(", ");
 
-               ulen = (long) tcp->auxstr;
-               tcp->auxstr = NULL;
+               ulen = get_tcb_priv_ulong(tcp);
 
                if (!fetch_socklen(tcp, &rlen, tcp->u_arg[4], tcp->u_arg[5])) {
                        /* from address */
@@ -366,37 +350,6 @@ SYS_FUNC(recvfrom)
        return 0;
 }
 
-SYS_FUNC(recvmsg)
-{
-       int msg_namelen;
-
-       if (entering(tcp)) {
-               printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
-               if (fetch_msghdr_namelen(tcp, tcp->u_arg[1], &msg_namelen)) {
-                       /* abuse of auxstr to retain state */
-                       tcp->auxstr = (void *) (long) msg_namelen;
-                       return 0;
-               }
-               printaddr(tcp->u_arg[1]);
-       } else {
-               msg_namelen = (long) tcp->auxstr;
-               tcp->auxstr = NULL;
-
-               if (syserror(tcp))
-                       tprintf("{msg_namelen=%d}", msg_namelen);
-               else
-                       decode_msghdr(tcp, &msg_namelen, tcp->u_arg[1],
-                                     tcp->u_rval);
-       }
-
-       /* flags */
-       tprints(", ");
-       printflags(msg_flags, tcp->u_arg[2], "MSG_???");
-
-       return RVAL_DECODED;
-}
-
 #include "xlat/shutdown_modes.h"
 
 SYS_FUNC(shutdown)