]> granicus.if.org Git - strace/commitdiff
rtnl_nsid: decode rtgenmsg netlink attributes
authorJingPiao Chen <chenjingpiao@gmail.com>
Sun, 27 Aug 2017 17:20:10 +0000 (01:20 +0800)
committerJingPiao Chen <chenjingpiao@gmail.com>
Tue, 29 Aug 2017 07:23:59 +0000 (15:23 +0800)
* rtnl_nsid.c (rtgenmsg_nla_decoders): New array.
(decode_rtgenmsg): Use it.

rtnl_nsid.c

index e3fe18b6c571ccee2dde1a1177849ffee8fa4894..51ce37b41392a525cfc3fdb016bd716e3010e693 100644 (file)
 
 #include "xlat/rtnl_nsid_attrs.h"
 
+static const nla_decoder_t rtgenmsg_nla_decoders[] = {
+       [NETNSA_NSID]   = decode_nla_s32,
+       [NETNSA_PID]    = decode_nla_u32,
+       [NETNSA_FD]     = decode_nla_u32
+};
+
 DECL_NETLINK_ROUTE_DECODER(decode_rtgenmsg)
 {
        struct rtgenmsg rtgenmsg = { .rtgen_family = family };
@@ -48,6 +54,8 @@ DECL_NETLINK_ROUTE_DECODER(decode_rtgenmsg)
        if (len > offset) {
                tprints(", ");
                decode_nlattr(tcp, addr + offset, len - offset,
-                             rtnl_nsid_attrs, "NETNSA_???", NULL, 0, NULL);
+                             rtnl_nsid_attrs, "NETNSA_???",
+                             rtgenmsg_nla_decoders,
+                             ARRAY_SIZE(rtgenmsg_nla_decoders), NULL);
        }
 }