diff --git a/iguana/dpow/dpow_fsm.c b/iguana/dpow/dpow_fsm.c index a8bfed95b..c8a1f0a9a 100755 --- a/iguana/dpow/dpow_fsm.c +++ b/iguana/dpow/dpow_fsm.c @@ -377,7 +377,7 @@ void dpow_statemachinestart(void *ptr) free(ptr); return; } - bitcoin_address(srcaddr,dest->chain->pubtype,myinfo->DPOW.minerkey33,33); + bitcoin_address(srcaddr,src->chain->pubtype,myinfo->DPOW.minerkey33,33); bitcoin_address(destaddr,dest->chain->pubtype,myinfo->DPOW.minerkey33,33); printf(" myaddr.(%s %s)\n",srcaddr,destaddr); if ( dpow_checkutxo(myinfo,bp,bp->destcoin,&ep->dest.prev_hash,&ep->dest.prev_vout,destaddr) < 0 ) diff --git a/iguana/dpow/dpow_network.c b/iguana/dpow/dpow_network.c index 955a892fd..581a3c20e 100755 --- a/iguana/dpow/dpow_network.c +++ b/iguana/dpow/dpow_network.c @@ -107,18 +107,19 @@ void dpow_nanomsg_update(struct supernet_info *myinfo) { if ( size >= 0 ) { - if ( np->datalen == (size - sizeof(*np)) ) + if ( np->version0 == (DPOW_VERSION & 0xff) && np->version1 == ((DPOW_VERSION >> 8) & 0xff) ) { - crc32 = calc_crc32(0,np->packet,np->datalen); - if ( np->version0 != (DPOW_VERSION & 0xff) || np->version1 != ((DPOW_VERSION >> 8) & 0xff) ) - return; - if ( crc32 == np->crc32 && (firstz= dpow_crc32find(myinfo,crc32,np->channel)) >= 0 ) + if ( np->datalen == (size - sizeof(*np)) ) { - myinfo->DPOW.crcs[firstz] = crc32; - printf("NANORECV ht.%d channel.%08x (%d) crc32.%08x:%08x datalen.%d:%d\n",np->height,np->channel,size,np->crc32,crc32,np->datalen,(int32_t)(size - sizeof(*np))); - dpow_datahandler(myinfo,np->channel,np->height,np->packet,np->datalen,1); - } - } else printf("np->datalen.%d %d (size %d - %ld)\n",np->datalen,(int32_t)(size-sizeof(*np)),size,sizeof(*np)); + crc32 = calc_crc32(0,np->packet,np->datalen); + if ( crc32 == np->crc32 && (firstz= dpow_crc32find(myinfo,crc32,np->channel)) >= 0 ) + { + myinfo->DPOW.crcs[firstz] = crc32; + printf("NANORECV ht.%d channel.%08x (%d) crc32.%08x:%08x datalen.%d:%d\n",np->height,np->channel,size,np->crc32,crc32,np->datalen,(int32_t)(size - sizeof(*np))); + dpow_datahandler(myinfo,np->channel,np->height,np->packet,np->datalen,1); + } + } else printf("np->datalen.%d %d (size %d - %ld)\n",np->datalen,(int32_t)(size-sizeof(*np)),size,sizeof(*np)); + } if ( np != 0 ) nn_freemsg(np); }