diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2013-06-26 01:41:49 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-26 22:23:01 (GMT) |
commit | 77ecaace6c5487eae8ede633ad51478511a8e125 (patch) | |
tree | e5b913cf2caa80dfa047d333c347f9b0cc1c93c3 /net/ipv6/addrconf.c | |
parent | 963b89e80d9fb7f22fc2688428e121b410b76504 (diff) | |
download | linux-77ecaace6c5487eae8ede633ad51478511a8e125.tar.xz |
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/addrconf.c')
-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 afaf3cd..4e4cc1f 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) write_lock_bh(&idev->lock); - if (update_rs) + if (update_rs) { idev->if_flags |= IF_RS_SENT; + idev->rs_probes = 1; + addrconf_mod_rs_timer(idev, idev->cnf.rtr_solicit_interval); + } /* Well, that's kinda nasty ... */ list_for_each_entry(ifp, &idev->addr_list, if_list) { |