]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Stupid bug (essentially while(1) loop) occuring sometimes during start
authorPavel Machek <pavel@ucw.cz>
Wed, 1 Dec 1999 13:44:42 +0000 (13:44 +0000)
committerPavel Machek <pavel@ucw.cz>
Wed, 1 Dec 1999 13:44:42 +0000 (13:44 +0000)
of bird fixed.

proto/rip/rip.c

index 6340133762cc16c6c48f67731525c151dd257e87..50db48e4070e55cb87f9fca74b9036a834a92d33 100644 (file)
@@ -138,13 +138,13 @@ rip_tx( sock *s )
     FIB_ITERATE_START(&P->rtable, &c->iter, z) {
       struct rip_entry *e = (struct rip_entry *) z;
 
-      if (rif->triggered && (!(e->updated < now-5)))
-       continue;
+      if (!rif->triggered || (!(e->updated < now-5))) {
 
-      rip_tx_prepare( p, s->daddr, packet->block + i, e );
-      if (i++ == ((P_CF->authtype == AT_MD5) ? PACKET_MD5_MAX : PACKET_MAX)) {
-       FIB_ITERATE_PUT(&c->iter, z);
-       goto break_loop;
+       rip_tx_prepare( p, s->daddr, packet->block + i, e );
+       if (i++ == ((P_CF->authtype == AT_MD5) ? PACKET_MD5_MAX : PACKET_MAX)) {
+         FIB_ITERATE_PUT(&c->iter, z);
+         goto break_loop;
+       }
       }
     } FIB_ITERATE_END(z);
     c->done = 1;