diff --git a/iguana/dpow/dpow_fsm.c b/iguana/dpow/dpow_fsm.c index 70ad67656..7297a4997 100755 --- a/iguana/dpow/dpow_fsm.c +++ b/iguana/dpow/dpow_fsm.c @@ -139,20 +139,21 @@ int32_t dpow_datahandler(struct supernet_info *myinfo,struct dpow_info *dp,uint3 printf("matched hashmsg rlen.%d vs datalen.%d\n",rlen,datalen); for (i=0; i<n; i++) { - if ( bits256_nonz(ptr->prev_hash) != 0 ) - { - if ( bits256_nonz(refptr->prev_hash) == 0 ) - { - printf(">>>>>>>>> got utxo.[%d] indirectly <<<<<<<<<<<\n",i); - refptr->prev_hash = ptr->prev_hash; - refptr->prev_vout = ptr->prev_vout; - bp->recvmask |= (1LL << i); - } - } for (iter=0; iter<2; iter++) { ptr = iter != 0 ? ¬aries[i].dest : ¬aries[i].src; refptr = iter != 0 ? &bp->notaries[i].dest : &bp->notaries[i].src; + if ( bits256_nonz(ptr->prev_hash) != 0 ) + { + if ( bits256_nonz(refptr->prev_hash) == 0 ) + { + printf(">>>>>>>>> got utxo.[%d] indirectly <<<<<<<<<<<\n",i); + refptr->prev_hash = ptr->prev_hash; + refptr->prev_vout = ptr->prev_vout; + if ( iter == 1 && bits256_nonz(notaries[i].src.prev_hash) != 0 ) + bp->recvmask |= (1LL << i); + } + } if ( (bestk= notaries[i].bestk) >= 0 ) { if ( ptr->siglens[bestk] > 0 && refptr->siglens[bestk] == 0 )