]> granicus.if.org Git - strace/commitdiff
netlink_sock_diag: introduce PRINT_FIELD_INET_DIAG_SOCKID
authorDmitry V. Levin <ldv@altlinux.org>
Sun, 9 Jul 2017 13:54:01 +0000 (13:54 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sun, 9 Jul 2017 18:43:34 +0000 (18:43 +0000)
* netlink_sock_diag.c (PRINT_FIELD_INET_DIAG_SOCKID): New macro.
(decode_inet_diag_req_compat, decode_inet_diag_req_v2,
decode_inet_diag_msg, decode_smc_diag_req, decode_smc_diag_msg): Use it
instead of print_inet_diag_sockid.

netlink_sock_diag.c

index e0f6fff2647ceb16b13e9c6015b5718b0b874118..0cf9e1d08b291b32bf730c5febc92a814464a7e1 100644 (file)
@@ -611,6 +611,12 @@ print_inet_diag_sockid(const struct inet_diag_sockid *id, const uint8_t family)
        tprints("}");
 }
 
+#define PRINT_FIELD_INET_DIAG_SOCKID(prefix_, where_, field_, af_)     \
+       do {                                                            \
+               STRACE_PRINTF("%s%s=", (prefix_), #field_);             \
+               print_inet_diag_sockid(&(where_).field_, (af_));        \
+       } while (0)
+
 static void
 decode_inet_diag_req_compat(struct tcb *const tcp,
                            const struct nlmsghdr *const nlmsghdr,
@@ -633,8 +639,8 @@ decode_inet_diag_req_compat(struct tcb *const tcp,
                        PRINT_FIELD_FLAGS(", ", req, idiag_ext,
                                          inet_diag_extended_flags,
                                          "1<<INET_DIAG_\?\?\?-1");
-                       tprints(", id=");
-                       print_inet_diag_sockid(&req.id, req.idiag_family);
+                       PRINT_FIELD_INET_DIAG_SOCKID(", ", req, id,
+                                                    req.idiag_family);
                        PRINT_FIELD_FLAGS(", ", req, idiag_states,
                                          tcp_state_flags, "1<<TCP_???");
                        PRINT_FIELD_U(", ", req, idiag_dbs);
@@ -677,8 +683,8 @@ decode_inet_diag_req_v2(struct tcb *const tcp,
                                          "1<<INET_DIAG_\?\?\?-1");
                        PRINT_FIELD_FLAGS(", ", req, idiag_states,
                                          tcp_state_flags, "1<<TCP_???");
-                       tprints(", id=");
-                       print_inet_diag_sockid(&req.id, req.sdiag_family);
+                       PRINT_FIELD_INET_DIAG_SOCKID(", ", req, id,
+                                                    req.sdiag_family);
                        decode_nla = true;
                }
        } else
@@ -840,8 +846,8 @@ decode_inet_diag_msg(struct tcb *const tcp,
                                         tcp_states, "TCP_???");
                        PRINT_FIELD_U(", ", msg, idiag_timer);
                        PRINT_FIELD_U(", ", msg, idiag_retrans);
-                       tprints(", id=");
-                       print_inet_diag_sockid(&msg.id, msg.idiag_family);
+                       PRINT_FIELD_INET_DIAG_SOCKID(", ", msg, id,
+                                                    msg.idiag_family);
                        PRINT_FIELD_U(", ", msg, idiag_expires);
                        PRINT_FIELD_U(", ", msg, idiag_rqueue);
                        PRINT_FIELD_U(", ", msg, idiag_wqueue);
@@ -883,12 +889,11 @@ decode_smc_diag_req(struct tcb *const tcp,
                        PRINT_FIELD_FLAGS("", req, diag_ext,
                                          smc_diag_extended_flags,
                                          "1<<SMC_DIAG_\?\?\?-1");
-                       tprints(", id=");
                        /*
                         * AF_SMC protocol family socket handler
                         * keeping the AF_INET sock address.
                         */
-                       print_inet_diag_sockid(&req.id, AF_INET);
+                       PRINT_FIELD_INET_DIAG_SOCKID(", ", req, id, AF_INET);
                }
        } else
                tprints("...");
@@ -916,12 +921,11 @@ decode_smc_diag_msg(struct tcb *const tcp,
                                         smc_states, "SMC_???");
                        PRINT_FIELD_U(", ", msg, diag_fallback);
                        PRINT_FIELD_U(", ", msg, diag_shutdown);
-                       tprints(", id=");
                        /*
                         * AF_SMC protocol family socket handler
                         * keeping the AF_INET sock address.
                         */
-                       print_inet_diag_sockid(&msg.id, AF_INET);
+                       PRINT_FIELD_INET_DIAG_SOCKID(", ", msg, id, AF_INET);
                        PRINT_FIELD_U(", ", msg, diag_uid);
                        PRINT_FIELD_U(", ", msg, diag_inode);
                        decode_nla = true;