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 ) if ( pnode != 0 )
{ {
std::vector<uint8_t> request; std::vector<uint8_t> request;
request.resize(len+1); request.resize(len);
memcpy(&request[0],msg,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->PushMessage("getnSPV",request);
pnode->prevtimes[ind] = timestamp; pnode->prevtimes[ind] = timestamp;
return(pnode); return(pnode);
@@ -902,8 +902,13 @@ UniValue NSPV_addressutxos(char *coinaddr)
result.push_back(Pair("error","invalid address")); result.push_back(Pair("error","invalid address"));
return(result); 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); slen = (int32_t)strlen(coinaddr);
msg[len++] = NSPV_UTXOS; msg[len++] = NSPV_UTXOS;
msg[len++] = slen; msg[len++] = slen;

View File

@@ -7052,7 +7052,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
{ {
const CChainParams& chainparams = Params(); const CChainParams& chainparams = Params();
LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); 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()); fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)pfrom->GetId());
if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) 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)); 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); if ( (pfrom->nServices & NODE_NSPV) == 0 )
pfrom->fDisconnect = true; {
return false; 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. // Mark this node as currently connected, so we update its timestamp later.
if (pfrom->fNetworkNode) { if (pfrom->fNetworkNode) {