summaryrefslogtreecommitdiff
path: root/nest/rt-table.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-11-22 01:20:32 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2013-11-22 01:21:15 +0100
commit548c329cde371bceef05f86b7f904378a392d89c (patch)
treedc5bdedc575f068e59d7cd93a0a669066b08f2f1 /nest/rt-table.c
parent64534ea2f4361c247d7a0d1b6b14a02e8e3d6d33 (diff)
Adds rate limiting to some log messages.
Diffstat (limited to 'nest/rt-table.c')
-rw-r--r--nest/rt-table.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/nest/rt-table.c b/nest/rt-table.c
index 16dd9bcd..fc554081 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -636,6 +636,7 @@ rte_recalculate(struct announce_hook *ah, net *net, rte *new, ea_list *tmpa, str
struct proto *p = ah->proto;
struct rtable *table = ah->table;
struct proto_stats *stats = ah->stats;
+ static struct rate_limit rl_pipe;
rte *before_old = NULL;
rte *old_best = net->routes;
rte *old = NULL;
@@ -659,7 +660,7 @@ rte_recalculate(struct announce_hook *ah, net *net, rte *new, ea_list *tmpa, str
{
if (new)
{
- log(L_ERR "Pipe collision detected when sending %I/%d to table %s",
+ log_rl(&rl_pipe, L_ERR "Pipe collision detected when sending %I/%d to table %s",
net->n.prefix, net->n.pxlen, table->name);
rte_free_quick(new);
}
@@ -1271,6 +1272,7 @@ rt_init(void)
static inline int
rt_prune_step(rtable *tab, int step, int *max_feed)
{
+ static struct rate_limit rl_flush;
struct fib_iterator *fit = &tab->prune_fit;
DBG("Pruning route table %s\n", tab->name);
@@ -1305,7 +1307,7 @@ again:
}
if (step)
- log(L_WARN "Route %I/%d from %s still in %s after flush",
+ log_rl(&rl_flush, L_WARN "Route %I/%d from %s still in %s after flush",
n->n.prefix, n->n.pxlen, e->attrs->proto->name, tab->name);
rte_discard(tab, e);