Honor flood retry ignore for echoes

This commit is contained in:
mikecarper
2026-05-08 01:23:03 -07:00
parent 3a6766b0fd
commit ae67293bcc
2 changed files with 12 additions and 1 deletions
+1 -1
View File
@@ -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.
---
+11
View File
@@ -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);
}