aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-06-25 21:41:49 -0400
committerDavid S. Miller <davem@davemloft.net>2013-06-26 18:23:01 -0400
commit77ecaace6c5487eae8ede633ad51478511a8e125 (patch)
treee5b913cf2caa80dfa047d333c347f9b0cc1c93c3 /net/ipv6
parent963b89e80d9fb7f22fc2688428e121b410b76504 (diff)
ipv6: rearm router solicitaion timer when setting new tokenized address
When a new tokenized address gets installed we send out just one router solicition. We should send out `rtr_solicits' in case one router advertisment got lost. So, rearm the timer as we do in addrconf_dad_complete. Cc: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Acked-by: Daniel Borkmann <dborkman@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6')
-rw-r--r--net/ipv6/addrconf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index afaf3cdadf58..4e4cc1fc26d1 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -4361,8 +4361,11 @@ static int inet6_set_iftoken(struct inet6_dev *idev, struct in6_addr *token)
4361 4361
4362 write_lock_bh(&idev->lock); 4362 write_lock_bh(&idev->lock);
4363 4363
4364 if (update_rs) 4364 if (update_rs) {
4365 idev->if_flags |= IF_RS_SENT; 4365 idev->if_flags |= IF_RS_SENT;
4366 idev->rs_probes = 1;
4367 addrconf_mod_rs_timer(idev, idev->cnf.rtr_solicit_interval);
4368 }
4366 4369
4367 /* Well, that's kinda nasty ... */ 4370 /* Well, that's kinda nasty ... */
4368 list_for_each_entry(ifp, &idev->addr_list, if_list) { 4371 list_for_each_entry(ifp, &idev->addr_list, if_list) {