aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/ipv6_sockglue.c
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-04-02 20:22:53 -0400
committerYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2008-04-05 09:33:38 -0400
commit7bc570c8b4f75ddb3fd5dbeb38127cdc4acbcc9c (patch)
treeb688b728c3ea08479f75986d1e9f590fca1f8715 /net/ipv6/ipv6_sockglue.c
parent80a9492a33dd7d852465625022d56ff76d62174d (diff)
[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>
Diffstat (limited to 'net/ipv6/ipv6_sockglue.c')
-rw-r--r--net/ipv6/ipv6_sockglue.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
index 4195ac92345e..99624109c010 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -33,6 +33,7 @@
33#include <linux/sockios.h> 33#include <linux/sockios.h>
34#include <linux/net.h> 34#include <linux/net.h>
35#include <linux/in6.h> 35#include <linux/in6.h>
36#include <linux/mroute6.h>
36#include <linux/netdevice.h> 37#include <linux/netdevice.h>
37#include <linux/if_arp.h> 38#include <linux/if_arp.h>
38#include <linux/init.h> 39#include <linux/init.h>
@@ -118,6 +119,9 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
118 119
119 valbool = (val!=0); 120 valbool = (val!=0);
120 121
122 if (ip6_mroute_opt(optname))
123 return ip6_mroute_setsockopt(sk, optname, optval, optlen);
124
121 lock_sock(sk); 125 lock_sock(sk);
122 126
123 switch (optname) { 127 switch (optname) {
@@ -790,6 +794,9 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
790 int len; 794 int len;
791 int val; 795 int val;
792 796
797 if (ip6_mroute_opt(optname))
798 return ip6_mroute_getsockopt(sk, optname, optval, optlen);
799
793 if (get_user(len, optlen)) 800 if (get_user(len, optlen))
794 return -EFAULT; 801 return -EFAULT;
795 switch (optname) { 802 switch (optname) {