Esempio n. 1
0
bool odhcp6c_signal_process(void)
{
	if (do_signal == SIGIO) {
		do_signal = 0;
		bool updated = ra_process();
		updated |= ra_rtnl_process();
		if (updated && (bound || allow_slaac_only)) {
			odhcp6c_expire();
			script_call("ra-updated");
		}
	}

	return do_signal != 0;
}
Esempio n. 2
0
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;
}
Esempio n. 3
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
	}

	return signal_usr1 || signal_usr2 || signal_term;
}
Esempio n. 4
0
bool odhcp6c_signal_process(void)
{
    while (signal_io) {
        signal_io = false;

        bool ra_updated = ra_process();

        if (ra_link_up()) {
            signal_usr2 = true;
            ra = false;
        }

        if (ra_updated && (bound || allow_slaac_only >= 0)) {
            script_call("ra-updated", (!ra && !bound) ?
                        script_sync_delay : script_accu_delay, false);
            ra = true;
        }
    }

    return signal_usr1 || signal_usr2 || signal_term;
}
Esempio n. 5
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;
}
Esempio n. 6
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;
}