X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Fnet.h;h=8600bed6b87967415b9868b854e7ed06829774fa;hp=fd8174b8d444cb3c851e7f8cd443a06e7cbc5b42;hb=22f4288ff023d68e40acc466875fad511dcdeae0;hpb=99486c73c0a40b9cee59f9525014dcf253089d44 diff --git a/src/net.h b/src/net.h index fd8174b..8600bed 100644 --- a/src/net.h +++ b/src/net.h @@ -10,7 +10,6 @@ #include "addrman.h" #include "hash.h" #include "streams.h" -#include "random.h" #ifndef WIN32 #include @@ -365,8 +364,6 @@ public: mapAskFor.insert(std::make_pair(nRequestTime, inv)); } - - void BeginMessage(const char* pszCommand) { ENTER_CRITICAL_SECTION(cs_vSend); @@ -392,39 +389,7 @@ public: printf("(aborted)\n"); } - void EndMessage() - { - if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) - { - printf("dropmessages DROPPING SEND MESSAGE\n"); - AbortMessage(); - return; - } - - if (nHeaderStart < 0) { - LEAVE_CRITICAL_SECTION(cs_vSend); - return; - } - - // Set the size - uint32_t nSize = (uint32_t) vSend.size() - nMessageStart; - memcpy((char*)&vSend[nHeaderStart] + CMessageHeader::MESSAGE_SIZE_OFFSET, &nSize, sizeof(nSize)); - - // Set the checksum - uint256 hash = Hash(vSend.begin() + nMessageStart, vSend.end()); - uint32_t nChecksum = 0; - memcpy(&nChecksum, &hash, sizeof(nChecksum)); - assert(nMessageStart - nHeaderStart >= CMessageHeader::CHECKSUM_OFFSET + sizeof(nChecksum)); - memcpy((char*)&vSend[nHeaderStart] + CMessageHeader::CHECKSUM_OFFSET, &nChecksum, sizeof(nChecksum)); - - if (fDebug) { - printf("(%d bytes)\n", nSize); - } - - nHeaderStart = -1; - nMessageStart = std::numeric_limits::max(); - LEAVE_CRITICAL_SECTION(cs_vSend); - } + void EndMessage(); void EndMessageAbortIfEmpty() { @@ -437,32 +402,16 @@ public: AbortMessage(); } - - void PushVersion(); - - void PushMessage(const char* pszCommand) - { - try - { - BeginMessage(pszCommand); - EndMessage(); - } - catch (...) - { - AbortMessage(); - throw; - } - } - template void PushMessage(const char* pszCommand, const Args&... args) { try { BeginMessage(pszCommand); - (vSend << ... << args); + if constexpr (sizeof...(Args) > 0) + (vSend << ... << args); EndMessage(); } catch (...) @@ -472,52 +421,6 @@ public: } } - void PushRequest(const char* pszCommand, - void (*fn)(void*, CDataStream&), void* param1) - { - uint256 hashReply; - GetRandBytes((unsigned char*)&hashReply, sizeof(hashReply)); - - { - LOCK(cs_mapRequests); - mapRequests[hashReply] = CRequestTracker(fn, param1); - } - - PushMessage(pszCommand, hashReply); - } - - template - void PushRequest(const char* pszCommand, const T1& a1, - void (*fn)(void*, CDataStream&), void* param1) - { - uint256 hashReply; - GetRandBytes((unsigned char*)&hashReply, sizeof(hashReply)); - - { - LOCK(cs_mapRequests); - mapRequests[hashReply] = CRequestTracker(fn, param1); - } - - PushMessage(pszCommand, hashReply, a1); - } - - template - void PushRequest(const char* pszCommand, const T1& a1, const T2& a2, - void (*fn)(void*, CDataStream&), void* param1) - { - uint256 hashReply; - GetRandBytes((unsigned char*)&hashReply, sizeof(hashReply)); - - { - LOCK(cs_mapRequests); - mapRequests[hashReply] = CRequestTracker(fn, param1); - } - - PushMessage(pszCommand, hashReply, a1, a2); - } - - - void PushGetBlocks(CBlockIndex* pindexBegin, uint256 hashEnd); bool IsSubscribed(unsigned int nChannel); void Subscribe(unsigned int nChannel, unsigned int nHops=0); @@ -552,16 +455,6 @@ public: static uint64_t GetTotalBytesSent(); }; -inline void RelayInventory(const CInv& inv) -{ - // Put on lists to offer to the other nodes - { - LOCK(cs_vNodes); - for (CNode* pnode : vNodes) - pnode->PushInventory(inv); - } -} - class CTransaction; void RelayTransaction(const CTransaction& tx, const uint256& hash); void RelayTransaction(const CTransaction& tx, const uint256& hash, const CDataStream& ss);