Thank you for the reply. On Thu, Aug 20, 2015 at 12:04:03AM +0200, Pablo Neira Ayuso wrote: > I suggest you remove the nflog_data_init(), nflog_data_alloc(), > nflog_data_free() and nflog_nlmsg_parse(). > > Those are part of the old API, we should focus on API that we can > combine with libmnl. I think I can follow your suggestion, is it correct? Please let me ask two more things. With these functions, nflog attrs can be acquired by mnl_attr_get_payload, but can not show as XML in one shot. To do it, may I post another patch: struct nflog_data *nfnl_attrs2data(struct nlattr **attr) { struct nflog_data *nfad = calloc(1, sizeof(struct nflog_data)); if (nfad == NULL) return NULL; nfad->nfa = (struct nfattr **)&attr[1]; return nfad; } Is it acceptable? It's just my curiosity, would you tell me what does nfnl_ prefix stand for? Thanks, -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html