This commit is contained in:
jl777
2019-07-03 22:06:43 -11:00
parent 5263d3c74d
commit 165c266609
2 changed files with 26 additions and 8 deletions

View File

@@ -756,9 +756,9 @@ CNode *NSPV_req(CNode *pnode,uint8_t *msg,int32_t len,uint32_t mask,int32_t ind)
if ( pnode != 0 )
{
std::vector<uint8_t> request;
request.resize(len+1);
request.resize(len);
memcpy(&request[0],msg,len);
fprintf(stderr,"pushmessage len.%d\n",len);
fprintf(stderr,"pushmessage [%d] len.%d\n",msg[0],len);
pnode->PushMessage("getnSPV",request);
pnode->prevtimes[ind] = timestamp;
return(pnode);
@@ -902,8 +902,13 @@ UniValue NSPV_addressutxos(char *coinaddr)
result.push_back(Pair("error","invalid address"));
return(result);
}
if ( NSPV_utxosresult.nodeheight < NSPV_inforesult.height )
if ( NSPV_inforesult.height == 0 || NSPV_utxosresult.nodeheight < NSPV_inforesult.height )
{
if ( NSPV_inforesult.height == 0 )
{
msg[0] = NSPV_INFO;
NSPV_req(0,msg,1,NODE_NSPV,NSPV_INFO>>1);
}
slen = (int32_t)strlen(coinaddr);
msg[len++] = NSPV_UTXOS;
msg[len++] = slen;

View File

@@ -7052,7 +7052,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
{
const CChainParams& chainparams = Params();
LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id);
if ( KOMODO_NSPV != 0 )
//if ( KOMODO_NSPV != 0 )
if ( strCommand != "version" && strCommand != "verack" )
fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)pfrom->GetId());
if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0)
{
@@ -7226,11 +7227,23 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
{
pfrom->SetRecvVersion(min(pfrom->nVersion, PROTOCOL_VERSION));
if ( KOMODO_NSPV != 0 && (pfrom->nServices & NODE_NSPV) == 0 )
if ( KOMODO_NSPV != 0 )
{
fprintf(stderr,"invalid nSPV peer.%d\n",pfrom->id);
pfrom->fDisconnect = true;
return false;
if ( (pfrom->nServices & NODE_NSPV) == 0 )
{
fprintf(stderr,"invalid nSPV peer.%d\n",pfrom->id);
pfrom->fDisconnect = true;
return false;
}
}
else
{
if ( pfrom->nServices != 0 )
{
fprintf(stderr,"debug mode, disconnect legacy peer.%d\n",pfrom->id);
pfrom->fDisconnect = true;
return false;
}
}
// Mark this node as currently connected, so we update its timestamp later.
if (pfrom->fNetworkNode) {