[IPV6] MROUTE: Support multicast forwarding.
Based on ancient patch by Mickael Hoerdt <hoerdt@clarinet.u-strasbg.fr>, which is available at <http://www-r2.u-strasbg.fr/~hoerdt/dev/linux_ipv6_mforwarding/patch-linux-ipv6-mforwarding-0.1a>. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include <linux/sockios.h>
|
||||
#include <linux/net.h>
|
||||
#include <linux/in6.h>
|
||||
#include <linux/mroute6.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/init.h>
|
||||
@@ -118,6 +119,9 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
|
||||
|
||||
valbool = (val!=0);
|
||||
|
||||
if (ip6_mroute_opt(optname))
|
||||
return ip6_mroute_setsockopt(sk, optname, optval, optlen);
|
||||
|
||||
lock_sock(sk);
|
||||
|
||||
switch (optname) {
|
||||
@@ -790,6 +794,9 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
|
||||
int len;
|
||||
int val;
|
||||
|
||||
if (ip6_mroute_opt(optname))
|
||||
return ip6_mroute_getsockopt(sk, optname, optval, optlen);
|
||||
|
||||
if (get_user(len, optlen))
|
||||
return -EFAULT;
|
||||
switch (optname) {
|
||||
|
Reference in New Issue
Block a user