]> granicus.if.org Git - strace/commitdiff
net.c: print struct msghdr as a regular structure
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 26 Jun 2016 23:57:39 +0000 (23:57 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 26 Jun 2016 23:57:39 +0000 (23:57 +0000)
* net.c (print_msghdr): Print msg_name, msg_namelen, msg_iov,
and msg_iovlen fields like other regular fields.
* tests/inet-cmsg.c (main): Update expected output.
* tests/mmsg.c (main): Likewise.
* tests/recvmsg.c (main): Likewise.
* tests/scm_rights-fd.test: Likewise.

net.c
tests/inet-cmsg.c
tests/mmsg.c
tests/recvmsg.c
tests/scm_rights-fd.test

diff --git a/net.c b/net.c
index 5c0d8219329397ce5b89d696ef8de564f8a64e62..c5ecf123ab9bde37c00fdb69881f4b065181cd5b 100644 (file)
--- a/net.c
+++ b/net.c
@@ -408,13 +408,14 @@ decode_msg_control(struct tcb *tcp, unsigned long addr, size_t len)
 static void
 print_msghdr(struct tcb *tcp, struct msghdr *msg, unsigned long data_size)
 {
-       tprintf("{msg_name(%d)=", msg->msg_namelen);
+       tprints("{msg_name=");
        decode_sockaddr(tcp, (long)msg->msg_name, msg->msg_namelen);
+       tprintf(", msg_namelen=%d", msg->msg_namelen);
 
-       tprintf(", msg_iov(%lu)=", (unsigned long)msg->msg_iovlen);
-
-       tprint_iov_upto(tcp, (unsigned long)msg->msg_iovlen,
-                       (unsigned long)msg->msg_iov, IOV_DECODE_STR, data_size);
+       tprints(", msg_iov=");
+       tprint_iov_upto(tcp, (unsigned long) msg->msg_iovlen,
+                       (unsigned long) msg->msg_iov, IOV_DECODE_STR, data_size);
+       tprintf(", msg_iovlen=%lu", (unsigned long) msg->msg_iovlen);
 
        decode_msg_control(tcp, (unsigned long) msg->msg_control,
                     msg->msg_controllen);
index d15eb64de9f1d6741d33a361d96e9e1770813eb5..b7207a3d8826d36558e21bd7d7244d376345f880 100644 (file)
@@ -145,10 +145,10 @@ main(void)
        assert(recvmsg(0, &mh, 0) == (int) size);
        assert(!close(0));
 
-       printf("recvmsg(0, {msg_name(%u)={sa_family=AF_INET, sin_port=htons(%u)"
-              ", sin_addr=inet_addr(\"127.0.0.1\")}, msg_iov(1)=[{\"%s\", %u}]"
-              ", msg_control=[",
-              (unsigned) mh.msg_namelen, ntohs(addr.sin_port),
+       printf("recvmsg(0, {msg_name={sa_family=AF_INET, sin_port=htons(%u)"
+              ", sin_addr=inet_addr(\"127.0.0.1\")}, msg_namelen=%u"
+              ", msg_iov=[{\"%s\", %u}], msg_iovlen=1, msg_control=[",
+              ntohs(addr.sin_port), (unsigned) mh.msg_namelen,
               data, (unsigned) size);
 
        struct cmsghdr *c;
index 1e0d37d72204fb50de6338dc7ff22d32149d5202..85e61d5c2ab864c0325119b2bdafc58598134f1a 100644 (file)
@@ -145,9 +145,11 @@ main(void)
                perror_msg_and_skip("sendmmsg");
        assert(r == (int) n_w_mmh);
        assert(close(1) == 0);
-       tprintf("sendmmsg(1, {{{msg_name(0)=NULL, msg_iov(%u)=[{\"%s\", %u}"
-               ", {\"%s\", %u}], msg_controllen=0, msg_flags=0}, %u}"
-               ", {{msg_name(0)=NULL, msg_iov(%u)=[{\"%s\", %u}]"
+       tprintf("sendmmsg(1, {{{msg_name=NULL, msg_namelen=0"
+               ", msg_iov=[{\"%s\", %u}, {\"%s\", %u}], msg_iovlen=%u"
+               ", msg_controllen=0, msg_flags=0}, %u}"
+               ", {{msg_name=NULL, msg_namelen=0"
+               ", msg_iov=[{\"%s\", %u}], msg_iovlen=%u"
                ", msg_controllen=0, msg_flags=0}, %u}}, %u"
                ", MSG_DONTROUTE|MSG_NOSIGNAL) = %d\n"
                " = %u buffers in vector 0\n"
@@ -158,10 +160,12 @@ main(void)
                " = %u buffers in vector 1\n"
                " * %u bytes in buffer 0\n"
                " | 00000 %-49s  %-16s |\n",
-               ARRAY_SIZE(w0_iov_), w0_c, LENGTH_OF(w0_c),
+               w0_c, LENGTH_OF(w0_c),
                w1_c, LENGTH_OF(w1_c),
+               ARRAY_SIZE(w0_iov_),
                LENGTH_OF(w0_c) + LENGTH_OF(w1_c),
-               ARRAY_SIZE(w1_iov_), w2_c, LENGTH_OF(w2_c), LENGTH_OF(w2_c),
+               w2_c, LENGTH_OF(w2_c), ARRAY_SIZE(w1_iov_),
+               LENGTH_OF(w2_c),
                n_w_mmh, r,
                ARRAY_SIZE(w0_iov_), LENGTH_OF(w0_c), w0_d, w0_c,
                LENGTH_OF(w1_c), w1_d, w1_c,
@@ -215,9 +219,11 @@ main(void)
 
        assert(recv_mmsg(0, r_mmh, n_r_mmh, MSG_DONTWAIT, NULL) == (int) n_r_mmh);
        assert(close(0) == 0);
-       tprintf("recvmmsg(0, {{{msg_name(0)=NULL, msg_iov(%u)=[{\"%s\", %u}]"
+       tprintf("recvmmsg(0, {{{msg_name=NULL, msg_namelen=0"
+               ", msg_iov=[{\"%s\", %u}], msg_iovlen=%u"
                ", msg_controllen=0, msg_flags=0}, %u}"
-               ", {{msg_name(0)=NULL, msg_iov(%u)=[{\"%s\", %u}, {\"\", %u}]"
+               ", {{msg_name=NULL, msg_namelen=0"
+               ", msg_iov=[{\"%s\", %u}, {\"\", %u}], msg_iovlen=%u"
                ", msg_controllen=0, msg_flags=0}, %u}}, %u"
                ", MSG_DONTWAIT, NULL) = %d (left NULL)\n"
                " = %u buffers in vector 0\n"
@@ -226,8 +232,8 @@ main(void)
                " = %u buffers in vector 1\n"
                " * %u bytes in buffer 0\n"
                " | 00000 %-49s  %-16s |\n",
-               ARRAY_SIZE(r0_iov_), r0_c, r_len, LENGTH_OF(r0_c),
-               ARRAY_SIZE(r1_iov_), r1_c, r_len, r_len, LENGTH_OF(r1_c),
+               r0_c, r_len, ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c),
+               r1_c, r_len, r_len, ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c),
                n_r_mmh, r,
                ARRAY_SIZE(r0_iov_), LENGTH_OF(r0_c), r0_d, r0_c,
                ARRAY_SIZE(r1_iov_), LENGTH_OF(r1_c), r1_d, r1_c);
index f0f8fa33d7db88997899851ba2813ed51ed3597c..d34614eea3fdc443f4a5d295cee689723aba0f27 100644 (file)
@@ -87,8 +87,8 @@ main(void)
 
        assert(sendmsg(1, w_mh, 0) == (int) w_len);
        close(1);
-       tprintf("sendmsg(1, {msg_name(0)=NULL, msg_iov(%u)="
-               "[{\"%s\", %u}, {\"%s\", %u}, {\"%s\", %u}]"
+       tprintf("sendmsg(1, {msg_name=NULL, msg_namelen=0, msg_iov="
+               "[{\"%s\", %u}, {\"%s\", %u}, {\"%s\", %u}], msg_iovlen=%u"
                ", msg_controllen=0, msg_flags=0}, 0) = %u\n"
                " * %u bytes in buffer 0\n"
                " | 00000 %-49s  %-16s |\n"
@@ -96,9 +96,12 @@ main(void)
                " | 00000 %-49s  %-16s |\n"
                " * %u bytes in buffer 2\n"
                " | 00000 %-49s  %-16s |\n",
-               ARRAY_SIZE(w_iov_), w0_c, LENGTH_OF(w0_c),
-               w1_c, LENGTH_OF(w1_c), w2_c, LENGTH_OF(w2_c), w_len,
-               LENGTH_OF(w0_c), w0_d, w0_c, LENGTH_OF(w1_c), w1_d, w1_c,
+               w0_c, LENGTH_OF(w0_c),
+               w1_c, LENGTH_OF(w1_c),
+               w2_c, LENGTH_OF(w2_c),
+               ARRAY_SIZE(w_iov_), w_len,
+               LENGTH_OF(w0_c), w0_d, w0_c,
+               LENGTH_OF(w1_c), w1_d, w1_c,
                LENGTH_OF(w2_c), w2_d, w2_c);
 
        const unsigned int r_len = (w_len + 1) / 2;
@@ -118,11 +121,12 @@ main(void)
        struct msghdr *r_mh = tail_memdup(&r_mh_, sizeof(r_mh_));
 
        assert(recvmsg(0, r_mh, 0) == (int) r_len);
-       tprintf("recvmsg(0, {msg_name(0)=NULL, msg_iov(%u)="
-               "[{\"%s\", %u}], msg_controllen=0, msg_flags=0}, 0) = %u\n"
+       tprintf("recvmsg(0, {msg_name=NULL, msg_namelen=0, msg_iov="
+               "[{\"%s\", %u}], msg_iovlen=%u, msg_controllen=0"
+               ", msg_flags=0}, 0) = %u\n"
                " * %u bytes in buffer 0\n"
                " | 00000 %-49s  %-16s |\n",
-               ARRAY_SIZE(r0_iov_), r0_c, r_len, r_len, r_len, r0_d, r0_c);
+               r0_c, r_len, ARRAY_SIZE(r0_iov_), r_len, r_len, r0_d, r0_c);
 
        void *r1 = tail_alloc(r_len);
        void *r2 = tail_alloc(w_len);
@@ -141,12 +145,12 @@ main(void)
        r_mh->msg_iovlen = ARRAY_SIZE(r1_iov_);
 
        assert(recvmsg(0, r_mh, 0) == (int) w_len - r_len);
-       tprintf("recvmsg(0, {msg_name(0)=NULL, msg_iov(%u)="
-               "[{\"%s\", %u}, {\"\", %u}], msg_controllen=0"
+       tprintf("recvmsg(0, {msg_name=NULL, msg_namelen=0, msg_iov="
+               "[{\"%s\", %u}, {\"\", %u}], msg_iovlen=%u, msg_controllen=0"
                ", msg_flags=0}, 0) = %u\n"
                " * %u bytes in buffer 0\n"
                " | 00000 %-49s  %-16s |\n",
-               ARRAY_SIZE(r1_iov_), r1_c, r_len, w_len, w_len - r_len,
+               r1_c, r_len, w_len, ARRAY_SIZE(r1_iov_), w_len - r_len,
                w_len - r_len, r1_d, r1_c);
        close(0);
 
index 1277d1d2a3296257fca41edcb33648300797be8a..2d92cb8602424e1bafc015079ac32ea38114e19a 100755 (executable)
@@ -61,7 +61,7 @@ rights_data='\[4</dev/null>, 5</dev/zero>, 6<'"$path6"'>\]'
 iov='\[\{"'"$sample"'", 15\}\]'
 ids='\{pid='"$n"', uid=[0-9]+, gid=[0-9]+\}'
 
-msg_head='\{msg_name\(0\)=NULL, msg_iov\(1\)='"$iov"', msg_control='
+msg_head='\{msg_name=NULL, msg_namelen=0, msg_iov='"$iov"', msg_iovlen=1, msg_control='
 msg_tail=', msg_controllen='"$n"', msg_flags=0'
 rights='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_RIGHTS, '"$rights_data"'\}'
 creds='\{cmsg_len='"$n"', cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, '"$ids"'\}'