summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2020-06-27 13:58:44 +0100
committerRoy Marples <roy@marples.name>2020-06-27 13:58:44 +0100
commit05c1b0761da013d1bea9cc8e96cd7e09540834ba (patch)
treec8f84efce745658a9441058c0b8ee89feef55d73
parente97ef86b683f87a2ae1715d30bb7c5f981c49370 (diff)
downloaddhcpcd-05c1b0761da013d1bea9cc8e96cd7e09540834ba.tar.xz
inet6: Don't regen temp addresses we didn't add.
Helps with interopability with OpenBSD's slaacd(8).
-rw-r--r--src/ipv6.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/ipv6.c b/src/ipv6.c
index 13e6c117..c42b3d6d 100644
--- a/src/ipv6.c
+++ b/src/ipv6.c
@@ -2130,6 +2130,7 @@ ipv6_regentempaddrs(void *arg)
/* Mark addresses for regen so we don't infinite loop. */
TAILQ_FOREACH(ia, &state->addrs, next) {
if (ia->flags & IPV6_AF_TEMPORARY &&
+ ia->flags & IPV6_AF_ADDED &&
!(ia->flags & IPV6_AF_STALE))
ia->flags |= IPV6_AF_REGEN;
else