From 74acc90d23fed988f5523c7dc1f72be587e34250 Mon Sep 17 00:00:00 2001 From: arendst Date: Tue, 26 Sep 2017 17:50:39 +0200 Subject: [PATCH] Fix yield panics --- sonoff/support.ino | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sonoff/support.ino b/sonoff/support.ino index f9269de89..3a2ba2250 100644 --- a/sonoff/support.ino +++ b/sonoff/support.ino @@ -17,6 +17,9 @@ along with this program. If not, see . */ +IPAddress syslog_host_addr; // Syslog host IP address +unsigned long syslog_host_refresh = 0; + /*********************************************************************************************\ * Watchdog extension (https://github.com/esp8266/Arduino/issues/1532) \*********************************************************************************************/ @@ -1153,8 +1156,11 @@ void syslog() // Destroys log_data char syslog_preamble[64]; // Hostname + Id - yield(); // Fix possible UDP syslog blocking - if (portUDP.beginPacket(sysCfg.syslog_host, sysCfg.syslog_port)) { + if ((static_cast(syslog_host_addr) == 0) || ((millis() - syslog_host_refresh) > 60000)) { + WiFi.hostByName(sysCfg.syslog_host, syslog_host_addr); + syslog_host_refresh = millis(); + } + if (portUDP.beginPacket(syslog_host_addr, sysCfg.syslog_port)) { snprintf_P(syslog_preamble, sizeof(syslog_preamble), PSTR("%s ESP-"), Hostname); memmove(log_data + strlen(syslog_preamble), log_data, sizeof(log_data) - strlen(syslog_preamble)); log_data[sizeof(log_data) -1] = '\0';