anycast.c (94e187c01512c9cf29e2ff54bf1a1b045f38293d) | anycast.c (af31f412c7c7a3c0fda4bf4beaf0c85af1f263c8) |
---|---|
1/* 2 * Anycast support for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * David L Stevens (dlstevens@us.ibm.com) 7 * 8 * based heavily on net/ipv6/mcast.c --- 50 unchanged lines hidden (view full) --- 59 struct ipv6_pinfo *np = inet6_sk(sk); 60 struct net_device *dev = NULL; 61 struct inet6_dev *idev; 62 struct ipv6_ac_socklist *pac; 63 struct net *net = sock_net(sk); 64 int ishost = !net->ipv6.devconf_all->forwarding; 65 int err = 0; 66 | 1/* 2 * Anycast support for IPv6 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * David L Stevens (dlstevens@us.ibm.com) 7 * 8 * based heavily on net/ipv6/mcast.c --- 50 unchanged lines hidden (view full) --- 59 struct ipv6_pinfo *np = inet6_sk(sk); 60 struct net_device *dev = NULL; 61 struct inet6_dev *idev; 62 struct ipv6_ac_socklist *pac; 63 struct net *net = sock_net(sk); 64 int ishost = !net->ipv6.devconf_all->forwarding; 65 int err = 0; 66 |
67 if (!capable(CAP_NET_ADMIN)) | 67 if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) |
68 return -EPERM; 69 if (ipv6_addr_is_multicast(addr)) 70 return -EINVAL; 71 if (ipv6_chk_addr(net, addr, NULL, 0)) 72 return -EINVAL; 73 74 pac = sock_kmalloc(sk, sizeof(struct ipv6_ac_socklist), GFP_KERNEL); 75 if (pac == NULL) --- 445 unchanged lines hidden --- | 68 return -EPERM; 69 if (ipv6_addr_is_multicast(addr)) 70 return -EINVAL; 71 if (ipv6_chk_addr(net, addr, NULL, 0)) 72 return -EINVAL; 73 74 pac = sock_kmalloc(sk, sizeof(struct ipv6_ac_socklist), GFP_KERNEL); 75 if (pac == NULL) --- 445 unchanged lines hidden --- |