aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dhcp6c.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/dhcp6c.c b/dhcp6c.c
index c959b7c..edeca80 100644
--- a/dhcp6c.c
+++ b/dhcp6c.c
@@ -768,6 +768,15 @@ client6_ifctl(ifname, command)
switch(command) {
case DHCP6CTL_COMMAND_START:
+ /*
+ * The ifid might have changed, so reset it before releasing the
+ * lease.
+ */
+ if (ifreset(ifp)) {
+ dprintf(LOG_NOTICE, FNAME, "failed to reset %s",
+ ifname);
+ return (-1);
+ }
free_resources(ifp);
if (client6_start(ifp)) {
debug_printf(LOG_NOTICE, FNAME, "failed to restart %s",