netlink: implement nla_put_in_addr and nla_put_in6_addr
IP addresses are often stored in netlink attributes. Add generic functions to do that. For nla_put_in_addr, it would be nicer to pass struct in_addr but this is not used universally throughout the kernel, in way too many places __be32 is used to store IPv4 address. Signed-off-by: Jiri Benc <jbenc@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

orang tua
15e318bdc6
melakukan
930345ea63
@@ -293,15 +293,13 @@ static int netlbl_mgmt_listentry(struct sk_buff *skb,
|
||||
return -ENOMEM;
|
||||
|
||||
addr_struct.s_addr = iter4->addr;
|
||||
ret_val = nla_put(skb, NLBL_MGMT_A_IPV4ADDR,
|
||||
sizeof(struct in_addr),
|
||||
&addr_struct);
|
||||
ret_val = nla_put_in_addr(skb, NLBL_MGMT_A_IPV4ADDR,
|
||||
addr_struct.s_addr);
|
||||
if (ret_val != 0)
|
||||
return ret_val;
|
||||
addr_struct.s_addr = iter4->mask;
|
||||
ret_val = nla_put(skb, NLBL_MGMT_A_IPV4MASK,
|
||||
sizeof(struct in_addr),
|
||||
&addr_struct);
|
||||
ret_val = nla_put_in_addr(skb, NLBL_MGMT_A_IPV4MASK,
|
||||
addr_struct.s_addr);
|
||||
if (ret_val != 0)
|
||||
return ret_val;
|
||||
map4 = netlbl_domhsh_addr4_entry(iter4);
|
||||
@@ -328,14 +326,12 @@ static int netlbl_mgmt_listentry(struct sk_buff *skb,
|
||||
if (nla_b == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
ret_val = nla_put(skb, NLBL_MGMT_A_IPV6ADDR,
|
||||
sizeof(struct in6_addr),
|
||||
&iter6->addr);
|
||||
ret_val = nla_put_in6_addr(skb, NLBL_MGMT_A_IPV6ADDR,
|
||||
&iter6->addr);
|
||||
if (ret_val != 0)
|
||||
return ret_val;
|
||||
ret_val = nla_put(skb, NLBL_MGMT_A_IPV6MASK,
|
||||
sizeof(struct in6_addr),
|
||||
&iter6->mask);
|
||||
ret_val = nla_put_in6_addr(skb, NLBL_MGMT_A_IPV6MASK,
|
||||
&iter6->mask);
|
||||
if (ret_val != 0)
|
||||
return ret_val;
|
||||
map6 = netlbl_domhsh_addr6_entry(iter6);
|
||||
|
Reference in New Issue
Block a user