summaryrefslogtreecommitdiff
path: root/src/odhcp6c.c
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2014-03-24 09:37:36 +0100
committerSteven Barth <steven@midlink.org>2014-03-24 09:37:36 +0100
commit6c8109e0c77d5a54950ba607d1ec1f83d5efb5b7 (patch)
treef3a267d32ba28f41ee8d2a8948d556bd99d4bd03 /src/odhcp6c.c
parentaa894a5a8f31056582cd990982df1322a36a0f2b (diff)
downloadodhcp6c-6c8109e0c77d5a54950ba607d1ec1f83d5efb5b7.tar.gz
Stop rebinding when all IAs are lost
Diffstat (limited to 'src/odhcp6c.c')
-rw-r--r--src/odhcp6c.c6
1 files changed, 6 insertions, 0 deletions
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();