Browse Source

Merge #7862: Use txid as key in mapAlreadyAskedFor

7e91f63 Use txid as key in mapAlreadyAskedFor (Suhas Daftuar)
0.13
Wladimir J. van der Laan 9 years ago
parent
commit
97d0b9889f
No known key found for this signature in database
GPG Key ID: 74810B012346C9A6
  1. 2
      src/main.cpp
  2. 6
      src/net.cpp
  3. 2
      src/net.h

2
src/main.cpp

@ -4955,7 +4955,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
CValidationState state; CValidationState state;
pfrom->setAskFor.erase(inv.hash); pfrom->setAskFor.erase(inv.hash);
mapAlreadyAskedFor.erase(inv); mapAlreadyAskedFor.erase(inv.hash);
CFeeRate txFeeRate = CFeeRate(0); CFeeRate txFeeRate = CFeeRate(0);
if (!AlreadyHave(inv) && AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs, &txFeeRate)) { if (!AlreadyHave(inv) && AcceptToMemoryPool(mempool, state, tx, true, &fMissingInputs, &txFeeRate)) {

6
src/net.cpp

@ -93,7 +93,7 @@ CCriticalSection cs_vNodes;
map<CInv, CDataStream> mapRelay; map<CInv, CDataStream> mapRelay;
deque<pair<int64_t, CInv> > vRelayExpiration; deque<pair<int64_t, CInv> > vRelayExpiration;
CCriticalSection cs_mapRelay; CCriticalSection cs_mapRelay;
limitedmap<CInv, int64_t> mapAlreadyAskedFor(MAX_INV_SZ); limitedmap<uint256, int64_t> mapAlreadyAskedFor(MAX_INV_SZ);
static deque<string> vOneShots; static deque<string> vOneShots;
CCriticalSection cs_vOneShots; CCriticalSection cs_vOneShots;
@ -2436,7 +2436,7 @@ void CNode::AskFor(const CInv& inv)
// We're using mapAskFor as a priority queue, // We're using mapAskFor as a priority queue,
// the key is the earliest time the request can be sent // the key is the earliest time the request can be sent
int64_t nRequestTime; int64_t nRequestTime;
limitedmap<CInv, int64_t>::const_iterator it = mapAlreadyAskedFor.find(inv); limitedmap<uint256, int64_t>::const_iterator it = mapAlreadyAskedFor.find(inv.hash);
if (it != mapAlreadyAskedFor.end()) if (it != mapAlreadyAskedFor.end())
nRequestTime = it->second; nRequestTime = it->second;
else else
@ -2455,7 +2455,7 @@ void CNode::AskFor(const CInv& inv)
if (it != mapAlreadyAskedFor.end()) if (it != mapAlreadyAskedFor.end())
mapAlreadyAskedFor.update(it, nRequestTime); mapAlreadyAskedFor.update(it, nRequestTime);
else else
mapAlreadyAskedFor.insert(std::make_pair(inv, nRequestTime)); mapAlreadyAskedFor.insert(std::make_pair(inv.hash, nRequestTime));
mapAskFor.insert(std::make_pair(nRequestTime, inv)); mapAskFor.insert(std::make_pair(nRequestTime, inv));
} }

2
src/net.h

@ -164,7 +164,7 @@ extern CCriticalSection cs_vNodes;
extern std::map<CInv, CDataStream> mapRelay; extern std::map<CInv, CDataStream> mapRelay;
extern std::deque<std::pair<int64_t, CInv> > vRelayExpiration; extern std::deque<std::pair<int64_t, CInv> > vRelayExpiration;
extern CCriticalSection cs_mapRelay; extern CCriticalSection cs_mapRelay;
extern limitedmap<CInv, int64_t> mapAlreadyAskedFor; extern limitedmap<uint256, int64_t> mapAlreadyAskedFor;
extern std::vector<std::string> vAddedNodes; extern std::vector<std::string> vAddedNodes;
extern CCriticalSection cs_vAddedNodes; extern CCriticalSection cs_vAddedNodes;

Loading…
Cancel
Save