]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Adds rate limiting to some log messages.
authorOndrej Zajicek <santiago@crfreenet.org>
Fri, 22 Nov 2013 00:20:32 +0000 (01:20 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Fri, 22 Nov 2013 00:21:15 +0000 (01:21 +0100)
nest/rt-table.c

index 16dd9bcd63b0593d5859798a7e68c9c384cb483c..fc55408146d81fcf7a42079f7dea65112daee10a 100644 (file)
@@ -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);