bool odhcp6c_signal_process(void) { if (do_signal == SIGIO) { do_signal = 0; bool ra_rtnled = ra_rtnl_process(); bool ra_updated = ra_process(); if (ra_rtnled || (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 do_signal != 0; }
bool odhcp6c_signal_process(void) { if (do_signal == SIGIO) { do_signal = 0; bool ra_updated = ra_process(); if (ra_link_up()) do_signal = SIGUSR2; 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); #ifdef EXT_BFD_PING bfd_receive(); #endif } return do_signal != 0; }
bool odhcp6c_signal_process(void) { while (signal_io) { signal_io = false; bool ra_updated = ra_process(); if (ra_link_up()) signal_usr2 = true; 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); #ifdef EXT_BFD_PING bfd_receive(); #endif } return signal_usr1 || signal_usr2 || signal_term; }