From e8df841b7f96927a418b508205816eb3b7d7740b Mon Sep 17 00:00:00 2001 From: Links Date: Mon, 10 Jun 2019 09:29:58 +0200 Subject: [PATCH] add support for ESP32 ETH.h see #443 --- src/WebSockets.h | 21 +++++++++++++++++---- src/WebSocketsClient.cpp | 6 +++--- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/WebSockets.h b/src/WebSockets.h index 65a9484..f9c2a94 100644 --- a/src/WebSockets.h +++ b/src/WebSockets.h @@ -57,7 +57,6 @@ #if defined(ESP8266) || defined(ESP32) -#define HAS_SSL #define WEBSOCKETS_MAX_DATA_SIZE (15*1024) #define WEBSOCKETS_USE_BIG_MEM #define GET_FREE_HEAP ESP.getFreeHeap() @@ -87,6 +86,7 @@ #define NETWORK_W5100 (2) #define NETWORK_ENC28J60 (3) #define NETWORK_ESP32 (4) +#define NETWORK_ESP32_ETH (5) // max size of the WS Message Header #define WEBSOCKETS_MAX_HEADER_SIZE (14) @@ -100,7 +100,7 @@ #elif defined(ESP32) #define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP32 - +//#define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP32_ETH #else #define WEBSOCKETS_NETWORK_TYPE NETWORK_W5100 @@ -143,6 +143,7 @@ #include #endif #define WEBSOCKETS_NETWORK_CLASS WiFiClient +#define WEBSOCKETS_NETWORK_SSL_CLASS WiFiClientSecure #define WEBSOCKETS_NETWORK_SERVER_CLASS WiFiServer #elif (WEBSOCKETS_NETWORK_TYPE == NETWORK_W5100) @@ -168,12 +169,24 @@ #include #include #define WEBSOCKETS_NETWORK_CLASS WiFiClient +#define WEBSOCKETS_NETWORK_SSL_CLASS WiFiClientSecure +#define WEBSOCKETS_NETWORK_SERVER_CLASS WiFiServer + +#elif (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32_ETH) + +#include +#define WEBSOCKETS_NETWORK_CLASS WiFiClient #define WEBSOCKETS_NETWORK_SERVER_CLASS WiFiServer #else #error "no network type selected!" #endif + +#ifdef WEBSOCKETS_NETWORK_SSL_CLASS +#define HAS_SSL +#endif + // moves all Header strings to Flash (~300 Byte) #ifdef WEBSOCKETS_SAVE_RAM #define WEBSOCKETS_STRING(var) F(var) @@ -236,9 +249,9 @@ typedef struct { bool isSocketIO; ///< client for socket.io server -#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32) +#if defined(HAS_SSL) bool isSSL; ///< run in ssl mode - WiFiClientSecure * ssl; + WEBSOCKETS_NETWORK_SSL_CLASS * ssl; #endif String cUrl; ///< http url diff --git a/src/WebSocketsClient.cpp b/src/WebSocketsClient.cpp index 6887641..0002561 100644 --- a/src/WebSocketsClient.cpp +++ b/src/WebSocketsClient.cpp @@ -154,7 +154,7 @@ void WebSocketsClient::loop(void) { return; } -#if (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP8266) || (WEBSOCKETS_NETWORK_TYPE == NETWORK_ESP32) +#if defined(HAS_SSL) if(_client.isSSL) { DEBUG_WEBSOCKETS("[WS-Client] connect wss...\n"); if(_client.ssl) { @@ -162,7 +162,7 @@ void WebSocketsClient::loop(void) { _client.ssl = NULL; _client.tcp = NULL; } - _client.ssl = new WiFiClientSecure(); + _client.ssl = new WEBSOCKETS_NETWORK_SSL_CLASS(); _client.tcp = _client.ssl; if(_CA_cert) { DEBUG_WEBSOCKETS("[WS-Client] setting CA certificate"); @@ -180,7 +180,7 @@ void WebSocketsClient::loop(void) { delete _client.tcp; _client.tcp = NULL; } - _client.tcp = new WiFiClient(); + _client.tcp = new WEBSOCKETS_NETWORK_CLASS(); } #else _client.tcp = new WEBSOCKETS_NETWORK_CLASS();