FILE *fp = (FILE*)arg;
struct xfrm_userpolicy_info *xpinfo = NLMSG_DATA(n);
int len = n->nlmsg_len;
- struct rtattr * tb[XFRM_MAX_DEPTH];
- int ntb;
+ struct rtattr * tb[XFRMA_MAX+1];
if (n->nlmsg_type != XFRM_MSG_NEWPOLICY &&
n->nlmsg_type != XFRM_MSG_DELPOLICY) {
if (!xfrm_policy_filter_match(xpinfo))
return 0;
- memset(tb, 0, sizeof(tb));
- ntb = parse_rtattr_byindex(tb, XFRM_MAX_DEPTH, XFRMP_RTA(xpinfo), len);
+ parse_rtattr(tb, XFRMA_MAX, XFRMP_RTA(xpinfo), len);
if (n->nlmsg_type == XFRM_MSG_DELPOLICY)
fprintf(fp, "Deleted ");
if (show_stats > 0)
xfrm_lifetime_print(&xpinfo->lft, &xpinfo->curlft, fp, "\t");
- xfrm_xfrma_print(tb, ntb, xpinfo->sel.family, fp, "\t");
+ xfrm_xfrma_print(tb, xpinfo->sel.family, fp, "\t");
if (oneline)
fprintf(fp, "\n");
* data = struct xfrm_usersa_info
* rtattr
* rtattr
- * ... (max count of rtattr is XFRM_MAX_DEPTH)
+ * ... (max count of rtattr is XFRM_MAX+1
*
* each rtattr data = struct xfrm_algo(dynamic size) or xfrm_address_t
*/
struct xfrm_usersa_info *xsinfo = NLMSG_DATA(n);
int len = n->nlmsg_len;
struct rtattr * tb[XFRMA_MAX+1];
- int ntb;
if (n->nlmsg_type != XFRM_MSG_NEWSA &&
n->nlmsg_type != XFRM_MSG_DELSA) {
if (!xfrm_state_filter_match(xsinfo))
return 0;
- memset(tb, 0, sizeof(tb));
- ntb = parse_rtattr_byindex(tb, XFRM_MAX_DEPTH, XFRMS_RTA(xsinfo), len);
+ parse_rtattr(tb, XFRMA_MAX, XFRMS_RTA(xsinfo), len);
if (n->nlmsg_type == XFRM_MSG_DELSA)
fprintf(fp, "Deleted ");
}
fprintf(fp, "%s", _SL_);
- xfrm_xfrma_print(tb, ntb, xsinfo->family, fp, "\t");
+ xfrm_xfrma_print(tb, xsinfo->family, fp, "\t");
if (!xfrm_selector_iszero(&xsinfo->sel))
xfrm_selector_print(&xsinfo->sel, xsinfo->family, fp, "\tsel ");