mirror of
https://github.com/mikecarper/MeshCore.git
synced 2026-07-28 23:29:21 +00:00
Honor flood retry ignore for echoes
This commit is contained in:
@@ -850,7 +850,7 @@ This document provides an overview of CLI commands that can be sent to MeshCore
|
||||
|
||||
**Default:** empty
|
||||
|
||||
**Note:** Ignored prefixes do not count as a heard bridge bucket or as the implicit catch-all bucket when bridge retry decides whether every target has repeated the flood.
|
||||
**Note:** In non-bridge retry, an echo whose last hop matches an ignored prefix does not cancel a queued retry as successful. In bridge mode, ignored prefixes do not count as a heard bridge bucket or as the implicit catch-all bucket when bridge retry decides whether every target has repeated the flood.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1363,6 +1363,17 @@ bool MyMesh::isFloodRetryEchoTarget(const mesh::Packet* packet, uint8_t progress
|
||||
state->heard_mask |= floodRetryBridgeHeardMask(packet, state->source_bucket, state->progress_marker) & state->target_mask;
|
||||
return (state->heard_mask & state->target_mask) == state->target_mask;
|
||||
}
|
||||
if (packet->getPathHashCount() == 0) {
|
||||
return false;
|
||||
}
|
||||
uint8_t hash_size = packet->getPathHashSize();
|
||||
if (hash_size == 0 || hash_size > MAX_ROUTE_HASH_BYTES) {
|
||||
return false;
|
||||
}
|
||||
const uint8_t* heard_prefix = &packet->path[(packet->getPathHashCount() - 1) * hash_size];
|
||||
if (floodRetryPrefixIgnored(heard_prefix, hash_size)) {
|
||||
return false;
|
||||
}
|
||||
if (hasFloodRetryPrefixes()) {
|
||||
return floodRetryLastHopMatches(packet);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user