aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2022-12-01 01:11:14 -0600
committerluigi1111 <luigi1111w@gmail.com>2022-12-01 01:11:14 -0600
commitabd37fcf5b84c2dac9eec9526e84b0766ab70107 (patch)
treed23496b5fa8c52b820f8bd41ce80ab39d2d6dcd8 /src
parentMerge pull request #8615 (diff)
parentFix dandelion++ fluff/stem bug with local txes (diff)
downloadmonero-abd37fcf5b84c2dac9eec9526e84b0766ab70107.tar.xz
Merge pull request #8628
1bb5d25 Fix dandelion++ fluff/stem bug with local txes (Lee Clagett)
Diffstat (limited to 'src')
-rw-r--r--src/cryptonote_protocol/levin_notify.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cryptonote_protocol/levin_notify.cpp b/src/cryptonote_protocol/levin_notify.cpp
index 83f37015f..27c6d0278 100644
--- a/src/cryptonote_protocol/levin_notify.cpp
+++ b/src/cryptonote_protocol/levin_notify.cpp
@@ -542,6 +542,7 @@ namespace levin
i_core_events* core_;
std::vector<blobdata> txs_;
boost::uuids::uuid source_;
+ relay_method tx_relay;
//! \pre Called in `zone_->strand`
void operator()()
@@ -549,7 +550,7 @@ namespace levin
if (!zone_ || !core_ || txs_.empty())
return;
- if (!zone_->fluffing)
+ if (!zone_->fluffing || tx_relay == relay_method::local)
{
core_->on_transactions_relayed(epee::to_span(txs_), relay_method::stem);
for (int tries = 2; 0 < tries; tries--)
@@ -589,7 +590,7 @@ namespace levin
change_channels(change_channels&&) = default;
change_channels(const change_channels& source)
- : zone_(source.zone_), map_(source.map_.clone())
+ : zone_(source.zone_), map_(source.map_.clone()), fluffing_(source.fluffing_)
{}
//! \pre Called within `zone_->strand`.
@@ -871,7 +872,7 @@ namespace levin
{
// this will change a local/forward tx to stem or fluff ...
zone_->strand.dispatch(
- dandelionpp_notify{zone_, core_, std::move(txs), source}
+ dandelionpp_notify{zone_, core_, std::move(txs), source, tx_relay}
);
break;
}