ip6mr.c (0588000eac9ba4178cebade437da3b28e8fad48f) | ip6mr.c (af31f412c7c7a3c0fda4bf4beaf0c85af1f263c8) |
---|---|
1/* 2 * Linux IPv6 multicast routing support for BSD pim6sd 3 * Based on net/ipv4/ipmr.c. 4 * 5 * (c) 2004 Mickael Hoerdt, <hoerdt@clarinet.u-strasbg.fr> 6 * LSIIT Laboratory, Strasbourg, France 7 * (c) 2004 Jean-Philippe Andriot, <jean-philippe.andriot@6WIND.com> 8 * 6WIND, Paris, France --- 1569 unchanged lines hidden (view full) --- 1578 struct net *net = sock_net(sk); 1579 struct mr6_table *mrt; 1580 1581 mrt = ip6mr_get_table(net, raw6_sk(sk)->ip6mr_table ? : RT6_TABLE_DFLT); 1582 if (mrt == NULL) 1583 return -ENOENT; 1584 1585 if (optname != MRT6_INIT) { | 1/* 2 * Linux IPv6 multicast routing support for BSD pim6sd 3 * Based on net/ipv4/ipmr.c. 4 * 5 * (c) 2004 Mickael Hoerdt, <hoerdt@clarinet.u-strasbg.fr> 6 * LSIIT Laboratory, Strasbourg, France 7 * (c) 2004 Jean-Philippe Andriot, <jean-philippe.andriot@6WIND.com> 8 * 6WIND, Paris, France --- 1569 unchanged lines hidden (view full) --- 1578 struct net *net = sock_net(sk); 1579 struct mr6_table *mrt; 1580 1581 mrt = ip6mr_get_table(net, raw6_sk(sk)->ip6mr_table ? : RT6_TABLE_DFLT); 1582 if (mrt == NULL) 1583 return -ENOENT; 1584 1585 if (optname != MRT6_INIT) { |
1586 if (sk != mrt->mroute6_sk && !capable(CAP_NET_ADMIN)) | 1586 if (sk != mrt->mroute6_sk && !ns_capable(net->user_ns, CAP_NET_ADMIN)) |
1587 return -EACCES; 1588 } 1589 1590 switch (optname) { 1591 case MRT6_INIT: 1592 if (sk->sk_type != SOCK_RAW || 1593 inet_sk(sk)->inet_num != IPPROTO_ICMPV6) 1594 return -EOPNOTSUPP; --- 690 unchanged lines hidden --- | 1587 return -EACCES; 1588 } 1589 1590 switch (optname) { 1591 case MRT6_INIT: 1592 if (sk->sk_type != SOCK_RAW || 1593 inet_sk(sk)->inet_num != IPPROTO_ICMPV6) 1594 return -EOPNOTSUPP; --- 690 unchanged lines hidden --- |