* netlink.c (decode_netlink_or_printaddr_msg): From decode_netlink_or_printaddr(). (decode_netlink_or_printaddr): Call decode_netlink_or_printaddr_msg(). --- netlink.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/netlink.c b/netlink.c index bb2c3a7..9b0d352 100644 --- a/netlink.c +++ b/netlink.c @@ -59,11 +59,11 @@ nlmsg_next(struct tcb *tcp, unsigned long nlh, unsigned long *len) { ((char *)(nlh) + NLMSG_ALIGN(nlmsghdr.nlmsg_len)); } -void -decode_netlink_or_printaddr(struct tcb *tcp, unsigned long addr, +#ifdef AF_NETLINK +static void +decode_netlink_msg(struct tcb *tcp, unsigned long addr, unsigned long size) { -#ifdef AF_NETLINK struct nlmsghdr nlmsghdr; memset(&nlmsghdr, 0, sizeof(nlmsghdr)); if (umoven(tcp, addr, sizeof(nlmsghdr), &nlmsghdr) == -1) @@ -88,6 +88,21 @@ decode_netlink_or_printaddr(struct tcb *tcp, unsigned long addr, tprints("}"); +} +#endif + +void +decode_netlink_or_printaddr(struct tcb *tcp, unsigned long addr, + unsigned long size) +{ +#ifdef AF_NETLINK + if (!nlmsg_ok(tcp, addr, size)) + return; + + for (; nlmsg_ok(tcp, addr, size); + addr = nlmsg_next(tcp, addr, &size)) { + decode_netlink_msg(tcp, addr, size); + } #else printaddr(addr); #endif -- 2.8.3 ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel