aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/raw.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/raw.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/raw.c')
-rw-r--r--net/ipv6/raw.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index aae6cedf1709..088b80b4ce74 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -53,6 +53,7 @@
53#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE) 53#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
54#include <net/mip6.h> 54#include <net/mip6.h>
55#endif 55#endif
56#include <linux/mroute6.h>
56 57
57#include <net/raw.h> 58#include <net/raw.h>
58#include <net/rawv6.h> 59#include <net/rawv6.h>
@@ -1135,7 +1136,11 @@ static int rawv6_ioctl(struct sock *sk, int cmd, unsigned long arg)
1135 } 1136 }
1136 1137
1137 default: 1138 default:
1139#ifdef CONFIG_IPV6_MROUTE
1140 return ip6mr_ioctl(sk, cmd, (void __user *)arg);
1141#else
1138 return -ENOIOCTLCMD; 1142 return -ENOIOCTLCMD;
1143#endif
1139 } 1144 }
1140} 1145}
1141 1146
@@ -1143,7 +1148,7 @@ static void rawv6_close(struct sock *sk, long timeout)
1143{ 1148{
1144 if (inet_sk(sk)->num == IPPROTO_RAW) 1149 if (inet_sk(sk)->num == IPPROTO_RAW)
1145 ip6_ra_control(sk, -1, NULL); 1150 ip6_ra_control(sk, -1, NULL);
1146 1151 ip6mr_sk_done(sk);
1147 sk_common_release(sk); 1152 sk_common_release(sk);
1148} 1153}
1149 1154