diff --git a/src/komodo_nSPV_fullnode.h b/src/komodo_nSPV_fullnode.h index 9f0ca98ac..94e656a72 100644 --- a/src/komodo_nSPV_fullnode.h +++ b/src/komodo_nSPV_fullnode.h @@ -548,17 +548,17 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req { int32_t vout; uint256 txid; uint8_t funcid,isCC = 0; n = 1; - len += iguana_rwnum(0,&request[len],sizeof(isCC),&isCC); - len += iguana_rwnum(0,&request[len],sizeof(funcid),&funcid); - len += iguana_rwnum(0,&request[len],sizeof(vout),&vout); - len += iguana_rwbignum(0,&request[len],sizeof(txid),(uint8_t *)&txid); - slen = request[len++]; + n += iguana_rwnum(0,&request[n],sizeof(isCC),&isCC); + n += iguana_rwnum(0,&request[n],sizeof(funcid),&funcid); + n += iguana_rwnum(0,&request[n],sizeof(vout),&vout); + n += iguana_rwbignum(0,&request[n],sizeof(txid),(uint8_t *)&txid); + slen = request[n++]; if ( slen < 63 ) { - memcpy(coinaddr,&request[len],slen), len += slen; + memcpy(coinaddr,&request[n],slen), n += slen; coinaddr[slen] = 0; //if ( isCC != 0 ) - fprintf(stderr,"(%s) isCC.%d funcid.%d %s/v%d\n",coinaddr,isCC,funcid,txid.GetHex().c_str(),vout); + fprintf(stderr,"(%s) isCC.%d funcid.%d %s/v%d len.%d slen.%d\n",coinaddr,isCC,funcid,txid.GetHex().c_str(),vout,len,slen); memset(&M,0,sizeof(M)); if ( (slen= NSPV_mempooltxids(&M,coinaddr,isCC,funcid,txid,vout)) > 0 ) { diff --git a/src/komodo_nSPV_superlite.h b/src/komodo_nSPV_superlite.h index d93027ad4..4be698367 100644 --- a/src/komodo_nSPV_superlite.h +++ b/src/komodo_nSPV_superlite.h @@ -664,15 +664,15 @@ UniValue NSPV_mempooltxids(char *coinaddr,int32_t CCflag,uint8_t funcid,uint256 result.push_back(Pair("error","invalid address")); return(result); } - slen = (int32_t)strlen(coinaddr); msg[len++] = NSPV_MEMPOOL; msg[len++] = (CCflag != 0); len += iguana_rwnum(1,&msg[len],sizeof(funcid),&funcid); len += iguana_rwnum(1,&msg[len],sizeof(vout),&vout); len += iguana_rwbignum(1,&msg[len],sizeof(txid),(uint8_t *)&txid); + slen = (int32_t)strlen(coinaddr); msg[len++] = slen; memcpy(&msg[len],coinaddr,slen), len += slen; - fprintf(stderr,"(%s) func.%d CC.%d %s/v%d\n",coinaddr,funcid,CCflag,txid.GetHex().c_str(),vout); + fprintf(stderr,"(%s) func.%d CC.%d %s/v%d len.%d\n",coinaddr,funcid,CCflag,txid.GetHex().c_str(),vout,len); for (iter=0; iter<3; iter++); if ( NSPV_req(0,msg,len,NODE_NSPV,msg[0]>>1) != 0 ) {