* defs.h (nl_netfilter_msg_types): New xlat prototype. * netlink_netfilter.c: Include "nlattr.h". (decode_netlink_netfilter): Call decode_nlattr. --- defs.h | 1 + netlink_netfilter.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/defs.h b/defs.h index 6b51626..cf75802 100644 --- a/defs.h +++ b/defs.h @@ -287,6 +287,7 @@ extern const struct xlat inet_protocols[]; extern const struct xlat ip_type_of_services[]; extern const struct xlat msg_flags[]; extern const struct xlat netlink_protocols[]; +extern const struct xlat nl_netfilter_msg_types[]; extern const struct xlat nl_route_types[]; extern const struct xlat open_access_modes[]; extern const struct xlat open_mode_flags[]; diff --git a/netlink_netfilter.c b/netlink_netfilter.c index a5efeb6..2840301 100644 --- a/netlink_netfilter.c +++ b/netlink_netfilter.c @@ -31,6 +31,7 @@ #ifdef HAVE_LINUX_NETFILTER_NFNETLINK_H # include "print_fields.h" +# include "nlattr.h" # include <netinet/in.h> # include <arpa/inet.h> @@ -77,8 +78,14 @@ decode_netlink_netfilter(struct tcb *const tcp, const size_t offset = NLMSG_ALIGN(sizeof(nfmsg)); if (len > offset) { tprints(", "); - printstr_ex(tcp, addr + offset, - len - offset, QUOTE_FORCE_HEX); + if (subsys_id >= NFNL_SUBSYS_COUNT + || xlookup(nl_netfilter_msg_types, + nlmsghdr->nlmsg_type)) + printstr_ex(tcp, addr + offset, + len - offset, QUOTE_FORCE_HEX); + else + decode_nlattr(tcp, addr + offset, len - offset, + NULL, NULL, NULL, 0, NULL); } } -- 2.7.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel