diff --git a/iguana/iguana_recv.c b/iguana/iguana_recv.c index 4bfa89ae9..cf5ae6ca5 100755 --- a/iguana/iguana_recv.c +++ b/iguana/iguana_recv.c @@ -745,7 +745,7 @@ void iguana_checklongestchain(struct iguana_info *coin,struct iguana_bundle *bp, struct iguana_bundlereq *iguana_recvblockhdrs(struct iguana_info *coin,struct iguana_bundlereq *req,struct iguana_block *blocks,int32_t n,int32_t *newhwmp) { - int32_t i,bundlei,match; struct iguana_block *block; struct iguana_bundle *bp,*firstbp = 0; + int32_t i,bundlei,match; struct iguana_block *block; struct iguana_peer *addr; struct iguana_bundle *bp,*firstbp = 0; if ( blocks == 0 ) { printf("iguana_recvblockhdrs null blocks?\n"); @@ -762,7 +762,7 @@ struct iguana_bundlereq *iguana_recvblockhdrs(struct iguana_info *coin,struct ig bp->dirty++; if ( 0 && bp->issued[bundlei] == 0 && bp->hdrsi < coin->MAXBUNDLES ) iguana_blockQ("recvhdr",coin,bp,bundlei,blocks[i].RO.hash2,0); - printf("{%d:%d} ",bp->hdrsi,bundlei); + //printf("{%d:%d} ",bp->hdrsi,bundlei); if ( i == 0 ) { firstbp = bp; @@ -779,7 +779,7 @@ struct iguana_bundlereq *iguana_recvblockhdrs(struct iguana_info *coin,struct ig else if ( bp != firstbp ) printf("blockhash[%d] cant be found\n",i); } - char str[65]; printf("blockhdrs.%s hdrsi.%d\n",bits256_str(str,blocks[0].RO.hash2),firstbp!=0?firstbp->hdrsi:-1); + char str[65]; printf("i.%d n.%d match.%d blockhdrs.%s hdrsi.%d\n",i,n,match,bits256_str(str,blocks[0].RO.hash2),firstbp!=0?firstbp->hdrsi:-1); if ( firstbp != 0 && match == coin->chain->bundlesize-1 && n == firstbp->n ) { if ( firstbp->queued == 0 ) @@ -788,6 +788,14 @@ struct iguana_bundlereq *iguana_recvblockhdrs(struct iguana_info *coin,struct ig iguana_bundleQ(coin,firstbp,1000); } } + if ( firstbp == coin->current && (addr= req->addr) != 0 ) + { + addr->RThashes[i] = firstbp->hashes[0]; + for (i=1; iRThashes[i] = blocks[i].RO.hash2; + //memcpy(addr->RThashes,blockhashes,bp->numspec * sizeof(*addr->RThashes)); + addr->numRThashes = n; + } } return(req); }