diff options
author | Gregory Maxwell <greg@xiph.org> | 2016-05-20 16:19:26 +0000 |
---|---|---|
committer | Gregory Maxwell <greg@xiph.org> | 2016-05-25 18:05:58 +0000 |
commit | 7e908c7b826cedbf29560ce7a668af809ee71524 (patch) | |
tree | b28d1f37652e06bde2db6127cbb3378ee35c7617 /src/txmempool.cpp | |
parent | 8844ef15ded02d5ed86fb95aaf251235fcef2396 (diff) |
Do not use mempool for GETDATA for tx accepted after the last mempool req.
The ability to GETDATA a transaction which has not (yet) been relayed
is a privacy loss vector.
The use of the mempool for this was added as part of the mempool p2p
message and is only needed to fetch transactions returned by it.
Diffstat (limited to 'src/txmempool.cpp')
-rw-r--r-- | src/txmempool.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/txmempool.cpp b/src/txmempool.cpp index aa5df6ca4e..4f17e7f8ca 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -789,15 +789,23 @@ void CTxMemPool::queryHashes(vector<uint256>& vtxid) std::sort(vtxid.begin(), vtxid.end(), DepthAndScoreComparator(this)); } -bool CTxMemPool::lookup(uint256 hash, CTransaction& result) const + +bool CTxMemPool::lookup(uint256 hash, CTransaction& result, int64_t& time) const { LOCK(cs); indexed_transaction_set::const_iterator i = mapTx.find(hash); if (i == mapTx.end()) return false; result = i->GetTx(); + time = i->GetTime(); return true; } +bool CTxMemPool::lookup(uint256 hash, CTransaction& result) const +{ + int64_t time; + return CTxMemPool::lookup(hash, result, time); +} + bool CTxMemPool::lookupFeeRate(const uint256& hash, CFeeRate& feeRate) const { LOCK(cs); |