From 90d1e87ba1043663283ea6eb8a55c6392aaba637 Mon Sep 17 00:00:00 2001 From: Scott Powell Date: Sat, 27 Dec 2025 20:46:28 +1100 Subject: [PATCH] * check for 'early receive' ACK --- src/Mesh.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Mesh.cpp b/src/Mesh.cpp index 1bda9e96..0548c907 100644 --- a/src/Mesh.cpp +++ b/src/Mesh.cpp @@ -78,6 +78,16 @@ DispatcherAction Mesh::onRecvPacket(Packet* pkt) { } if (pkt->isRouteDirect() && pkt->path_len >= PATH_HASH_SIZE) { + // check for 'early received' ACK + if (pkt->getPayloadType() == PAYLOAD_TYPE_ACK) { + int i = 0; + uint32_t ack_crc; + memcpy(&ack_crc, &pkt->payload[i], 4); i += 4; + if (i <= pkt->payload_len) { + onAckRecv(pkt, ack_crc); + } + } + if (self_id.isHashMatch(pkt->path) && allowPacketForward(pkt)) { if (pkt->getPayloadType() == PAYLOAD_TYPE_MULTIPART) { return forwardMultipartDirect(pkt);