diff options
author | Pavel Machek <pavel@ucw.cz> | 1999-12-01 13:44:42 +0000 |
---|---|---|
committer | Pavel Machek <pavel@ucw.cz> | 1999-12-01 13:44:42 +0000 |
commit | e7f76bae8ccfe405ce3032aaa3a5e9228e5feb98 (patch) | |
tree | 7f3aa42c4d88dad6be2e83a7eae658838811a60e /proto/rip | |
parent | 7e1f99719e01af86006bc5c9b9a472516ec85a2c (diff) |
Stupid bug (essentially while(1) loop) occuring sometimes during start
of bird fixed.
Diffstat (limited to 'proto/rip')
-rw-r--r-- | proto/rip/rip.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c index 63401337..50db48e4 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; |