]> granicus.if.org Git - strace/blobdiff - net.c
Update NEWS
[strace] / net.c
diff --git a/net.c b/net.c
index 16b42b5b89729e0fad6d8bdb10ef44836faa711b..b0394630a1b6a9d734ed565fc854f35e6dc9d616 100644 (file)
--- a/net.c
+++ b/net.c
@@ -29,7 +29,6 @@
  */
 
 #include "defs.h"
-#include "msghdr.h"
 #include <sys/stat.h>
 #include <sys/socket.h>
 #include <sys/uio.h>
@@ -207,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]);
@@ -218,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]);
@@ -282,42 +279,6 @@ SYS_FUNC(sendto)
        return RVAL_DECODED;
 }
 
-SYS_FUNC(sendmsg)
-{
-       printfd(tcp, tcp->u_arg[0]);
-       tprints(", ");
-       decode_msghdr(tcp, tcp->u_arg[1], (unsigned long) -1L);
-       /* flags */
-       tprints(", ");
-       printflags(msg_flags, tcp->u_arg[2], "MSG_???");
-
-       return RVAL_DECODED;
-}
-
-SYS_FUNC(sendmmsg)
-{
-       if (entering(tcp)) {
-               /* sockfd */
-               printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
-               if (!verbose(tcp)) {
-                       printaddr(tcp->u_arg[1]);
-                       /* vlen */
-                       tprintf(", %u, ", (unsigned int) tcp->u_arg[2]);
-                       /* flags */
-                       printflags(msg_flags, tcp->u_arg[3], "MSG_???");
-                       return RVAL_DECODED;
-               }
-       } else {
-               decode_mmsgvec(tcp, tcp->u_arg[1], tcp->u_rval, false);
-               /* vlen */
-               tprintf(", %u, ", (unsigned int) tcp->u_arg[2]);
-               /* flags */
-               printflags(msg_flags, tcp->u_arg[3], "MSG_???");
-       }
-       return 0;
-}
-
 SYS_FUNC(recv)
 {
        if (entering(tcp)) {
@@ -345,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 */
@@ -362,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 */
@@ -391,73 +350,6 @@ SYS_FUNC(recvfrom)
        return 0;
 }
 
-SYS_FUNC(recvmsg)
-{
-       if (entering(tcp)) {
-               printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
-       } else {
-               if (syserror(tcp))
-                       printaddr(tcp->u_arg[1]);
-               else
-                       decode_msghdr(tcp, tcp->u_arg[1], tcp->u_rval);
-               /* flags */
-               tprints(", ");
-               printflags(msg_flags, tcp->u_arg[2], "MSG_???");
-       }
-       return 0;
-}
-
-SYS_FUNC(recvmmsg)
-{
-       static char str[sizeof("left") + TIMESPEC_TEXT_BUFSIZE];
-
-       if (entering(tcp)) {
-               printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
-               if (verbose(tcp)) {
-                       /* Abusing tcp->auxstr as temp storage.
-                        * Will be used and cleared on syscall exit.
-                        */
-                       tcp->auxstr = sprint_timespec(tcp, tcp->u_arg[4]);
-               } else {
-                       printaddr(tcp->u_arg[1]);
-                       /* vlen */
-                       tprintf(", %u, ", (unsigned int) tcp->u_arg[2]);
-                       /* flags */
-                       printflags(msg_flags, tcp->u_arg[3], "MSG_???");
-                       tprints(", ");
-                       print_timespec(tcp, tcp->u_arg[4]);
-               }
-               return 0;
-       } else {
-               if (verbose(tcp)) {
-                       decode_mmsgvec(tcp, tcp->u_arg[1], tcp->u_rval, true);
-                       /* vlen */
-                       tprintf(", %u, ", (unsigned int) tcp->u_arg[2]);
-                       /* flags */
-                       printflags(msg_flags, tcp->u_arg[3], "MSG_???");
-                       tprints(", ");
-                       /* timeout on entrance */
-                       tprints(tcp->auxstr);
-                       tcp->auxstr = NULL;
-               }
-               if (syserror(tcp))
-                       return 0;
-               if (tcp->u_rval == 0) {
-                       tcp->auxstr = "Timeout";
-                       return RVAL_STR;
-               }
-               if (!verbose(tcp))
-                       return 0;
-               /* timeout on exit */
-               snprintf(str, sizeof(str), "left %s",
-                        sprint_timespec(tcp, tcp->u_arg[4]));
-               tcp->auxstr = str;
-               return RVAL_STR;
-       }
-}
-
 #include "xlat/shutdown_modes.h"
 
 SYS_FUNC(shutdown)
@@ -810,7 +702,7 @@ print_group_req(struct tcb *tcp, long addr, int len)
 
        tprintf("{gr_interface=%u, gr_group=", greq.gr_interface);
        print_sockaddr(tcp, &greq.gr_group, sizeof(greq.gr_group));
-       tprintf("}");
+       tprints("}");
 
 }
 #endif /* MCAST_JOIN_GROUP */