diff --git a/lib/uuid-syslog/src/syslog.cpp b/lib/uuid-syslog/src/syslog.cpp index e4f2207ba..5fbf2391f 100644 --- a/lib/uuid-syslog/src/syslog.cpp +++ b/lib/uuid-syslog/src/syslog.cpp @@ -26,6 +26,8 @@ #endif #include +#include + #ifndef UUID_SYSLOG_HAVE_GETTIMEOFDAY #if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32) // time() does not return UTC on the ESP8266: https://github.com/esp8266/Arduino/issues/4637 @@ -191,7 +193,8 @@ void SyslogService::mark_interval(unsigned long interval) { SyslogService::QueuedLogMessage::QueuedLogMessage(unsigned long id, std::shared_ptr && content) : id_(id) , content_(std::move(content)) { - if (time_good_ || WiFi.status() == WL_CONNECTED) { + // Added by proddy - check Ethernet up also + if (time_good_ || WiFi.status() == WL_CONNECTED || ETH.linkUp()) { #if UUID_SYSLOG_HAVE_GETTIMEOFDAY if (gettimeofday(&time_, nullptr) != 0) { time_.tv_sec = (time_t)-1; @@ -270,7 +273,9 @@ bool SyslogService::can_transmit() { #endif if (WiFi.status() != WL_CONNECTED) { - return false; + if (!ETH.linkUp()) { + return false; // added by proddy. Check Ethernet + } } const uint64_t now = uuid::get_uptime_ms();