From: Steven Barth <steven@midlink.org>
Date: Mon, 24 Mar 2014 08:37:36 +0000 (+0100)
Subject: Stop rebinding when all IAs are lost
X-Git-Tag: debian/1.1+git20160131-1~75
X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=6c8109e0c77d5a54950ba607d1ec1f83d5efb5b7;p=odhcp6c.git

Stop rebinding when all IAs are lost
---

diff --git a/src/odhcp6c.c b/src/odhcp6c.c
index ba11ced..0a46947 100644
--- a/src/odhcp6c.c
+++ b/src/odhcp6c.c
@@ -391,6 +391,12 @@ int main(_unused int argc, char* const argv[])
 
 				odhcp6c_clear_state(STATE_SERVER_ID); // Remove binding
 
+				odhcp6c_get_state(STATE_IA_PD, &ia_pd_len);
+				odhcp6c_get_state(STATE_IA_NA, &ia_na_len);
+
+				if (ia_pd_len == 0 && ia_na_len == 0)
+					break;
+
 				// If we have IAs, try rebind otherwise restart
 				res = dhcpv6_request(DHCPV6_MSG_REBIND);
 				odhcp6c_signal_process();