mirror of
https://github.com/esphome/esphome.git
synced 2026-03-23 19:09:53 +08:00
[time] Fix settimeofday() failure on ESP8266 (#14707)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
Jesse Hills
parent
1b7d0f9c0b
commit
33475703da
@@ -88,16 +88,16 @@ void RealTimeClock::synchronize_epoch_(uint32_t epoch) {
|
||||
struct timeval timev {
|
||||
.tv_sec = static_cast<time_t>(epoch), .tv_usec = 0,
|
||||
};
|
||||
#ifdef USE_ESP8266
|
||||
// ESP8266 settimeofday() requires tz to be nullptr
|
||||
int ret = settimeofday(&timev, nullptr);
|
||||
#else
|
||||
struct timezone tz = {0, 0};
|
||||
int ret = settimeofday(&timev, &tz);
|
||||
if (ret != 0 && errno == EINVAL) {
|
||||
// Some ESP8266 frameworks abort when timezone parameter is not NULL
|
||||
// while ESP32 expects it not to be NULL
|
||||
ret = settimeofday(&timev, nullptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ret != 0) {
|
||||
ESP_LOGW(TAG, "setimeofday() failed with code %d", ret);
|
||||
ESP_LOGW(TAG, "settimeofday() failed with code %d", ret);
|
||||
}
|
||||
#endif
|
||||
auto time = this->now();
|
||||
|
||||
Reference in New Issue
Block a user