* print_fields.h (PRINT_FIELD_SOCKADDR): New macro.
* msghdr.c (print_cmsg_ip_recverr): Use it instead of print_sockaddr.
* net.c (print_group_req): Likewise.
* sock.c (PRINT_IFREQ_ADDR): Remove.
(print_ifreq, print_ifconf_ifreq): Use PRINT_FIELD_SOCKADDR
instead of PRINT_IFREQ_ADDR.
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=",
+ ", ee_info=%u, ee_data=%u",
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_SOCKADDR(", ", *err, offender);
tprints("}");
}
}
PRINT_FIELD_IFINDEX("{", greq, gr_interface);
- tprints(", gr_group=");
- print_sockaddr(&greq.gr_group, sizeof(greq.gr_group));
+ PRINT_FIELD_SOCKADDR(", ", greq, gr_group);
tprints("}");
}
print_ifindex((where_).field_); \
} while (0)
+#define PRINT_FIELD_SOCKADDR(prefix_, where_, field_) \
+ do { \
+ STRACE_PRINTF("%s%s=", (prefix_), #field_); \
+ print_sockaddr(&(where_).field_, \
+ sizeof((where_).field_)); \
+ } while (0)
+
#define PRINT_FIELD_DEV(prefix_, where_, field_) \
do { \
STRACE_PRINTF("%s%s=", (prefix_), #field_); \
*/
#include "defs.h"
+#include "print_fields.h"
#include <sys/socket.h>
#if defined ALPHA || defined SH || defined SH64
#include "xlat/iffflags.h"
-#define PRINT_IFREQ_ADDR(ifr, sockaddr) \
- do { \
- tprints(#sockaddr "="); \
- print_sockaddr(&((ifr)->sockaddr), \
- sizeof((ifr)->sockaddr)); \
- } while (0)
-
static void
print_ifname(const char *ifname)
{
switch (code) {
case SIOCSIFADDR:
case SIOCGIFADDR:
- PRINT_IFREQ_ADDR(ifr, ifr_addr);
+ PRINT_FIELD_SOCKADDR("", *ifr, ifr_addr);
break;
case SIOCSIFDSTADDR:
case SIOCGIFDSTADDR:
- PRINT_IFREQ_ADDR(ifr, ifr_dstaddr);
+ PRINT_FIELD_SOCKADDR("", *ifr, ifr_dstaddr);
break;
case SIOCSIFBRDADDR:
case SIOCGIFBRDADDR:
- PRINT_IFREQ_ADDR(ifr, ifr_broadaddr);
+ PRINT_FIELD_SOCKADDR("", *ifr, ifr_broadaddr);
break;
case SIOCSIFNETMASK:
case SIOCGIFNETMASK:
- PRINT_IFREQ_ADDR(ifr, ifr_netmask);
+ PRINT_FIELD_SOCKADDR("", *ifr, ifr_netmask);
break;
case SIOCSIFHWADDR:
case SIOCGIFHWADDR: {
tprints("{ifr_name=");
print_ifname(ifr->ifr_name);
- tprints(", ");
- PRINT_IFREQ_ADDR(ifr, ifr_addr);
+ PRINT_FIELD_SOCKADDR(", ", *ifr, ifr_addr);
tprints("}");
return true;