diff options
author | Ondrej Filip <feela@network.cz> | 2004-06-04 16:22:30 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2004-06-04 16:22:30 +0200 |
commit | f9fdabe4f68685e6244e88524b2526958c56e44d (patch) | |
tree | 199e3ff969d6fc51c6db5726ce12a87465bb9555 /proto | |
parent | 3df1e80464ce5e6cea1b9a9500d1adbfe59cd564 (diff) | |
download | bird-f9fdabe4f68685e6244e88524b2526958c56e44d.tar bird-f9fdabe4f68685e6244e88524b2526958c56e44d.zip |
Small reversing of previous patch.
Diffstat (limited to 'proto')
-rw-r--r-- | proto/ospf/lsupd.c | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/proto/ospf/lsupd.c b/proto/ospf/lsupd.c index 3ec0f10..39a089d 100644 --- a/proto/ospf/lsupd.c +++ b/proto/ospf/lsupd.c @@ -439,19 +439,20 @@ ospf_lsupd_rx(struct ospf_lsupd_packet *ps, struct proto *p, /* Remove old from all ret lists */ /* pg 144 (5c) */ - WALK_LIST(NODE ift,po->iface_list) - WALK_LIST(NODE ntmp,ift->neigh_list) - { - struct top_hash_entry *en; - if(ntmp->state>NEIGHBOR_EXSTART) - if((en=ospf_hash_find_header(ntmp->lsrth,&lsadb->lsa))!=NULL) - { - s_rem_node(SNODE en); - if(en->lsa_body!=NULL) mb_free(en->lsa_body); - en->lsa_body=NULL; - ospf_hash_delete(ntmp->lsrth,en); - } - } + if(lsadb) + WALK_LIST(NODE ift,po->iface_list) + WALK_LIST(NODE ntmp,ift->neigh_list) + { + struct top_hash_entry *en; + if(ntmp->state>NEIGHBOR_EXSTART) + if((en=ospf_hash_find_header(ntmp->lsrth,&lsadb->lsa))!=NULL) + { + s_rem_node(SNODE en); + if(en->lsa_body!=NULL) mb_free(en->lsa_body); + en->lsa_body=NULL; + ospf_hash_delete(ntmp->lsrth,en); + } + } if((lsatmp.age==LSA_MAXAGE)&&(lsatmp.sn==LSA_MAXSEQNO) &&lsadb&&can_flush_lsa(oa)) |