summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>1999-12-01 14:44:42 +0100
committerPavel Machek <pavel@ucw.cz>1999-12-01 14:44:42 +0100
commite7f76bae8ccfe405ce3032aaa3a5e9228e5feb98 (patch)
tree7f3aa42c4d88dad6be2e83a7eae658838811a60e
parent7e1f99719e01af86006bc5c9b9a472516ec85a2c (diff)
downloadbird-e7f76bae8ccfe405ce3032aaa3a5e9228e5feb98.tar
bird-e7f76bae8ccfe405ce3032aaa3a5e9228e5feb98.zip
Stupid bug (essentially while(1) loop) occuring sometimes during start
of bird fixed.
-rw-r--r--proto/rip/rip.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 6340133..50db48e 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -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;