From 1670a4800a223d2db0721255c9e3fba0f6cea05f Mon Sep 17 00:00:00 2001
From: Lucas Saavedra Vaz <32426024+lucasssvaz@users.noreply.github.com>
Date: Wed, 6 Nov 2024 15:13:02 -0300
Subject: [PATCH 1/2] fix(wifi): Fix requirements and guards for hosted Wi-Fi

---
 .../ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json    | 5 ++---
 .../ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json     | 5 ++---
 libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json       | 5 ++---
 libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json        | 5 ++---
 libraries/ESP_NOW/src/ESP32_NOW.cpp                      | 7 +++++++
 libraries/ESP_NOW/src/ESP32_NOW.h                        | 9 +++++++++
 libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp               | 7 +++++++
 libraries/ESP_NOW/src/ESP32_NOW_Serial.h                 | 7 +++++++
 .../HTTPClientEnterprise/HTTPClientEnterprise.ino        | 6 ++++++
 .../HTTPClient/examples/HTTPClientEnterprise/ci.json     | 5 ++---
 .../WiFiClientSecureEnterprise.ino                       | 5 +++++
 .../examples/WiFiClientSecureEnterprise/ci.json          | 5 ++---
 libraries/WiFi/examples/WPS/WPS.ino                      | 5 +++++
 libraries/WiFi/examples/WPS/ci.json                      | 5 ++---
 .../WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino    | 5 +++++
 libraries/WiFi/examples/WiFiSmartConfig/ci.json          | 5 ++---
 tests/validation/wifi/ci.json                            | 5 ++---
 17 files changed, 69 insertions(+), 27 deletions(-)

diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json
+++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Master/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json
+++ b/libraries/ESP_NOW/examples/ESP_NOW_Broadcast_Slave/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json
+++ b/libraries/ESP_NOW/examples/ESP_NOW_Network/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json
+++ b/libraries/ESP_NOW/examples/ESP_NOW_Serial/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/ESP_NOW/src/ESP32_NOW.cpp b/libraries/ESP_NOW/src/ESP32_NOW.cpp
index 69b8ddd96a5..6fd3ff0a0b1 100644
--- a/libraries/ESP_NOW/src/ESP32_NOW.cpp
+++ b/libraries/ESP_NOW/src/ESP32_NOW.cpp
@@ -1,3 +1,8 @@
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support"
+#else
+
 #include "ESP32_NOW.h"
 #include <string.h>
 #include "esp_system.h"
@@ -406,3 +411,5 @@ size_t ESP_NOW_Peer::send(const uint8_t *data, int len) {
 ESP_NOW_Peer::operator bool() const {
   return added;
 }
+
+#endif
diff --git a/libraries/ESP_NOW/src/ESP32_NOW.h b/libraries/ESP_NOW/src/ESP32_NOW.h
index 1bbcabb2557..849a465252d 100644
--- a/libraries/ESP_NOW/src/ESP32_NOW.h
+++ b/libraries/ESP_NOW/src/ESP32_NOW.h
@@ -1,11 +1,18 @@
 #pragma once
 
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support"
+#else
+
 #include "esp_wifi_types.h"
 #include "Print.h"
 #include "esp_now.h"
 #include "esp32-hal-log.h"
 #include "esp_mac.h"
 
+
+
 class ESP_NOW_Peer;  //forward declaration for friend function
 
 class ESP_NOW_Class : public Print {
@@ -77,3 +84,5 @@ class ESP_NOW_Peer {
 };
 
 extern ESP_NOW_Class ESP_NOW;
+
+#endif
diff --git a/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp b/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp
index 17740d1331a..5603da2ba13 100644
--- a/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp
+++ b/libraries/ESP_NOW/src/ESP32_NOW_Serial.cpp
@@ -1,3 +1,8 @@
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support"
+#else
+
 #include "ESP32_NOW_Serial.h"
 #include <string.h>
 #include "esp_now.h"
@@ -277,3 +282,5 @@ void ESP_NOW_Serial_Class::onSent(bool success) {
     }
   }
 }
+
+#endif
diff --git a/libraries/ESP_NOW/src/ESP32_NOW_Serial.h b/libraries/ESP_NOW/src/ESP32_NOW_Serial.h
index b1f41456320..7cc43d85ef8 100644
--- a/libraries/ESP_NOW/src/ESP32_NOW_Serial.h
+++ b/libraries/ESP_NOW/src/ESP32_NOW_Serial.h
@@ -1,5 +1,10 @@
 #pragma once
 
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#warning "ESP-NOW is only supported in SoCs with native Wi-Fi support"
+#else
+
 #include "esp_wifi_types.h"
 #include "freertos/FreeRTOS.h"
 #include "freertos/task.h"
@@ -48,3 +53,5 @@ class ESP_NOW_Serial_Class : public Stream, public ESP_NOW_Peer {
   void onReceive(const uint8_t *data, size_t len, bool broadcast);
   void onSent(bool success);
 };
+
+#endif
diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino b/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino
index 7f1d1dd3575..d8b66ac19d9 100644
--- a/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino
+++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/HTTPClientEnterprise.ino
@@ -3,6 +3,12 @@
 /*|TESTED BOARDS: Devkit v1 DOIT, Devkitc v4                 |*/
 /*|CORE: June 2018                                           |*/
 /*|----------------------------------------------------------|*/
+
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#error "WPA-Enterprise is only supported in SoCs with native Wi-Fi support"
+#endif
+
 #include <WiFi.h>
 #include <HTTPClient.h>
 #if __has_include("esp_eap_client.h")
diff --git a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json
+++ b/libraries/HTTPClient/examples/HTTPClientEnterprise/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino
index a7149e05e6e..b9e01d15682 100644
--- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino
+++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/WiFiClientSecureEnterprise.ino
@@ -13,6 +13,11 @@
 // Note: this example is outdated and may not work!
 // For more examples see https://github.com/martinius96/ESP32-eduroam
 
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#error "WPA-Enterprise is only supported in SoCs with native Wi-Fi support"
+#endif
+
 #include <WiFi.h>
 #include <NetworkClientSecure.h>
 #if __has_include("esp_eap_client.h")
diff --git a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json
+++ b/libraries/NetworkClientSecure/examples/WiFiClientSecureEnterprise/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/WiFi/examples/WPS/WPS.ino b/libraries/WiFi/examples/WPS/WPS.ino
index fc353dcbfb8..aacdd14ddab 100644
--- a/libraries/WiFi/examples/WPS/WPS.ino
+++ b/libraries/WiFi/examples/WPS/WPS.ino
@@ -14,6 +14,11 @@ Author:
 Pranav Cherukupalli <cherukupallip@gmail.com>
 */
 
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#error "WPS is only supported in SoCs with native Wi-Fi support"
+#endif
+
 #include "WiFi.h"
 #include "esp_wps.h"
 /*
diff --git a/libraries/WiFi/examples/WPS/ci.json b/libraries/WiFi/examples/WPS/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/WiFi/examples/WPS/ci.json
+++ b/libraries/WiFi/examples/WPS/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino b/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino
index 6d372bb1098..724355c6a37 100644
--- a/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino
+++ b/libraries/WiFi/examples/WiFiSmartConfig/WiFiSmartConfig.ino
@@ -1,3 +1,8 @@
+#include "sdkconfig.h"
+#if CONFIG_ESP_WIFI_REMOTE_ENABLED
+#error "SmartConfig is only supported in SoCs with native Wi-Fi support"
+#endif
+
 #include "WiFi.h"
 
 void setup() {
diff --git a/libraries/WiFi/examples/WiFiSmartConfig/ci.json b/libraries/WiFi/examples/WiFiSmartConfig/ci.json
index 618e46bd244..36babb82730 100644
--- a/libraries/WiFi/examples/WiFiSmartConfig/ci.json
+++ b/libraries/WiFi/examples/WiFiSmartConfig/ci.json
@@ -1,6 +1,5 @@
 {
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }
diff --git a/tests/validation/wifi/ci.json b/tests/validation/wifi/ci.json
index 94819d60efc..36e91b221cb 100644
--- a/tests/validation/wifi/ci.json
+++ b/tests/validation/wifi/ci.json
@@ -21,8 +21,7 @@
     "hardware": false,
     "qemu": false
   },
-  "requires_any": [
-    "CONFIG_SOC_WIFI_SUPPORTED=y",
-    "CONFIG_ESP_WIFI_REMOTE_ENABLED=y"
+  "requires": [
+    "CONFIG_SOC_WIFI_SUPPORTED=y"
   ]
 }

From f54fb7d9fd988f460bbc6b7f0a2c3aaa0ff36090 Mon Sep 17 00:00:00 2001
From: "pre-commit-ci-lite[bot]"
 <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Date: Wed, 6 Nov 2024 22:06:03 +0000
Subject: [PATCH 2/2] ci(pre-commit): Apply automatic fixes

---
 libraries/ESP_NOW/src/ESP32_NOW.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/libraries/ESP_NOW/src/ESP32_NOW.h b/libraries/ESP_NOW/src/ESP32_NOW.h
index 849a465252d..efba9243aee 100644
--- a/libraries/ESP_NOW/src/ESP32_NOW.h
+++ b/libraries/ESP_NOW/src/ESP32_NOW.h
@@ -11,8 +11,6 @@
 #include "esp32-hal-log.h"
 #include "esp_mac.h"
 
-
-
 class ESP_NOW_Peer;  //forward declaration for friend function
 
 class ESP_NOW_Class : public Print {