Compare commits

..

2 Commits

7 changed files with 22 additions and 13 deletions

View File

@ -12,8 +12,8 @@
"type": "git", "type": "git",
"url": "https://github.com/esphome/ESPAsyncWebServer.git" "url": "https://github.com/esphome/ESPAsyncWebServer.git"
}, },
"version": "3.0.0", "version": "3.1.0",
"license": "LGPL-3.0", "license": "LGPL-3.0",
"frameworks": "arduino", "frameworks": "arduino",
"platforms": ["espressif8266", "espressif32", "libretuya"] "platforms": ["espressif8266", "espressif32", "libretiny"]
} }

View File

@ -22,7 +22,7 @@
#include <Arduino.h> #include <Arduino.h>
#include <Arduino.h> #include <Arduino.h>
#if defined(ESP32) || defined(LIBRETUYA) #if defined(ESP32) || defined(LIBRETINY)
#include <AsyncTCP.h> #include <AsyncTCP.h>
#else #else
#include <ESPAsyncTCP.h> #include <ESPAsyncTCP.h>
@ -43,7 +43,7 @@
#endif #endif
#endif #endif
#if defined(ESP32) || defined(LIBRETUYA) #if defined(ESP32) || defined(LIBRETINY)
#define DEFAULT_MAX_SSE_CLIENTS 8 #define DEFAULT_MAX_SSE_CLIENTS 8
#else #else
#define DEFAULT_MAX_SSE_CLIENTS 4 #define DEFAULT_MAX_SSE_CLIENTS 4

View File

@ -102,7 +102,7 @@ size_t webSocketSendFrame(AsyncClient *client, bool final, uint8_t opcode, bool
return 0; return 0;
} }
} }
client->send(); if (!client->send()) return 0;
return len; return len;
} }

View File

@ -22,13 +22,17 @@
#define ASYNCWEBSOCKET_H_ #define ASYNCWEBSOCKET_H_
#include <Arduino.h> #include <Arduino.h>
#if defined(ESP32) || defined(LIBRETUYA) #if defined(ESP32) || defined(LIBRETINY)
#include <AsyncTCP.h> #include <AsyncTCP.h>
#ifndef WS_MAX_QUEUED_MESSAGES
#define WS_MAX_QUEUED_MESSAGES 32 #define WS_MAX_QUEUED_MESSAGES 32
#endif
#else #else
#include <ESPAsyncTCP.h> #include <ESPAsyncTCP.h>
#ifndef WS_MAX_QUEUED_MESSAGES
#define WS_MAX_QUEUED_MESSAGES 8 #define WS_MAX_QUEUED_MESSAGES 8
#endif #endif
#endif
#include <ESPAsyncWebServer.h> #include <ESPAsyncWebServer.h>
#include "AsyncWebSynchronization.h" #include "AsyncWebSynchronization.h"
@ -40,7 +44,7 @@
#endif #endif
#endif #endif
#if defined(ESP32) || defined(LIBRETUYA) #if defined(ESP32) || defined(LIBRETINY)
#define DEFAULT_MAX_WS_CLIENTS 8 #define DEFAULT_MAX_WS_CLIENTS 8
#else #else
#define DEFAULT_MAX_WS_CLIENTS 4 #define DEFAULT_MAX_WS_CLIENTS 4

View File

@ -5,7 +5,7 @@
#include <ESPAsyncWebServer.h> #include <ESPAsyncWebServer.h>
#if defined(ESP32) || (defined(LIBRETUYA) && LT_HAS_FREERTOS) #if defined(ESP32) || (defined(LIBRETINY) && LT_HAS_FREERTOS)
// This is the ESP32 version of the Sync Lock, using the FreeRTOS Semaphore // This is the ESP32 version of the Sync Lock, using the FreeRTOS Semaphore
class AsyncWebLock class AsyncWebLock
@ -84,4 +84,4 @@ public:
} }
}; };
#endif // ASYNCWEBSYNCHRONIZATION_H_ #endif // ASYNCWEBSYNCHRONIZATION_H_

View File

@ -28,7 +28,7 @@
#include "StringArray.h" #include "StringArray.h"
#if defined(ESP32) || defined(LIBRETUYA) #if defined(ESP32) || defined(LIBRETINY)
#include <WiFi.h> #include <WiFi.h>
#include <AsyncTCP.h> #include <AsyncTCP.h>
#elif defined(ESP8266) #elif defined(ESP8266)

View File

@ -180,10 +180,15 @@ void AsyncWebServerRequest::_onData(void *buf, size_t len){
void AsyncWebServerRequest::_removeNotInterestingHeaders(){ void AsyncWebServerRequest::_removeNotInterestingHeaders(){
if (_interestingHeaders.containsIgnoreCase("ANY")) return; // nothing to do if (_interestingHeaders.containsIgnoreCase("ANY")) return; // nothing to do
for(const auto& header: _headers){
if(!_interestingHeaders.containsIgnoreCase(header->name().c_str())){ auto itr = _headers.begin();
while (itr != _headers.end())
{
const auto header = *itr;
++itr; // ++operator before remove(), otherwise itr becomes invalid
if (!_interestingHeaders.containsIgnoreCase(header->name().c_str()))
_headers.remove(header); _headers.remove(header);
}
} }
} }