summaryrefslogtreecommitdiff
path: root/nest/rt-table.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2023-04-21 04:47:55 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-04-21 04:47:55 +0200
commit52450bc96dcedbc30cbb2e282c6706ad9e5e5774 (patch)
treee12244a788d6a26c52b3e5785c677b8d82b6a1c9 /nest/rt-table.c
parentd61505b039bf0aa6697e28b2a4e07907c89ba1fb (diff)
parentf3b599afe5bde0c7f232421743041b305bb8afa7 (diff)
Merge branch 'bmp'
Diffstat (limited to 'nest/rt-table.c')
-rw-r--r--nest/rt-table.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index e4b27814..2b065032 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -3095,6 +3095,10 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr
if (old->flags & (REF_STALE | REF_DISCARD | REF_MODIFY))
{
old->flags &= ~(REF_STALE | REF_DISCARD | REF_MODIFY);
+
+ if (c->proto->rte_update_in_notify)
+ c->proto->rte_update_in_notify(c, n, old, src);
+
return 1;
}
@@ -3121,6 +3125,9 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr
if (!net->routes)
fib_delete(&tab->fib, net);
+ if (c->proto->rte_update_in_notify)
+ c->proto->rte_update_in_notify(c, n, NULL, src);
+
return 1;
}
@@ -3149,6 +3156,10 @@ rte_update_in(struct channel *c, const net_addr *n, rte *new, struct rte_src *sr
e->next = *pos;
*pos = e;
tab->rt_count++;
+
+ if (c->proto->rte_update_in_notify)
+ c->proto->rte_update_in_notify(c, n, e, src);
+
return 1;
drop_update: