]> granicus.if.org Git - strace/commitdiff
Intorduce PRINT_FIELD_IFINDEX
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)
* print_fields.h (PRINT_FIELD_IFINDEX): New macro.
* msghdr.c (print_cmsg_ip_pktinfo): Use it instead of print_ifindex.
* net.c (print_mreq6): Likewise.
* netlink_sock_diag.c (print_packet_diag_mclist,
print_inet_diag_sockid): Likewise.
* sockaddr.c (print_sockaddr_data_in6, print_sockaddr_data_ll):
Likewise.

msghdr.c
net.c
netlink_sock_diag.c
print_fields.h
sockaddr.c

index d26386659732332575111745f25e89b3b3765eaf..b95232d08e6ede06354d8e91855b7c8a79fbe0fd 100644 (file)
--- a/msghdr.c
+++ b/msghdr.c
@@ -30,6 +30,7 @@
  */
 
 #include "defs.h"
+#include "print_fields.h"
 #include "msghdr.h"
 #include <limits.h>
 #include <arpa/inet.h>
@@ -122,8 +123,7 @@ print_cmsg_ip_pktinfo(struct tcb *tcp, const void *cmsg_data,
 {
        const struct in_pktinfo *info = cmsg_data;
 
-       tprints("{ipi_ifindex=");
-       print_ifindex(info->ipi_ifindex);
+       PRINT_FIELD_IFINDEX("{", *info, ipi_ifindex);
        tprintf(", ipi_spec_dst=inet_addr(\"%s\")",
                inet_ntoa(info->ipi_spec_dst));
        tprintf(", ipi_addr=inet_addr(\"%s\")}",
diff --git a/net.c b/net.c
index ae8e7494daf03198b2998ac7a6a5e7f9b3bf5731..49a36342765f0893f4d068877a5473a692b9be94 100644 (file)
--- a/net.c
+++ b/net.c
@@ -686,9 +686,7 @@ print_mreq6(struct tcb *const tcp, const kernel_ulong_t addr,
                return;
 
        PRINT_FIELD_INET_ADDR("{", mreq, ipv6mr_multiaddr, AF_INET6);
-
-       tprints(", ipv6mr_interface=");
-       print_ifindex(mreq.ipv6mr_interface);
+       PRINT_FIELD_IFINDEX(", ", mreq, ipv6mr_interface);
        tprints("}");
 }
 #endif /* IPV6_ADD_MEMBERSHIP */
index 1475ec8b8df599501ecc7d41b32e16be463cf025..467abbbb0b5d0329c247bd05e419504633d39ba8 100644 (file)
@@ -483,8 +483,7 @@ print_packet_diag_mclist(struct tcb *const tcp, void *const elem_buf,
        uint16_t alen = dml->pdmc_alen > sizeof(dml->pdmc_addr) ?
                sizeof(dml->pdmc_addr) : dml->pdmc_alen;
 
-       tprints("{pdmc_index=");
-       print_ifindex(dml->pdmc_index);
+       PRINT_FIELD_IFINDEX("{", *dml, pdmc_index);
        PRINT_FIELD_U(", ", *dml, pdmc_count);
        PRINT_FIELD_U(", ", *dml, pdmc_type);
        PRINT_FIELD_U(", ", *dml, pdmc_alen);
@@ -609,12 +608,8 @@ print_inet_diag_sockid(const struct inet_diag_sockid *id, const uint8_t family)
 
        PRINT_FIELD_INET_ADDR(", ", *id, idiag_src, family);
        PRINT_FIELD_INET_ADDR(", ", *id, idiag_dst, family);
-
-       tprints(", idiag_if=");
-       print_ifindex(id->idiag_if);
-
+       PRINT_FIELD_IFINDEX(", ", *id, idiag_if);
        PRINT_FIELD_COOKIE(", ", *id, idiag_cookie);
-
        tprints("}");
 }
 
index 508840ce5ed1182de5ebf1d39a9cd386140805fd..2619610c7cfc81297e5b0b062295d9bed4c96b5b 100644 (file)
                                sizeof((where_).field_), #field_);      \
        } while (0)
 
+#define PRINT_FIELD_IFINDEX(prefix_, where_, field_)                   \
+       do {                                                            \
+               STRACE_PRINTF("%s%s=", (prefix_), #field_);             \
+               print_ifindex((where_).field_);                         \
+       } while (0)
+
 #endif /* !STRACE_PRINT_FIELDS_H */
index 3f85c5f62a9a73aae4ee2cb00030db9b0b5836d0..7b72d043f34ad212aac94b92edf02b5066235891 100644 (file)
@@ -134,14 +134,13 @@ print_sockaddr_data_in6(const void *const buf, const int addrlen)
        if (addrlen <= (int) SIN6_MIN_LEN)
                return;
 
-       tprints(", sin6_scope_id=");
 #if defined IN6_IS_ADDR_LINKLOCAL && defined IN6_IS_ADDR_MC_LINKLOCAL
        if (IN6_IS_ADDR_LINKLOCAL(&sa_in6->sin6_addr)
            || IN6_IS_ADDR_MC_LINKLOCAL(&sa_in6->sin6_addr))
-               print_ifindex(sa_in6->sin6_scope_id);
+               PRINT_FIELD_IFINDEX(", ", *sa_in6, sin6_scope_id);
        else
 #endif
-               tprintf("%u", sa_in6->sin6_scope_id);
+               PRINT_FIELD_U(", ", *sa_in6, sin6_scope_id);
 }
 
 static void
@@ -178,8 +177,7 @@ print_sockaddr_data_ll(const void *const buf, const int addrlen)
 
        tprints("sll_protocol=htons(");
        printxval(ethernet_protocols, ntohs(sa_ll->sll_protocol), "ETH_P_???");
-       tprints("), sll_ifindex=");
-       print_ifindex(sa_ll->sll_ifindex);
+       PRINT_FIELD_IFINDEX("), ", *sa_ll, sll_ifindex);
        tprints(", sll_hatype=");
        printxval(arp_hardware_types, sa_ll->sll_hatype, "ARPHRD_???");
        tprints(", sll_pkttype=");