diff options
Diffstat (limited to 'proto/ospf/ospf.c')
-rw-r--r-- | proto/ospf/ospf.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index 1fa33fc2..47e2b785 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -44,7 +44,13 @@ tryadj(struct ospf_neighbor *n, struct proto *p) { DBG("%s: Going to build adjacency.\n", p->name); neigh_chstate(n,NEIGHBOR_EXSTART); - /* FIXME Go on */ + if(n->adj==0) /* First time adjacency */ + { + n->dds=random_u32; + } + n->dds++; + n->ms=NEIGHBOR_MASTER; + /* FIXME Go on, start to send DD packets */ } /* Neighbor is inactive for a long time. Remove it. */ @@ -284,6 +290,7 @@ ospf_hello_rx(struct ospf_hello_packet *ps, struct proto *p, n->priority=ps->priority; n->options=ps->options; n->ifa=ifa; + n->adj=0; neigh_chstate(n,NEIGHBOR_INIT); } tm_start(n->inactim,ifa->deadc*ifa->helloint); |