Skip to content

Commit da4d198

Browse files
committed
Decouple network related libraries from WiFi
1 parent dfc59e7 commit da4d198

File tree

14 files changed

+36
-26
lines changed

14 files changed

+36
-26
lines changed

libraries/ArduinoOTA/src/ArduinoOTA.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
#define LWIP_OPEN_SRC
33
#endif
44
#include <functional>
5-
#include <WiFiUdp.h>
65
#include "ArduinoOTA.h"
6+
#include "WiFiClient.h"
77
#include "ESPmDNS.h"
88
#include "MD5Builder.h"
99
#include "Update.h"
@@ -128,7 +128,7 @@ void ArduinoOTAClass::begin() {
128128
if (!_hostname.length()) {
129129
char tmp[20];
130130
uint8_t mac[6];
131-
WiFi.macAddress(mac);
131+
Network.macAddress(mac);
132132
sprintf(tmp, "esp32-%02x%02x%02x%02x%02x%02x", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
133133
_hostname = tmp;
134134
}

libraries/ArduinoOTA/src/ArduinoOTA.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#ifndef __ARDUINO_OTA_H
22
#define __ARDUINO_OTA_H
33

4-
#include <WiFi.h>
5-
#include <functional>
4+
#include "Networking.h"
65
#include "Update.h"
6+
#include <functional>
77

88
#define INT_BUFFER_SIZE 16
99

libraries/ESPmDNS/src/ESPmDNS.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,8 @@ License (MIT license):
3939
#endif
4040

4141
#include "ESPmDNS.h"
42-
#include "WiFi.h"
4342
#include <functional>
44-
#include "esp_wifi.h"
45-
#include "esp_wifi_types.h"
43+
#include "esp_mac.h"
4644

4745
// Add quotes around defined value
4846
#ifdef __IN_ECLIPSE__
@@ -115,7 +113,7 @@ void MDNSResponder::disableArduino(){
115113
void MDNSResponder::enableWorkstation(esp_interface_t interface){
116114
char winstance[21+_hostname.length()];
117115
uint8_t mac[6];
118-
esp_wifi_get_mac((wifi_interface_t)interface, mac);
116+
esp_base_mac_addr_get(mac);
119117
sprintf(winstance, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", _hostname.c_str(), mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
120118

121119
if(mdns_service_add(NULL, "_workstation", "_tcp", 9, NULL, 0)) {

libraries/HTTPClient/src/HTTPClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include <esp32-hal-log.h>
3131

3232
#ifdef HTTPCLIENT_1_1_COMPATIBLE
33-
#include <WiFi.h>
33+
#include <WiFiClient.h>
3434
#include <WiFiClientSecure.h>
3535
#endif
3636

libraries/HTTPUpdate/src/HTTPUpdate.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,11 @@ HTTPUpdateResult HTTPUpdate::handleUpdate(HTTPClient& http, const String& curren
191191
http.setFollowRedirects(_followRedirects);
192192
http.setUserAgent("ESP32-http-Update");
193193
http.addHeader("Cache-Control", "no-cache");
194+
http.addHeader("x-ESP32-BASE-MAC", Network.macAddress());
195+
#if SOC_WIFI_SUPPORTED
194196
http.addHeader("x-ESP32-STA-MAC", WiFi.macAddress());
195197
http.addHeader("x-ESP32-AP-MAC", WiFi.softAPmacAddress());
198+
#endif
196199
http.addHeader("x-ESP32-free-space", String(ESP.getFreeSketchSpace()));
197200
http.addHeader("x-ESP32-sketch-size", String(ESP.getSketchSize()));
198201
String sketchMD5 = ESP.getSketchMD5();

libraries/HTTPUpdate/src/HTTPUpdate.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,7 @@
2727
#define ___HTTP_UPDATE_H___
2828

2929
#include <Arduino.h>
30-
#include <WiFi.h>
31-
#include <WiFiClient.h>
32-
#include <WiFiUdp.h>
30+
#include <Networking.h>
3331
#include <HTTPClient.h>
3432
#include <Update.h>
3533

libraries/NetBIOS/src/NetBIOS.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "NetBIOS.h"
2-
32
#include <functional>
43

54
#define NBNS_PORT 137
@@ -92,7 +91,7 @@ void NetBIOS::_onPacket(AsyncUDPPacket& packet){
9291
append_32((void *)&nbnsa.ttl, 300000);
9392
append_16((void *)&nbnsa.data_len, 6);
9493
append_16((void *)&nbnsa.flags, 0);
95-
nbnsa.addr = WiFi.localIP();
94+
nbnsa.addr = packet.localIP();
9695
_udp.writeTo((uint8_t *)&nbnsa, sizeof(nbnsa), packet.remoteIP(), NBNS_PORT);
9796
}
9897
}
@@ -102,6 +101,7 @@ void NetBIOS::_onPacket(AsyncUDPPacket& packet){
102101
NetBIOS::NetBIOS(){
103102

104103
}
104+
105105
NetBIOS::~NetBIOS(){
106106
end();
107107
}

libraries/NetBIOS/src/NetBIOS.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#ifndef __ESPNBNS_h__
33
#define __ESPNBNS_h__
44

5-
#include <WiFi.h>
5+
#include "Arduino.h"
66
#include "AsyncUDP.h"
77

88
class NetBIOS

libraries/Networking/src/ESP_Network_Manager.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
#include "lwip/ip_addr.h"
44
#include "lwip/dns.h"
55
#include "esp32-hal-log.h"
6-
#if CONFIG_IDF_TARGET_ESP32
76
#include "esp_mac.h"
8-
#endif
97

108
ESP_Network_Manager::ESP_Network_Manager(){
119

@@ -38,8 +36,7 @@ bool ESP_Network_Manager::begin(){
3836
* @param ipaddr
3937
* @param callback_arg
4038
*/
41-
static void wifi_dns_found_callback(const char *name, const ip_addr_t *ipaddr, void *callback_arg)
42-
{
39+
static void wifi_dns_found_callback(const char *name, const ip_addr_t *ipaddr, void *callback_arg){
4340
if(ipaddr) {
4441
(*reinterpret_cast<IPAddress*>(callback_arg)) = ipaddr->u_addr.ip4.addr;
4542
}
@@ -53,8 +50,7 @@ static void wifi_dns_found_callback(const char *name, const ip_addr_t *ipaddr, v
5350
* @return 1 if aIPAddrString was successfully converted to an IP address,
5451
* else error code
5552
*/
56-
int ESP_Network_Manager::hostByName(const char* aHostname, IPAddress& aResult)
57-
{
53+
int ESP_Network_Manager::hostByName(const char* aHostname, IPAddress& aResult){
5854
if (!aResult.fromString(aHostname))
5955
{
6056
ip_addr_t addr;
@@ -76,4 +72,17 @@ int ESP_Network_Manager::hostByName(const char* aHostname, IPAddress& aResult)
7672
return (uint32_t)aResult != 0;
7773
}
7874

75+
uint8_t * ESP_Network_Manager::macAddress(uint8_t * mac){
76+
esp_base_mac_addr_get(mac);
77+
return mac;
78+
}
79+
80+
String ESP_Network_Manager::macAddress(void){
81+
uint8_t mac[6];
82+
char macStr[18] = { 0 };
83+
macAddress(mac);
84+
sprintf(macStr, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
85+
return String(macStr);
86+
}
87+
7988
ESP_Network_Manager Network;

libraries/Networking/src/ESP_Network_Manager.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
#include "ESP_Network_Events.h"
44
#include "IPAddress.h"
5+
#include "WString.h"
56

67
class ESP_Network_Manager : public ESP_Network_Events {
78
public:
89
ESP_Network_Manager();
910

1011
bool begin();
1112
int hostByName(const char *aHostname, IPAddress &aResult);
13+
uint8_t * macAddress(uint8_t * mac);
14+
String macAddress();
1215
};
1316

1417
extern ESP_Network_Manager Network;

0 commit comments

Comments
 (0)