summaryrefslogtreecommitdiff
path: root/stun.c
AgeCommit message (Expand)AuthorFilesLines
2013-06-12stun: close socket before returning in error caseDaniel Borkmann1-2/+5
2013-06-12stun: memset saddr before bindingDaniel Borkmann1-1/+2
2013-06-04stun: add header fileDaniel Borkmann1-8/+1
2013-06-04xutils: eliminate xutils, move rest to epoll2Daniel Borkmann1-1/+0
2013-06-04sock: add socket management functionsDaniel Borkmann1-0/+1
2013-03-15all: import netsniff-ng 0.5.8-rc0 sourceDaniel Borkmann1-0/+190
ent926af6273fc683cd98cd0ce7bf0d04a02eed6742 (diff)
ipv6: addrconf: fix generation of new temporary addresses
Under some circumstances it is possible that no new temporary addresses will be generated. For instance, addrconf_prefix_rcv_add_addr() indirectly calls ipv6_create_tempaddr(), which creates a tentative temporary address and starts dad. Next, addrconf_prefix_rcv_add_addr() indirectly calls addrconf_verify_rtnl(). Now, assume that the previously created temporary address has the least preferred lifetime among all existing addresses and is still tentative (that is, dad is still running). Hence, the next run of addrconf_verify_rtnl() is performed when the preferred lifetime of the temporary address ends. If dad succeeds before the next run, the temporary address becomes deprecated during the next run, but no new temporary address is generated. In order to fix this, schedule the next addrconf_verify_rtnl() run slightly before the temporary address becomes deprecated, if dad succeeded. Signed-off-by: Marcus Huewe <suse-tux@gmx.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/addrconf.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c