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

rtnl_netconf.c

index 7e9b173b77c187d1d47b8d7fdbabafc6f3d3b56a..f01c543f526d6c1223f60071f23418f33a82d5d1 100644 (file)
 
 # include "xlat/rtnl_netconf_attrs.h"
 
+static const nla_decoder_t netconfmsg_nla_decoders[] = {
+       [NETCONFA_IFINDEX]                      = decode_nla_ifindex,
+       [NETCONFA_FORWARDING]                   = decode_nla_s32,
+       [NETCONFA_RP_FILTER]                    = decode_nla_s32,
+       [NETCONFA_MC_FORWARDING]                = decode_nla_s32,
+       [NETCONFA_PROXY_NEIGH]                  = decode_nla_s32,
+       [NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN]  = decode_nla_s32,
+       [NETCONFA_INPUT]                        = decode_nla_s32
+};
+
 DECL_NETLINK_ROUTE_DECODER(decode_netconfmsg)
 {
        struct netconfmsg ncm = { .ncm_family = family };
@@ -52,7 +62,8 @@ DECL_NETLINK_ROUTE_DECODER(decode_netconfmsg)
                tprints(", ");
                decode_nlattr(tcp, addr + offset, len - offset,
                              rtnl_netconf_attrs, "NETCONFA_???",
-                             NULL, 0, NULL);
+                             netconfmsg_nla_decoders,
+                             ARRAY_SIZE(netconfmsg_nla_decoders), NULL);
        }
 }