summaryrefslogtreecommitdiff
path: root/net/ipv6
diff options
context:
space:
mode:
authorShmulik Ladkani <shmulik.ladkani@gmail.com>2012-12-02 01:44:53 +0000
committerDavid S. Miller <davem@davemloft.net>2012-12-03 13:59:57 -0500
commit9ba2add3cf5c103b7236f82a023c8ee05a51e4d1 (patch)
tree8469098d33a0786b3d1f016f1206d54028738683 /net/ipv6
parent1c85382e30618f66d4b15e608ff32253beb22649 (diff)
downloadlinux-3.10-9ba2add3cf5c103b7236f82a023c8ee05a51e4d1.tar.gz
linux-3.10-9ba2add3cf5c103b7236f82a023c8ee05a51e4d1.tar.bz2
linux-3.10-9ba2add3cf5c103b7236f82a023c8ee05a51e4d1.zip
ipv6: Make 'addrconf_rs_timer' send Router Solicitations (and re-arm itself) if Router Advertisements are accepted
As of 026359b [ipv6: Send ICMPv6 RSes only when RAs are accepted], Router Solicitations are sent whenever kernel accepts Router Advertisements on the interface. However, this logic isn't reflected in 'addrconf_rs_timer'. The timer fails to issue subsequent RS messages (and fails to re-arm itself) if forwarding is enabled and the special hybrid mode is enabled (accept_ra=2). Fix the condition determining whether next RS should be sent, by using 'ipv6_accept_ra()'. Reported-by: Ami Koren <amikoren@yahoo.com> Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 4b644f656c4..22ae75d5401 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -2988,7 +2988,7 @@ static void addrconf_rs_timer(unsigned long data)
if (idev->dead || !(idev->if_flags & IF_READY))
goto out;
- if (idev->cnf.forwarding)
+ if (!ipv6_accept_ra(idev))
goto out;
/* Announcement received after solicitation was sent */