|
@@ -124,13 +124,14 @@ hash_ipportnet4_data_list(struct sk_buff *skb,
|
|
|
{
|
|
|
u32 flags = data->nomatch ? IPSET_FLAG_NOMATCH : 0;
|
|
|
|
|
|
- NLA_PUT_IPADDR4(skb, IPSET_ATTR_IP, data->ip);
|
|
|
- NLA_PUT_IPADDR4(skb, IPSET_ATTR_IP2, data->ip2);
|
|
|
- NLA_PUT_NET16(skb, IPSET_ATTR_PORT, data->port);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_CIDR2, data->cidr + 1);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_PROTO, data->proto);
|
|
|
- if (flags)
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags));
|
|
|
+ if (nla_put_ipaddr4(skb, IPSET_ATTR_IP, data->ip) ||
|
|
|
+ nla_put_ipaddr4(skb, IPSET_ATTR_IP2, data->ip2) ||
|
|
|
+ nla_put_net16(skb, IPSET_ATTR_PORT, data->port) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_CIDR2, data->cidr + 1) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_PROTO, data->proto) ||
|
|
|
+ (flags &&
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags))))
|
|
|
+ goto nla_put_failure;
|
|
|
return 0;
|
|
|
|
|
|
nla_put_failure:
|
|
@@ -145,16 +146,16 @@ hash_ipportnet4_data_tlist(struct sk_buff *skb,
|
|
|
(const struct hash_ipportnet4_telem *)data;
|
|
|
u32 flags = data->nomatch ? IPSET_FLAG_NOMATCH : 0;
|
|
|
|
|
|
- NLA_PUT_IPADDR4(skb, IPSET_ATTR_IP, tdata->ip);
|
|
|
- NLA_PUT_IPADDR4(skb, IPSET_ATTR_IP2, tdata->ip2);
|
|
|
- NLA_PUT_NET16(skb, IPSET_ATTR_PORT, tdata->port);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_CIDR2, data->cidr + 1);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_PROTO, data->proto);
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_TIMEOUT,
|
|
|
- htonl(ip_set_timeout_get(tdata->timeout)));
|
|
|
- if (flags)
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags));
|
|
|
-
|
|
|
+ if (nla_put_ipaddr4(skb, IPSET_ATTR_IP, tdata->ip) ||
|
|
|
+ nla_put_ipaddr4(skb, IPSET_ATTR_IP2, tdata->ip2) ||
|
|
|
+ nla_put_net16(skb, IPSET_ATTR_PORT, tdata->port) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_CIDR2, data->cidr + 1) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_PROTO, data->proto) ||
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_TIMEOUT,
|
|
|
+ htonl(ip_set_timeout_get(tdata->timeout))) ||
|
|
|
+ (flags &&
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags))))
|
|
|
+ goto nla_put_failure;
|
|
|
return 0;
|
|
|
|
|
|
nla_put_failure:
|
|
@@ -436,13 +437,14 @@ hash_ipportnet6_data_list(struct sk_buff *skb,
|
|
|
{
|
|
|
u32 flags = data->nomatch ? IPSET_FLAG_NOMATCH : 0;
|
|
|
|
|
|
- NLA_PUT_IPADDR6(skb, IPSET_ATTR_IP, &data->ip);
|
|
|
- NLA_PUT_IPADDR6(skb, IPSET_ATTR_IP2, &data->ip2);
|
|
|
- NLA_PUT_NET16(skb, IPSET_ATTR_PORT, data->port);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_CIDR2, data->cidr + 1);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_PROTO, data->proto);
|
|
|
- if (flags)
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags));
|
|
|
+ if (nla_put_ipaddr6(skb, IPSET_ATTR_IP, &data->ip.in6) ||
|
|
|
+ nla_put_ipaddr6(skb, IPSET_ATTR_IP2, &data->ip2.in6) ||
|
|
|
+ nla_put_net16(skb, IPSET_ATTR_PORT, data->port) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_CIDR2, data->cidr + 1) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_PROTO, data->proto) ||
|
|
|
+ (flags &&
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags))))
|
|
|
+ goto nla_put_failure;
|
|
|
return 0;
|
|
|
|
|
|
nla_put_failure:
|
|
@@ -457,15 +459,16 @@ hash_ipportnet6_data_tlist(struct sk_buff *skb,
|
|
|
(const struct hash_ipportnet6_telem *)data;
|
|
|
u32 flags = data->nomatch ? IPSET_FLAG_NOMATCH : 0;
|
|
|
|
|
|
- NLA_PUT_IPADDR6(skb, IPSET_ATTR_IP, &e->ip);
|
|
|
- NLA_PUT_IPADDR6(skb, IPSET_ATTR_IP2, &data->ip2);
|
|
|
- NLA_PUT_NET16(skb, IPSET_ATTR_PORT, data->port);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_CIDR2, data->cidr + 1);
|
|
|
- NLA_PUT_U8(skb, IPSET_ATTR_PROTO, data->proto);
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_TIMEOUT,
|
|
|
- htonl(ip_set_timeout_get(e->timeout)));
|
|
|
- if (flags)
|
|
|
- NLA_PUT_NET32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags));
|
|
|
+ if (nla_put_ipaddr6(skb, IPSET_ATTR_IP, &e->ip.in6) ||
|
|
|
+ nla_put_ipaddr6(skb, IPSET_ATTR_IP2, &data->ip2.in6) ||
|
|
|
+ nla_put_net16(skb, IPSET_ATTR_PORT, data->port) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_CIDR2, data->cidr + 1) ||
|
|
|
+ nla_put_u8(skb, IPSET_ATTR_PROTO, data->proto) ||
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_TIMEOUT,
|
|
|
+ htonl(ip_set_timeout_get(e->timeout))) ||
|
|
|
+ (flags &&
|
|
|
+ nla_put_net32(skb, IPSET_ATTR_CADT_FLAGS, htonl(flags))))
|
|
|
+ goto nla_put_failure;
|
|
|
return 0;
|
|
|
|
|
|
nla_put_failure:
|