]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
RIP bugfix
authorPavel Machek <pavel@ucw.cz>
Wed, 21 Jun 2000 19:40:46 +0000 (19:40 +0000)
committerPavel Machek <pavel@ucw.cz>
Wed, 21 Jun 2000 19:40:46 +0000 (19:40 +0000)
nest/route.h
proto/rip/rip.c

index 72b84e54460848215817cc94b0f30269ab2eb5ed..e372e164b596a81bc0530a2d945525402225d6f7 100644 (file)
@@ -157,7 +157,6 @@ typedef struct rte {
       node garbage;                    /* List for garbage collection */
       byte metric;                     /* RIP metric */
       u16 tag;                         /* External route tag */
-      bird_clock_t lastmodX;           /* Strange kind of last modification time */
       struct rip_entry *entry;
     } rip;
 #endif
index d8058b8d2d79e4b2b4293371a825f0d4a9749ce0..d98f55e566a3d4e78bdbd2be72e12b8e8d2fb4e1 100644 (file)
@@ -522,7 +522,7 @@ rip_timer(timer *t)
     DBG( "Garbage: (%p)", rte ); rte_dump( rte );
 #endif
 
-    if (now - rte->u.rip.lastmodX > P_CF->timeout_time) {
+    if (now - rte->lastmod > P_CF->timeout_time) {
       TRACE(D_EVENTS, "entry is too old: %I", rte->net->n.prefix );
       if (rte->u.rip.entry) {
        rte->u.rip.entry->metric = P_CF->infinity;
@@ -530,7 +530,7 @@ rip_timer(timer *t)
       }
     }
 
-    if (now - rte->u.rip.lastmodX > P_CF->garbage_time) {
+    if (now - rte->lastmod > P_CF->garbage_time) {
       TRACE(D_EVENTS, "entry is much too old: %I", rte->net->n.prefix );
       rte_discard(p->table, rte);
     }
@@ -900,13 +900,9 @@ rip_rte_better(struct rte *new, struct rte *old)
   if (old->u.rip.metric > new->u.rip.metric)
     return 1;
 
-  if ((old->u.rip.metric < 16) && (new->u.rip.metric == P_CF->infinity)) {
-    new->u.rip.lastmodX = now - P_CF->timeout_time;    /* Check this: if new metric is 16, act as it was timed out */
-  }
-
   if (old->attrs->proto == new->attrs->proto)          /* This does not make much sense for different protocols */
     if ((old->u.rip.metric == new->u.rip.metric) &&
-       ((now - old->u.rip.lastmodX) > (P_CF->timeout_time / 2)))
+       ((now - old->lastmod) > (P_CF->timeout_time / 2)))
       return 1;
 
   return 0;
@@ -923,7 +919,6 @@ rip_rte_insert(net *net, rte *rte)
   struct proto *p = rte->attrs->proto;
   CHK_MAGIC;
   DBG( "rip_rte_insert: %p\n", rte );
-  rte->u.rip.lastmodX = now;
   add_head( &P->garbage, &rte->u.rip.garbage );
 }