From 1fecdc7603a829dec4fd3254d64c8b5dd3050dbd Mon Sep 17 00:00:00 2001 From: Jonathan Bennett Date: Wed, 31 Dec 2025 23:28:36 -0600 Subject: [PATCH] Check again for NTP in SF++ --- src/modules/Native/StoreForwardPlusPlus.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/modules/Native/StoreForwardPlusPlus.cpp b/src/modules/Native/StoreForwardPlusPlus.cpp index c7b9f9b68..b2dd4e656 100644 --- a/src/modules/Native/StoreForwardPlusPlus.cpp +++ b/src/modules/Native/StoreForwardPlusPlus.cpp @@ -198,8 +198,20 @@ int32_t StoreForwardPlusPlusModule::runOnce() 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; + RTCQuality ourQuality = RTCQualityDevice; + + std::string timeCommandResult = exec("timedatectl status | grep synchronized | grep yes -c"); + if (timeCommandResult[0] == '1') { + ourQuality = RTCQualityNTP; + + struct timeval tv; + tv.tv_sec = time(NULL); + tv.tv_usec = 0; + perhapsSetRTC(ourQuality, &tv); + } else { + LOG_WARN("StoreForward++ deferred due to time quality %u result:%s", getRTCQuality(), timeCommandResult.c_str()); + return portduino_config.sfpp_announce_interval * 60 * 1000; + } } uint8_t root_hash_bytes[SFPP_HASH_SIZE] = {0}; ChannelHash hash = channels.getHash(0);