Stupid bug (essentially while(1) loop) occuring sometimes during start

of bird fixed.
This commit is contained in:
Pavel Machek 1999-12-01 13:44:42 +00:00
parent 7e1f99719e
commit e7f76bae8c

View file

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