* 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.
*/
#include "defs.h"
+#include "print_fields.h"
#include "msghdr.h"
#include <limits.h>
#include <arpa/inet.h>
{
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\")}",
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 */
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);
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("}");
}
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 */
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
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=");