From 6bf29f8b7e739f646cf192a7dcae31eb93bf0028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rastislav=20Hri=C4=8D=C3=A1k?= <88608954+RastoH@users.noreply.github.com> Date: Sun, 17 Oct 2021 01:43:34 +0300 Subject: [PATCH] Correctly access WIFI_EVENT_MODE_CHANGE event info Select the specific union member struct fields. --- libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp index 822f861a91..4d3d5fae82 100644 --- a/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp +++ b/libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp @@ -203,7 +203,10 @@ WiFiEventHandler ESP8266WiFiGenericClass::onSoftAPModeProbeRequestReceived(std:: WiFiEventHandler ESP8266WiFiGenericClass::onWiFiModeChange(std::function f) { WiFiEventHandler handler = std::make_shared(WIFI_EVENT_MODE_CHANGE, [f](System_Event_t* e){ - WiFiEventModeChange& dst = *reinterpret_cast(&e->event_info); + auto& src = e->event_info.opmode_changed; + WiFiEventModeChange dst; + dst.oldMode = (WiFiMode_t)src.old_opmode; + dst.newMode = (WiFiMode_t)src.new_opmode; f(dst); }); sCbEventList.push_back(handler);