Sending of DBdes bug fixed.

This commit is contained in:
Ondrej Filip 2000-03-29 12:45:37 +00:00
parent 04c6319a63
commit 96501dfe5f

View file

@ -52,6 +52,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
switch(n->state) switch(n->state)
{ {
case NEIGHBOR_EXSTART: /* Send empty packets */ case NEIGHBOR_EXSTART: /* Send empty packets */
n->myimms.bit.i=1;
pkt=(struct ospf_dbdes_packet *)(ifa->ip_sk->tbuf); pkt=(struct ospf_dbdes_packet *)(ifa->ip_sk->tbuf);
op=(struct ospf_packet *)pkt; op=(struct ospf_packet *)pkt;
fill_ospf_pkt_hdr(ifa, pkt, DBDES); fill_ospf_pkt_hdr(ifa, pkt, DBDES);
@ -67,6 +68,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
break; break;
case NEIGHBOR_EXCHANGE: case NEIGHBOR_EXCHANGE:
n->myimms.bit.i=0;
if(! (((n->myimms.bit.ms) && (n->dds==n->ddr+1)) || if(! (((n->myimms.bit.ms) && (n->dds==n->ddr+1)) ||
((!(n->myimms.bit.ms)) && (n->dds==n->ddr)))) ((!(n->myimms.bit.ms)) && (n->dds==n->ddr))))
{ {
@ -112,15 +114,17 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
DBG("Number of LSA NOT sent: %d\n", i); DBG("Number of LSA NOT sent: %d\n", i);
DBG("M bit unset.\n"); DBG("M bit unset.\n");
n->myimms.bit.m=0; /* Unset more bit */ n->myimms.bit.m=0; /* Unset more bit */
DBG("Ini: %d, M: %d MS: %d.\n",n->imms.bit.i, n->imms.bit.m, n->imms.bit.ms);
} }
s_put(&(n->dbsi),sn); s_put(&(n->dbsi),sn);
pkt->imms=n->myimms; pkt->imms.byte=n->myimms.byte;
length=(j-i)*sizeof(struct ospf_lsa_header)+ length=(j-i)*sizeof(struct ospf_lsa_header)+
sizeof(struct ospf_dbdes_packet); sizeof(struct ospf_dbdes_packet);
op->length=htons(length); op->length=htons(length);
ospf_pkt_finalize(ifa, op); ospf_pkt_finalize(ifa, op);
} }
@ -131,7 +135,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
for(i=0; i<ifa->iface->mtu; i++) for(i=0; i<ifa->iface->mtu; i++)
{ {
*(bb+i)=*(aa+i); /* Copy last sent packet again */ *(aa+i)=*(bb+i); /* Copy last sent packet again */
} }
{ {