summaryrefslogtreecommitdiffstats
path: root/src/announce.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/announce.c')
-rw-r--r--src/announce.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/announce.c b/src/announce.c
index 1d17a02..4d55f42 100644
--- a/src/announce.c
+++ b/src/announce.c
@@ -92,7 +92,7 @@ gp_babel_nexthop_t* gp_babel_announce_nexthop_new(gp_babel_announce_t *announce,
return nexthop;
}
-static void maintain_nexthops(gmrf_t *gmrf, gp_babel_announce_t *announce) {
+static void maintain_nexthops(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce) {
gp_babel_nexthop_t **cur, **next;
for (cur = &announce->nexthops; *cur; cur = next) {
gp_babel_nexthop_t *nexthop = *cur;
@@ -131,7 +131,7 @@ static void maintain_nexthops(gmrf_t *gmrf, gp_babel_announce_t *announce) {
else if (gmrf_now(gmrf) > nexthop->last_update+GP_BABEL_UPDATE_REQUEST_TIMEOUT(nexthop->interval)*10 && announce->selected == nexthop) {
if (!nexthop->requested_update) {
gmrf_logf(gmrf, LOG_INFO, "announce about to expire, requesting update");
- // gp_babel_send_announce_request(nexthop->neigh->iface, nexthop->neigh, announce->node, announce->type, announce->key, false);
+ gp_babel_send_announce_request(gmrf, ctx, NULL, nexthop->neigh, &announce->node, announce->type, announce->key, false);
nexthop->requested_update = true;
}
}
@@ -172,14 +172,14 @@ gp_babel_metric_seqno_t get_metric(gmrf_t *gmrf, const gp_babel_announce_t *anno
return (gp_babel_metric_seqno_t){GP_BABEL_INFINITY, 0};
}
-void gp_babel_announce_update(gmrf_t *gmrf, gp_babel_announce_t *announce) {
- maintain_nexthops(gmrf, announce);
+void gp_babel_announce_update(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce) {
+ maintain_nexthops(gmrf, ctx, announce);
announce->selected = select_nexthop(gmrf, announce);
announce->metric = get_metric(gmrf, announce);
- //if (!announce->selected)
- // gp_babel_send_seqno_request_for(NULL, announce);
+ if (!announce->selected)
+ gp_babel_send_seqno_request_for(gmrf, ctx, NULL, announce);
/* triggered updates */
/*int diff = announce->metric.metric - announce->last_metric;
@@ -191,7 +191,7 @@ void gp_babel_announce_update(gmrf_t *gmrf, gp_babel_announce_t *announce) {
} */
}
-void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gp_babel_announce_t *announce, gp_babel_nexthop_t *nexthop, gp_babel_metric_seqno_t ms, uint16_t interval) {
+void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gmrf_context_t *ctx, gp_babel_announce_t *announce, gp_babel_nexthop_t *nexthop, gp_babel_metric_seqno_t ms, uint16_t interval) {
nexthop->metric_seqno = ms;
nexthop->interval = interval;
nexthop->requested_update = false;
@@ -199,5 +199,5 @@ void gp_babel_announce_update_nexthop(gmrf_t *gmrf, gp_babel_announce_t *announc
if (ms.metric != GP_BABEL_INFINITY)
nexthop->last_update = gmrf_now(gmrf);
- gp_babel_announce_update(gmrf, announce);
+ gp_babel_announce_update(gmrf, ctx, announce);
}