summaryrefslogtreecommitdiffstats
path: root/src/babel.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/babel.c')
-rw-r--r--src/babel.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/babel.c b/src/babel.c
index 56d3ba0..4177100 100644
--- a/src/babel.c
+++ b/src/babel.c
@@ -41,6 +41,17 @@ static void send_hellos(gmrf_t *gmrf, gmrf_context_t *ctx, void *arg) {
gp_babel_send_hellos(gmrf, ctx);
}
+static void send_updates(gmrf_t *gmrf, gmrf_context_t *ctx, void *arg) {
+ gmrf_schedule(gmrf, send_updates, NULL, GP_BABEL_UPDATE_INTERVAL*10);
+
+ gmrf_logf(gmrf, LOG_DEBUG, "sending periodic updates.");
+
+ gp_babel_iface_t *iface;
+ for (iface = ctx->interfaces; iface; iface = iface->next) {
+ gp_babel_send_update(gmrf, ctx, iface, NULL, NULL, false);
+ }
+}
+
static void maintenance(gmrf_t *gmrf, gmrf_context_t *ctx, void *arg) {
gmrf_schedule(gmrf, maintenance, NULL, GP_BABEL_MAINTENANCE_INTERVAL*10);
@@ -72,6 +83,7 @@ gmrf_context_t* gmrf_protocol_init(gmrf_t *gmrf) {
gmrf_logf(gmrf, LOG_INFO, "initalizing...");
gmrf_schedule(gmrf, send_hellos, NULL, GP_BABEL_HELLO_INTERVAL*10);
+ gmrf_schedule(gmrf, send_updates, NULL, GP_BABEL_UPDATE_INTERVAL*10);
gmrf_schedule(gmrf, maintenance, NULL, GP_BABEL_MAINTENANCE_INTERVAL*10);
gmrf_context_t *ctx = calloc(1, sizeof(gmrf_context_t));