From 4652a842a915226b4e864e1041e43a7767453a56 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Sun, 9 Jul 2017 13:54:01 +0000 Subject: [PATCH] Intorduce PRINT_FIELD_IFINDEX * 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 | 4 ++-- net.c | 4 +--- netlink_sock_diag.c | 9 ++------- print_fields.h | 6 ++++++ sockaddr.c | 8 +++----- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/msghdr.c b/msghdr.c index d2638665..b95232d0 100644 --- a/msghdr.c +++ b/msghdr.c @@ -30,6 +30,7 @@ */ #include "defs.h" +#include "print_fields.h" #include "msghdr.h" #include #include @@ -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 ae8e7494..49a36342 100644 --- 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 */ diff --git a/netlink_sock_diag.c b/netlink_sock_diag.c index 1475ec8b..467abbbb 100644 --- a/netlink_sock_diag.c +++ b/netlink_sock_diag.c @@ -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("}"); } diff --git a/print_fields.h b/print_fields.h index 508840ce..2619610c 100644 --- a/print_fields.h +++ b/print_fields.h @@ -87,4 +87,10 @@ 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 */ diff --git a/sockaddr.c b/sockaddr.c index 3f85c5f6..7b72d043 100644 --- a/sockaddr.c +++ b/sockaddr.c @@ -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="); -- 2.40.0