]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Sending of DBdes bug fixed.
authorOndrej Filip <feela@network.cz>
Wed, 29 Mar 2000 12:45:37 +0000 (12:45 +0000)
committerOndrej Filip <feela@network.cz>
Wed, 29 Mar 2000 12:45:37 +0000 (12:45 +0000)
proto/ospf/dbdes.c

index 7ee40da2496655531c8f03c1ff4bfbc302ca94d7..079865a1adf6751985327831a2edef629af7f55c 100644 (file)
@@ -52,6 +52,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
   switch(n->state)
   {
     case NEIGHBOR_EXSTART:             /* Send empty packets */
+      n->myimms.bit.i=1;
       pkt=(struct ospf_dbdes_packet *)(ifa->ip_sk->tbuf);
       op=(struct ospf_packet *)pkt;
       fill_ospf_pkt_hdr(ifa, pkt, DBDES);
@@ -67,6 +68,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
       break;
 
     case NEIGHBOR_EXCHANGE:
+      n->myimms.bit.i=0;
       if(! (((n->myimms.bit.ms) && (n->dds==n->ddr+1)) ||
          ((!(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("M bit unset.\n");
          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);
 
-        pkt->imms=n->myimms;
+        pkt->imms.byte=n->myimms.byte;
 
        length=(j-i)*sizeof(struct ospf_lsa_header)+
                sizeof(struct ospf_dbdes_packet);
        op->length=htons(length);
+       
         ospf_pkt_finalize(ifa, op);
       }
 
@@ -131,7 +135,7 @@ ospf_dbdes_tx(struct ospf_neighbor *n)
 
       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 */
       }
 
       {