summaryrefslogtreecommitdiff
path: root/net/ipv6/addrconf.c
diff options
context:
space:
mode:
authorHannes Frederic Sowa <hannes@stressinduktion.org>2013-06-26 03:41:49 +0200
committerDavid S. Miller <davem@davemloft.net>2013-06-26 15:23:01 -0700
commit77ecaace6c5487eae8ede633ad51478511a8e125 (patch)
treee5b913cf2caa80dfa047d333c347f9b0cc1c93c3 /net/ipv6/addrconf.c
parent963b89e80d9fb7f22fc2688428e121b410b76504 (diff)
downloadlwn-77ecaace6c5487eae8ede633ad51478511a8e125.tar.gz
lwn-77ecaace6c5487eae8ede633ad51478511a8e125.zip
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.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)
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) {