From 0c3ef7dffdfecea440543f2d5523aec09583fdb9 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Fri, 30 Jun 2017 21:38:49 +0000 Subject: [PATCH] netlink_sock_diag: print inet_diag_sockid.idiag_if as an interface index * netlink_sock_diag.c (print_inet_diag_sockid): Print idiag_if field using print_ifindex. * tests/nlattr_inet_diag_msg.c: Include . (IFINDEX_LO): New macro. (init_inet_diag_msg): Set inet_diag_sockid.idiag_if field. (print_inet_diag_msg): Update expected output. --- netlink_sock_diag.c | 4 +++- tests/nlattr_inet_diag_msg.c | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/netlink_sock_diag.c b/netlink_sock_diag.c index 594fef0b..c32480ea 100644 --- a/netlink_sock_diag.c +++ b/netlink_sock_diag.c @@ -356,7 +356,9 @@ print_inet_diag_sockid(const struct inet_diag_sockid *id, const uint8_t family) print_inet_addr(family, id->idiag_dst, sizeof(id->idiag_dst), "idiag_dst"); - PRINT_FIELD_U(", ", *id, idiag_if); + tprints(", idiag_if="); + print_ifindex(id->idiag_if); + PRINT_FIELD_COOKIE(", ", *id, idiag_cookie); tprints("}"); diff --git a/tests/nlattr_inet_diag_msg.c b/tests/nlattr_inet_diag_msg.c index 59c2e0d0..33397c78 100644 --- a/tests/nlattr_inet_diag_msg.c +++ b/tests/nlattr_inet_diag_msg.c @@ -30,14 +30,21 @@ #include #include -#include #include +#include +#include #include "test_nlattr.h" #include #include static const char address[] = "10.11.12.13"; +#ifdef HAVE_IF_INDEXTONAME +# define IFINDEX_LO (if_nametoindex("lo")) +#else +# define IFINDEX_LO 1 +#endif + static void init_inet_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len) { @@ -50,7 +57,8 @@ init_inet_diag_msg(struct nlmsghdr *const nlh, const unsigned int msg_len) struct inet_diag_msg *const msg = NLMSG_DATA(nlh); SET_STRUCT(struct inet_diag_msg, msg, .idiag_family = AF_INET, - .idiag_state = TCP_LISTEN + .idiag_state = TCP_LISTEN, + .id.idiag_if = IFINDEX_LO ); if (!inet_pton(AF_INET, address, msg->id.idiag_src) || @@ -67,9 +75,9 @@ print_inet_diag_msg(const unsigned int msg_len) ", id={idiag_sport=htons(0), idiag_dport=htons(0)" ", inet_pton(AF_INET, \"%s\", &idiag_src)" ", inet_pton(AF_INET, \"%s\", &idiag_dst)" - ", idiag_if=0, idiag_cookie=[0, 0]}, idiag_expires=0" - ", idiag_rqueue=0, idiag_wqueue=0, idiag_uid=0" - ", idiag_inode=0}", + ", idiag_if=if_nametoindex(\"lo\"), idiag_cookie=[0, 0]}" + ", idiag_expires=0, idiag_rqueue=0, idiag_wqueue=0" + ", idiag_uid=0, idiag_inode=0}", msg_len, address, address); } -- 2.40.0