X-Git-Url: https://git.decadent.org.uk/gitweb/?p=odhcp6c.git;a=blobdiff_plain;f=src%2Fodhcp6c.c;h=2c5bfad4342f3c4298ef517355b12b512ac89b42;hp=1f75c50def5ed7195ff234e9237474b61b6a6bf5;hb=0131c7ed248d8a39480afd455de800c242ae5350;hpb=c792b89ce22cca9b6eca3dc9156bdccb1ea46653 diff --git a/src/odhcp6c.c b/src/odhcp6c.c index 1f75c50..2c5bfad 100644 --- a/src/odhcp6c.c +++ b/src/odhcp6c.c @@ -32,6 +32,10 @@ #include "odhcp6c.h" #include "ra.h" +#ifdef EXT_BFD_PING +#include "bfd.h" +#endif + static void sighandler(int signal); static int usage(void); @@ -262,6 +266,9 @@ int main(_unused int argc, char* const argv[]) script_call("bound"); bound = true; syslog(LOG_NOTICE, "entering stateful-mode on %s", ifname); +#ifdef EXT_BFD_PING + bfd_start(ifname, 3, 10); +#endif while (do_signal == 0 || do_signal == SIGUSR1) { // Renew Cycle @@ -311,6 +318,10 @@ int main(_unused int argc, char* const argv[]) script_call("rebound"); } +#ifdef EXT_BFD_PING + bfd_stop(); +#endif + size_t ia_pd_len, ia_na_len, server_id_len; odhcp6c_get_state(STATE_IA_PD, &ia_pd_len); @@ -398,6 +409,10 @@ bool odhcp6c_signal_process(void) 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;