diff options
author | Ondrej Filip <feela@network.cz> | 2004-06-11 09:34:48 +0000 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2004-06-11 09:34:48 +0000 |
commit | b1f7229ad7d0b10fcc1fde6645c8b8ebbb3644a6 (patch) | |
tree | 0d10f221ce6aa40c1ed10752cb55e793e21b28a6 /proto/ospf/neighbor.c | |
parent | 9a4b87905d727a518af04c16b8d7b603404098b7 (diff) |
Better adjacency building, some minor bugfixes.
Diffstat (limited to 'proto/ospf/neighbor.c')
-rw-r--r-- | proto/ospf/neighbor.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/proto/ospf/neighbor.c b/proto/ospf/neighbor.c index 4f69638d..5abaf482 100644 --- a/proto/ospf/neighbor.c +++ b/proto/ospf/neighbor.c @@ -605,14 +605,24 @@ rxmt_timer_hook(timer * timer) DBG("%s: RXMT timer fired on interface %s for neigh: %I.\n", p->name, ifa->iface->name, n->ip); - if (n->state < NEIGHBOR_LOADING) + + if(n->state < NEIGHBOR_EXSTART) return; + + if (n->state == NEIGHBOR_EXSTART) + { ospf_dbdes_send(n); + return; + } + + if ((n->state == NEIGHBOR_EXCHANGE) && n->myimms.bit.ms) /* I'm master */ + ospf_dbdes_send(n); + - if (n->state < NEIGHBOR_FULL) - ospf_lsreq_send(n); + if (n->state < NEIGHBOR_FULL) + ospf_lsreq_send(n); /* EXCHANGE or LOADING */ else { - if (!EMPTY_SLIST(n->lsrtl)) + if (!EMPTY_SLIST(n->lsrtl)) /* FULL */ { list uplist; slab *upslab; |