summaryrefslogtreecommitdiff
path: root/src/odhcp6c.c
diff options
context:
space:
mode:
authorSteven Barth <steven@midlink.org>2013-11-06 13:04:53 +0100
committerSteven Barth <steven@midlink.org>2013-11-06 13:04:53 +0100
commit0131c7ed248d8a39480afd455de800c242ae5350 (patch)
tree43b44200ccd4cd1e120ec74bcf6eec481b465a68 /src/odhcp6c.c
parentc792b89ce22cca9b6eca3dc9156bdccb1ea46653 (diff)
downloadodhcp6c-0131c7ed248d8a39480afd455de800c242ae5350.tar.gz
Fix bfd ping
Diffstat (limited to 'src/odhcp6c.c')
-rw-r--r--src/odhcp6c.c15
1 files changed, 15 insertions, 0 deletions
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;