]> granicus.if.org Git - strace/blobdiff - msghdr.c
tests: check decoding of netlink smc_diag_msg attributes
[strace] / msghdr.c
index 72c1cbee4d4835ed2ba42c436823dc6600d95385..14b0a8d159eb8727b2246405eb0278d1cfae06e7 100644 (file)
--- a/msghdr.c
+++ b/msghdr.c
@@ -85,8 +85,10 @@ print_scm_creds(struct tcb *tcp, const void *cmsg_data,
 {
        const struct ucred *uc = cmsg_data;
 
-       tprintf("{pid=%u, uid=%u, gid=%u}",
-               (unsigned) uc->pid, (unsigned) uc->uid, (unsigned) uc->gid);
+       PRINT_FIELD_U("{", *uc, pid);
+       PRINT_FIELD_UID(", ", *uc, uid);
+       PRINT_FIELD_UID(", ", *uc, gid);
+       tprints("}");
 }
 
 static void
@@ -184,11 +186,13 @@ print_cmsg_ip_recverr(struct tcb *tcp, const void *cmsg_data,
 {
        const struct sock_ee *const err = cmsg_data;
 
-       tprintf("{ee_errno=%u, ee_origin=%u, ee_type=%u, ee_code=%u"
-               ", ee_info=%u, ee_data=%u, offender=",
-               err->ee_errno, err->ee_origin, err->ee_type,
-               err->ee_code, err->ee_info, err->ee_data);
-       print_sockaddr(&err->offender, sizeof(err->offender));
+       PRINT_FIELD_U("{", *err, ee_errno);
+       PRINT_FIELD_U(", ", *err, ee_origin);
+       PRINT_FIELD_U(", ", *err, ee_type);
+       PRINT_FIELD_U(", ", *err, ee_code);
+       PRINT_FIELD_U(", ", *err, ee_info);
+       PRINT_FIELD_U(", ", *err, ee_data);
+       PRINT_FIELD_SOCKADDR(", ", *err, offender);
        tprints("}");
 }
 
@@ -375,17 +379,15 @@ print_struct_msghdr(struct tcb *tcp, const struct msghdr *msg,
        tprintf("%d", msg->msg_namelen);
 
        tprints(", msg_iov=");
-
        tprint_iov_upto(tcp, msg->msg_iovlen,
                        ptr_to_kulong(msg->msg_iov), decode, data_size);
-       tprintf(", msg_iovlen=%" PRI_klu, (kernel_ulong_t) msg->msg_iovlen);
+       PRINT_FIELD_U(", ", *msg, msg_iovlen);
 
        decode_msg_control(tcp, ptr_to_kulong(msg->msg_control),
                           msg->msg_controllen);
-       tprintf(", msg_controllen=%" PRI_klu, (kernel_ulong_t) msg->msg_controllen);
+       PRINT_FIELD_U(", ", *msg, msg_controllen);
 
-       tprints(", msg_flags=");
-       printflags(msg_flags, msg->msg_flags, "MSG_???");
+       PRINT_FIELD_FLAGS(", ", *msg, msg_flags, msg_flags, "MSG_???");
        tprints("}");
 }