X-Git-Url: https://git.decadent.org.uk/gitweb/?p=odhcp6c.git;a=blobdiff_plain;f=src%2Fodhcp6c.c;h=7cdf09e47c25b62f1125c5c81efc17e2b97c6847;hp=2357a9a9aa577b7b58819c599c341b4c85e9abc8;hb=6373af63310f32e1408a81f4e4e069a5f0d3e59e;hpb=b9c8be24207e4197c9b529c157d7ea04f3f4bdb8 diff --git a/src/odhcp6c.c b/src/odhcp6c.c index 2357a9a..7cdf09e 100644 --- a/src/odhcp6c.c +++ b/src/odhcp6c.c @@ -266,6 +266,7 @@ int main(_unused int argc, char* const argv[]) while (!signal_term) { // Main logic odhcp6c_clear_state(STATE_SERVER_ID); + odhcp6c_clear_state(STATE_SERVER_ADDR); odhcp6c_clear_state(STATE_IA_NA); odhcp6c_clear_state(STATE_IA_PD); odhcp6c_clear_state(STATE_SNTP_IP); @@ -365,6 +366,7 @@ int main(_unused int argc, char* const argv[]) } odhcp6c_clear_state(STATE_SERVER_ID); // Remove binding + odhcp6c_clear_state(STATE_SERVER_ADDR); size_t ia_pd_len, ia_na_len; odhcp6c_get_state(STATE_IA_PD, &ia_pd_len); @@ -478,11 +480,8 @@ bool odhcp6c_signal_process(void) if (ra_link_up()) signal_usr2 = true; - if (ra_updated && (bound || allow_slaac_only == 0)) + if (ra_updated && (bound || allow_slaac_only >= 0)) script_call("ra-updated"); // Immediate process urgent events - else if (ra_updated && !bound && allow_slaac_only > 0) - script_delay_call("ra-updated", allow_slaac_only); - } return signal_usr1 || signal_usr2 || signal_term;