summaryrefslogtreecommitdiff
path: root/sbin/slaacd/engine.c
diff options
context:
space:
mode:
authorFlorian Obser <florian@cvs.openbsd.org>2022-07-23 09:00:11 +0000
committerFlorian Obser <florian@cvs.openbsd.org>2022-07-23 09:00:11 +0000
commit6b85c3072ff2f0a435b5a40a7f1896ce889e97ad (patch)
treed8f779eb36ef4cec9c2dd9bfd5074469805af673 /sbin/slaacd/engine.c
parent88696294a05b5740346f27289623df4034221273 (diff)
Delete addresses when interface is no longer autoconf.
This brings it in line with dhcpleased(8) as well as what we do for the default route and DNS proposals. I missed this when I rewrote the state machine to match dhcpleased(8).
Diffstat (limited to 'sbin/slaacd/engine.c')
-rw-r--r--sbin/slaacd/engine.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sbin/slaacd/engine.c b/sbin/slaacd/engine.c
index f12a8db5385..1412d4d2405 100644
--- a/sbin/slaacd/engine.c
+++ b/sbin/slaacd/engine.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: engine.c,v 1.81 2022/07/12 16:54:59 florian Exp $ */
+/* $OpenBSD: engine.c,v 1.82 2022/07/23 09:00:10 florian Exp $ */
/*
* Copyright (c) 2017 Florian Obser <florian@openbsd.org>
@@ -2207,6 +2207,8 @@ free_address_proposal(struct address_proposal *addr_proposal)
LIST_REMOVE(addr_proposal, entries);
evtimer_del(&addr_proposal->timer);
switch (addr_proposal->state) {
+ case PROPOSAL_CONFIGURED:
+ case PROPOSAL_NEARLY_EXPIRED:
case PROPOSAL_STALE:
withdraw_addr(addr_proposal);
break;