From 9b133458891724da2fd22f2a16ae19376e225ca0 Mon Sep 17 00:00:00 2001 From: Ondrej Filip Date: Wed, 2 Jun 2004 09:14:03 +0000 Subject: Hotfix for router's parent without nexthop. It will probably work perfect, but I need to eliminate such situation. --- proto/ospf/rt.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'proto/ospf/rt.c') diff --git a/proto/ospf/rt.c b/proto/ospf/rt.c index 652aca8..5a82674 100644 --- a/proto/ospf/rt.c +++ b/proto/ospf/rt.c @@ -554,9 +554,12 @@ add_cand(list *l, struct top_hash_entry *en, struct top_hash_entry *par, DBG(" Adding candidate: rt: %I, id: %I, type: %u\n",en->lsa.rt,en->lsa.id,en->lsa.type); en->nhi=NULL; + en->nh=IPA_NONE; calc_next_hop(en, par, oa); + if(!en->nhi) return; /* We cannot find next hop, ignore it */ + if(en->color==CANDIDATE) /* We found a shorter path */ { rem_node(&en->cn); @@ -624,7 +627,9 @@ calc_next_hop(struct top_hash_entry *en, struct top_hash_entry *par, en->nhi=ifa->iface; return; } - bug("I didn't find interface for my self originated LSA!\n"); + log(L_ERR "I didn't find interface for my self originated LSA!\n"); + /* This could sometimes happen */ + return; } else { @@ -655,7 +660,9 @@ calc_next_hop(struct top_hash_entry *en, struct top_hash_entry *par, } else /* Parent is some RT neighbor */ { - bug("Router parent does not have next hop."); /* Hope this will never happen */ + log(L_ERR "Router's parent has no next hop. (EN=%I, PAR=%I)", en->lsa.id, par->lsa.id); + /* I hoped this would never happen */ + return; } } en->nh=par->nh; -- cgit v1.2.3