diff options
Diffstat (limited to 'src/babel.c')
-rw-r--r-- | src/babel.c | 12 |
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)); |