From f634b7dd6061ca6d49bcda0604960df8153b8e1d Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Tue, 30 Dec 2025 20:06:21 -0600 Subject: [PATCH] Don't Scratch! --- src/modules/Native/StoreForwardPlusPlus.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/Native/StoreForwardPlusPlus.cpp b/src/modules/Native/StoreForwardPlusPlus.cpp index 81424c215..c7b9f9b68 100644 --- a/src/modules/Native/StoreForwardPlusPlus.cpp +++ b/src/modules/Native/StoreForwardPlusPlus.cpp @@ -193,7 +193,10 @@ StoreForwardPlusPlusModule::StoreForwardPlusPlusModule() int32_t StoreForwardPlusPlusModule::runOnce() { - pendingRun = false; + if (pendingRun) { + pendingRun = false; + setIntervalFromNow(portduino_config.sfpp_announce_interval * 60 * 1000 - 60 * 1000); + } if (getRTCQuality() < RTCQualityNTP) { LOG_WARN("StoreForward++ deferred due to time quality %u", getRTCQuality()); return portduino_config.sfpp_announce_interval * 60 * 1000; @@ -559,7 +562,8 @@ bool StoreForwardPlusPlusModule::handleReceivedProtobuf(const meshtastic_MeshPac requestNextMessage(incoming_link.root_hash, incoming_link.root_hash_len, incoming_link.commit_hash, incoming_link.commit_hash_len); } else { - if (!isInScratch(incoming_link.message_hash, incoming_link.message_hash_len)) { + if (!isInScratch(incoming_link.message_hash, incoming_link.message_hash_len) && + !isInDB(incoming_link.message_hash, incoming_link.message_hash_len)) { addToScratch(incoming_link); LOG_INFO("added incoming non-canon message to scratch"); if (incoming_link.rx_time > getValidTime(RTCQuality::RTCQualityNTP, true) - rebroadcastTimeout) {