diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2013-06-25 21:41:49 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-26 18:23:01 -0400 |
commit | 77ecaace6c5487eae8ede633ad51478511a8e125 (patch) | |
tree | e5b913cf2caa80dfa047d333c347f9b0cc1c93c3 /net/ipv6 | |
parent | 963b89e80d9fb7f22fc2688428e121b410b76504 (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.c | 5 |
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) { |