From a6fa92d1c8774a704fd4a869fc5d7799528b084f Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 26 Mar 2013 05:39:11 +0100 Subject: Send announce and seqno requests --- src/announce.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/announce.c') 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); } -- cgit v1.2.3