From 740a15bfd9a82674a47204d11c47fe317815aea1 Mon Sep 17 00:00:00 2001 From: Khoi Hoang <57012152+khoih-prog@users.noreply.github.com> Date: Sun, 25 Sep 2022 12:46:04 -0400 Subject: [PATCH] v1.1.0 to fix issue with slow browsers or network ### Release v1.1.0 1. Fix issue with slow browsers or network. Check [Target stops responding after variable time when using Firefox on Windows 10 #3](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/3) --- README.md | 44 ++++-- changelog.md | 6 + .../Async_AdvancedWebServer.ino | 2 +- .../Async_AdvancedWebServer_Country.ino | 5 +- library.json | 2 +- library.properties | 2 +- ...sync_AdvancedWebServer_Country_Firefox.png | Bin 0 -> 81438 bytes .../Async_AdvancedWebServer_Country_Multi.png | Bin 0 -> 114476 bytes platformio/platformio.ini | 1 + src/AsyncEventSource_RP2040W.cpp | 3 +- src/AsyncEventSource_RP2040W.h | 3 +- src/AsyncJson_RP2040W.h | 3 +- src/AsyncWebAuthentication_RP2040W.cpp | 3 +- src/AsyncWebAuthentication_RP2040W.h | 3 +- src/AsyncWebHandlerImpl_RP2040W.h | 3 +- src/AsyncWebHandlers_RP2040W.cpp | 3 +- src/AsyncWebRequest_RP2040W.cpp | 142 +++++++++++++++++- src/AsyncWebResponseImpl_RP2040W.h | 3 +- src/AsyncWebResponses_RP2040W.cpp | 3 +- src/AsyncWebServer_RP2040W.cpp | 58 ++++++- src/AsyncWebServer_RP2040W.h | 45 +++++- src/AsyncWebServer_RP2040W_Debug.h | 3 +- src/AsyncWebSocket_RP2040W.cpp | 3 +- src/AsyncWebSocket_RP2040W.h | 3 +- src/AsyncWebSynchronization_RP2040W.h | 3 +- src/StringArray_RP2040W.h | 3 +- src/libb64/cdecode.c | 3 +- src/libb64/cdecode.h | 3 +- src/libb64/cencode.c | 3 +- src/libb64/cencode.h | 3 +- 30 files changed, 306 insertions(+), 55 deletions(-) create mode 100644 pics/Async_AdvancedWebServer_Country_Firefox.png create mode 100644 pics/Async_AdvancedWebServer_Country_Multi.png diff --git a/README.md b/README.md index 5f4c4d6..a8e7ff7 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ to apply the better and faster **asynchronous** feature of the **powerful** [ESP 1. [`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [![GitHub release](https://img.shields.io/github/release/arduino/Arduino.svg)](https://github.com/arduino/Arduino/releases/latest) 2. [`Earle Philhower's arduino-pico core v2.5.4+`](https://github.com/earlephilhower/arduino-pico) for **RASPBERRY_PI_PICO_W with CYW43439 WiFi**, etc. [![GitHub release](https://img.shields.io/github/release/earlephilhower/arduino-pico.svg)](https://github.com/earlephilhower/arduino-pico/releases/latest) - 3. [`AsyncTCP_RP2040W library v1.0.0+`](https://github.com/khoih-prog/AsyncTCP_RP2040W) for RASPBERRY_PI_PICO_W with CYW43439 WiFi. [![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncTCP_RP2040W.svg)](https://github.com/khoih-prog/AsyncTCP_RP2040W/releases/latest). To install. check [![arduino-library-badge](https://www.ardu-badge.com/badge/AsyncTCP_RP2040W.svg?)](https://www.ardu-badge.com/AsyncTCP_RP2040W) + 3. [`AsyncTCP_RP2040W library v1.1.0+`](https://github.com/khoih-prog/AsyncTCP_RP2040W) for RASPBERRY_PI_PICO_W with CYW43439 WiFi. [![GitHub release](https://img.shields.io/github/release/khoih-prog/AsyncTCP_RP2040W.svg)](https://github.com/khoih-prog/AsyncTCP_RP2040W/releases/latest) --- @@ -1451,8 +1451,8 @@ Following is the debug terminal when running example [Async_AdvancedWebServer](e ``` Start Async_AdvancedWebServer on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1475,8 +1475,8 @@ Following is debug terminal output when running example [WebClient](examples/Web ``` Start WebClient on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1553,8 +1553,8 @@ Following is debug terminal output when running example [MQTTClient_Auth](exampl ``` Start MQTTClient_Auth on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1575,8 +1575,8 @@ Following is debug terminal output when running example [MQTTClient_Basic](examp ``` Start MQTTClient_Basic on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1597,8 +1597,8 @@ Following is debug terminal output when running example [MQTT_ThingStream](examp ``` Start MQTT_ThingStream on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1625,8 +1625,8 @@ Following is the debug terminal when running example [Async_AdvancedWebServer_Co ``` Start Async_AdvancedWebServer_Country on RASPBERRY_PI_PICO_W with RP2040W CYW43439 WiFi -AsyncTCP_RP2040W v1.0.0 -AsyncWebServer_RP2040W v1.0.3 +AsyncTCP_RP2040W v1.1.0 +AsyncWebServer_RP2040W v1.1.0 Connecting to SSID: HueNet1 SSID: HueNet1 Local IP Address: 192.168.2.180 @@ -1639,7 +1639,18 @@ HTTP EthernetWebServer is @ IP : 192.168.2.180

---- +##### Chrome, Vivaldi and Firefox running simultaneously + +

+ +

+ +##### Only Firefox running + +

+ +

+ --- --- @@ -1681,6 +1692,7 @@ Submit issues to: [AsyncWebServer_RP2040W issues](https://github.com/khoih-prog/ 2. Add Table of Contents 3. Modify examples to display `country-code` 4. Add tempo method to modify `arduino-pico` core to change `country-code` + 5. Fix issue with slow browsers or network. Check [Target stops responding after variable time when using Firefox on Windows 10 #3](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/3) --- --- @@ -1688,7 +1700,9 @@ Submit issues to: [AsyncWebServer_RP2040W issues](https://github.com/khoih-prog/ ### Contributions and Thanks 1. Based on and modified from [Hristo Gochkov's ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer). Many thanks to [Hristo Gochkov](https://github.com/me-no-dev) for great [ESPAsyncWebServer Library](https://github.com/me-no-dev/ESPAsyncWebServer) -2. Thanks to [revell1](https://github.com/revell1) to report the bug in [LED state appears to be reversed. #2](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/2), leading to v1.0.2 +2. Thanks to [revell1](https://github.com/revell1) to +- report the bug in [LED state appears to be reversed. #2](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/2), leading to v1.0.2 +- request enhancement in [Target stops responding after variable time when using Firefox on Windows 10 #3](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/3), leading to v1.1.0 diff --git a/changelog.md b/changelog.md index 6086622..456d7c9 100644 --- a/changelog.md +++ b/changelog.md @@ -11,6 +11,7 @@ ## Table of Contents * [Changelog](#changelog) + * [Release v1.1.0](#Release-v110) * [Release v1.0.3](#Release-v103) * [Release v1.0.2](#Release-v102) * [Release v1.0.1](#Release-v101) @@ -21,6 +22,11 @@ ## Changelog +### Release v1.1.0 + +1. Fix issue with slow browsers or network. Check [Target stops responding after variable time when using Firefox on Windows 10 #3](https://github.com/khoih-prog/AsyncWebServer_RP2040W/issues/3) + + ### Release v1.0.3 1. Modify examples to display `country-code` diff --git a/examples/Async_AdvancedWebServer/Async_AdvancedWebServer.ino b/examples/Async_AdvancedWebServer/Async_AdvancedWebServer.ino index 8eeacc1..f55df36 100644 --- a/examples/Async_AdvancedWebServer/Async_AdvancedWebServer.ino +++ b/examples/Async_AdvancedWebServer/Async_AdvancedWebServer.ino @@ -129,7 +129,7 @@ void drawGraph(AsyncWebServerRequest *request) { String out; - out.reserve(3000); + out.reserve(4000); char temp[70]; digitalWrite(LED_BUILTIN, LED_ON); diff --git a/examples/Async_AdvancedWebServer_Country/Async_AdvancedWebServer_Country.ino b/examples/Async_AdvancedWebServer_Country/Async_AdvancedWebServer_Country.ino index 4c6caa9..8a2eeab 100644 --- a/examples/Async_AdvancedWebServer_Country/Async_AdvancedWebServer_Country.ino +++ b/examples/Async_AdvancedWebServer_Country/Async_AdvancedWebServer_Country.ino @@ -47,7 +47,8 @@ #error For RASPBERRY_PI_PICO_W only #endif -#define _RP2040W_AWS_LOGLEVEL_ 1 +#define _ASYNCTCP_RP2040W_LOGLEVEL_ 4 +#define _RP2040W_AWS_LOGLEVEL_ 3 /////////////////////////////////////////////////////////////////// @@ -131,7 +132,7 @@ void drawGraph(AsyncWebServerRequest *request) { String out; - out.reserve(3000); + out.reserve(4000); char temp[70]; digitalWrite(LED_BUILTIN, LED_ON); diff --git a/library.json b/library.json index b4ac660..7f5df43 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "AsyncWebServer_RP2040W", - "version": "1.0.3", + "version": "1.1.0", "keywords": "http, async, websocket, webserver, async-webserver, async-tcp, async-udp, async-websocket, async-http, ssl, tls, rp2040, rp2040w, raspberry-pi-pico-w, cyw43439, wifi", "description": "Asynchronous WebServer Library for RASPBERRY_PI_PICO_W using CYW43439 WiFi with arduino-pico core. This library, which is relied on AsyncTCP_RP2040W, is part of a series of advanced Async libraries for RP2040W, such as AsyncTCP_RP2040W, AsyncUDP_RP2040W, AsyncWebServer_RP2040W, AsyncHTTPRequest_RP2040W, AsyncHTTPSRequest_RP2040W, etc. Now can display programmed WiFi country-code", "authors": diff --git a/library.properties b/library.properties index f9502e2..c9beca7 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=AsyncWebServer_RP2040W -version=1.0.3 +version=1.1.0 author=Hristo Gochkov,Khoi Hoang maintainer=Khoi Hoang sentence=Asynchronous WebServer Library for RASPBERRY_PI_PICO_W using CYW43439 WiFi with arduino-pico core. diff --git a/pics/Async_AdvancedWebServer_Country_Firefox.png b/pics/Async_AdvancedWebServer_Country_Firefox.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb76fa1a0bf33c5ffc5f3ff671adce19aaeca32 GIT binary patch literal 81438 zcmX`S1zc3!_dR@Rq$Q<6q@}yNL8QC8yBq07N@ULGakP+|@002Oik`z@004NRcA2K{7_|A?ubujoJl#{TOGCVx|@`n6h z@FkkFn7Xr)ovE{%fujkaWbWeZY~pAXIPneuNB}8OA!YZa;|w=-%zpg-_0=+he!`A# z2vpJ%3ea9qRuOzPf7ElOW{MXu5DRg!mKhWX<<=>J3c-hyc>6wFNV*K3I--y&t&ln* z*8=bV<`aZhC{cEvv=I~kDQG={73L31g84N_OIaD+ZzpQE1yQI`1F44*X?kqbXCz3< zhOfPamuQVHza<+Y3ObsqN||QM(5UJ4$w|@hBalrXiUuvD%feMWX}+!YyEi6NyAur_ zCI~`!(!|7MHVNS}a7h&2VsH0lCoP(&)0YZ5-jql`x}M?c-n%P?aNcfZVQf?mr_ujE zgJHDrlrt2;`HJ%K&BV9_ z5$4JbL5za%k0Kb^x`{YZ0Ao=7^?4uuH(m^?=Ra}ce|JtsX9fimzk$OCj-Zjd(O^$0 zPti3C40IQ?CE(El#f7#PFPtOEF7CZgn#iGr(4aj!NL(Og@nyu|<(!%snuXvmFOeAu zQr{-9;^9IM0Z6%tYih!|5QLx`NMhu{k8I1O5x;{FrXs`LC7euyq z>iJY7f`j7b;ptPXtSxESnKvEJ_PmN`4~HTmYNw{ek4cLt;aX^t@Vu}+Y#K-+gx=QS z@@wJGpON328wEg%cIC_;QA2BOZRJn2w2x zB>QGr1$!R`G11#-i*)H+l^-FjUq8O^ z`JJv@jc;*ZYzEgEtoyd?qzH`Aea81A#qxW)xw2iV<`xorOt5gGt2v}5gEKfZ%ta7W6CU0n68Z9N?QnrBZnl3t#8*LARUH03E*>{$ z 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 literal 0 HcmV?d00001 diff --git a/pics/Async_AdvancedWebServer_Country_Multi.png b/pics/Async_AdvancedWebServer_Country_Multi.png new file mode 100644 index 0000000000000000000000000000000000000000..bdd315bc6baa577533db0e821b3807cb08fe19a3 GIT binary patch literal 114476 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]&h1c_u?1n7>SVo(h}@u9zVMzp>lNo8f+$| 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 z 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 literal 0 HcmV?d00001 diff --git a/platformio/platformio.ini b/platformio/platformio.ini index 33fa223..c794764 100644 --- a/platformio/platformio.ini +++ b/platformio/platformio.ini @@ -38,6 +38,7 @@ upload_speed = 921600 ;monitor_port = COM11 ; Checks for the compatibility with frameworks and dev/platforms +; Adjust as necessary lib_compat_mode = strict lib_ldf_mode = chain+ ;lib_ldf_mode = deep+ diff --git a/src/AsyncEventSource_RP2040W.cpp b/src/AsyncEventSource_RP2040W.cpp index 06c38dc..1010562 100644 --- a/src/AsyncEventSource_RP2040W.cpp +++ b/src/AsyncEventSource_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) diff --git a/src/AsyncEventSource_RP2040W.h b/src/AsyncEventSource_RP2040W.h index 6852cfe..007d05b 100644 --- a/src/AsyncEventSource_RP2040W.h +++ b/src/AsyncEventSource_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncJson_RP2040W.h b/src/AsyncJson_RP2040W.h index 60d8e65..7554bee 100644 --- a/src/AsyncJson_RP2040W.h +++ b/src/AsyncJson_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ /* Async Response to use with ArduinoJson and AsyncWebServer diff --git a/src/AsyncWebAuthentication_RP2040W.cpp b/src/AsyncWebAuthentication_RP2040W.cpp index 0a10f32..160b989 100644 --- a/src/AsyncWebAuthentication_RP2040W.cpp +++ b/src/AsyncWebAuthentication_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) diff --git a/src/AsyncWebAuthentication_RP2040W.h b/src/AsyncWebAuthentication_RP2040W.h index 876805d..e08ae3d 100644 --- a/src/AsyncWebAuthentication_RP2040W.h +++ b/src/AsyncWebAuthentication_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncWebHandlerImpl_RP2040W.h b/src/AsyncWebHandlerImpl_RP2040W.h index a348bf9..fddde44 100644 --- a/src/AsyncWebHandlerImpl_RP2040W.h +++ b/src/AsyncWebHandlerImpl_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncWebHandlers_RP2040W.cpp b/src/AsyncWebHandlers_RP2040W.cpp index 60b7875..799ceca 100644 --- a/src/AsyncWebHandlers_RP2040W.cpp +++ b/src/AsyncWebHandlers_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) diff --git a/src/AsyncWebRequest_RP2040W.cpp b/src/AsyncWebRequest_RP2040W.cpp index 6e6fa52..12114b3 100644 --- a/src/AsyncWebRequest_RP2040W.cpp +++ b/src/AsyncWebRequest_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) @@ -29,12 +30,16 @@ #include "AsyncWebResponseImpl_RP2040W.h" #include "AsyncWebAuthentication_RP2040W.h" +///////////////////////////////////////////////// + //static const String SharedEmptyString = String(); #define __is_param_char(c) ((c) && ((c) != '{') && ((c) != '[') && ((c) != '&') && ((c) != '=')) enum { PARSE_REQ_START, PARSE_REQ_HEADERS, PARSE_REQ_BODY, PARSE_REQ_END, PARSE_REQ_FAIL }; +///////////////////////////////////////////////// + AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer* s, AsyncClient* c) : _client(c), _server(s), _handler(NULL), _response(NULL), _temp(), _parseState(0) , _version(0), _method(HTTP_ANY), _url(), _host(), _contentType(), _boundary() @@ -98,6 +103,8 @@ AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer* s, AsyncClient* c) }, this); } +///////////////////////////////////////////////// + AsyncWebServerRequest::~AsyncWebServerRequest() { _headers.free(); @@ -118,6 +125,8 @@ AsyncWebServerRequest::~AsyncWebServerRequest() } } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onData(void *buf, size_t len) { size_t i = 0; @@ -245,9 +254,12 @@ void AsyncWebServerRequest::_onData(void *buf, size_t len) } // KH, Important for RP2040W, or system will hang - delay(0); + //delay(0); + yield(); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_removeNotInterestingHeaders() { if (_interestingHeaders.containsIgnoreCase("ANY")) @@ -262,6 +274,8 @@ void AsyncWebServerRequest::_removeNotInterestingHeaders() } } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onPoll() { if (_response != NULL && _client != NULL && _client->canSend() && !_response->_finished()) @@ -270,9 +284,12 @@ void AsyncWebServerRequest::_onPoll() } // KH, Important for RP2040W, or system will hang - delay(0); + //delay(0); + yield(); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onAck(size_t len, uint32_t time) { AWS_LOGDEBUG3("onAck: len =", len, ", time =", time); @@ -292,31 +309,45 @@ void AsyncWebServerRequest::_onAck(size_t len, uint32_t time) } // KH, Important for RP2040W, or system will hang - delay(0); + //delay(0); + yield(); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onError(int8_t error) { RP2040W_AWS_UNUSED(error); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onTimeout(uint32_t time) { RP2040W_AWS_UNUSED(time); AWS_LOGDEBUG3("TIMEOUT: time =", time, ", state =", _client->stateToString()); - + + // KH test + AWS_LOGINFO3("TIMEOUT: time =", time, ", state =", _client->stateToString()); + ////// + _client->close(); // KH, Important for RP2040W, or system will hang - delay(0); + //delay(0); + yield(); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::onDisconnect (ArDisconnectHandler fn) { _onDisconnectfn = fn; } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_onDisconnect() { if (_onDisconnectfn) @@ -327,19 +358,26 @@ void AsyncWebServerRequest::_onDisconnect() _server->_handleDisconnect(this); // KH, Important for RP2040W, or system will hang - delay(0); + //delay(0); + yield(); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_addParam(AsyncWebParameter *p) { _params.add(p); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_addPathParam(const char *p) { _pathParams.add(new String(p)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_addGetParams(const String& params) { size_t start = 0; @@ -363,6 +401,8 @@ void AsyncWebServerRequest::_addGetParams(const String& params) } } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::_parseReqHead() { // Split the head into method, url and version @@ -421,6 +461,8 @@ bool AsyncWebServerRequest::_parseReqHead() return true; } +///////////////////////////////////////////////// + bool strContains(String src, String find, bool mindcase = true) { int pos = 0, i = 0; @@ -452,6 +494,8 @@ bool strContains(String src, String find, bool mindcase = true) return false; } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::_parseReqHeader() { int index = _temp.indexOf(':'); @@ -521,6 +565,8 @@ bool AsyncWebServerRequest::_parseReqHeader() return true; } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_parsePlainPostChar(uint8_t data) { if (data && (char)data != '&') @@ -542,6 +588,8 @@ void AsyncWebServerRequest::_parsePlainPostChar(uint8_t data) } } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_handleUploadByte(uint8_t data, bool last) { _itemBuffer[_itemBufferIndex++] = data; @@ -556,6 +604,8 @@ void AsyncWebServerRequest::_handleUploadByte(uint8_t data, bool last) } } +///////////////////////////////////////////////// + enum { EXPECT_BOUNDARY, @@ -571,6 +621,7 @@ enum PARSE_ERROR }; +///////////////////////////////////////////////// void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) { @@ -601,16 +652,19 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) if (_parsedLength < 2 && data != '-') { _multiParseState = PARSE_ERROR; + return; } else if (_parsedLength - 2 < _boundary.length() && _boundary.c_str()[_parsedLength - 2] != data) { _multiParseState = PARSE_ERROR; + return; } else if (_parsedLength - 2 == _boundary.length() && data != '\r') { _multiParseState = PARSE_ERROR; + return; } else if (_parsedLength - 3 == _boundary.length()) @@ -618,6 +672,7 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) if (data != '\n') { _multiParseState = PARSE_ERROR; + return; } @@ -680,6 +735,7 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) else { _multiParseState = WAIT_FOR_RETURN1; + //value starts from here _itemSize = 0; _itemStartIndex = _parsedLength; @@ -695,6 +751,7 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) if (_itemBuffer == NULL) { _multiParseState = PARSE_ERROR; + return; } @@ -802,6 +859,7 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) { AWS_LOGDEBUG1("ERROR: The parser got to the end of the POST but is expecting more bytes =", (_contentLength - _parsedLength - 4)); AWS_LOGDEBUG("Drop an issue so we can have more info on the matter!"); + _contentLength = _parsedLength + 4;//lets close the request gracefully } @@ -856,6 +914,8 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) } } +///////////////////////////////////////////////// + void AsyncWebServerRequest::_parseLine() { if (_parseState == PARSE_REQ_START) @@ -910,12 +970,15 @@ void AsyncWebServerRequest::_parseLine() } } +///////////////////////////////////////////////// size_t AsyncWebServerRequest::headers() const { return _headers.length(); } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::hasHeader(const String& name) const { for (const auto& h : _headers) @@ -929,6 +992,8 @@ bool AsyncWebServerRequest::hasHeader(const String& name) const return false; } +///////////////////////////////////////////////// + AsyncWebHeader* AsyncWebServerRequest::getHeader(const String& name) const { for (const auto& h : _headers) @@ -942,6 +1007,8 @@ AsyncWebHeader* AsyncWebServerRequest::getHeader(const String& name) const return nullptr; } +///////////////////////////////////////////////// + AsyncWebHeader* AsyncWebServerRequest::getHeader(size_t num) const { auto header = _headers.nth(num); @@ -949,11 +1016,14 @@ AsyncWebHeader* AsyncWebServerRequest::getHeader(size_t num) const return (header ? *header : nullptr); } +///////////////////////////////////////////////// + size_t AsyncWebServerRequest::params() const { return _params.length(); } +///////////////////////////////////////////////// bool AsyncWebServerRequest::hasParam(const String& name, bool post, bool file) const { @@ -968,6 +1038,8 @@ bool AsyncWebServerRequest::hasParam(const String& name, bool post, bool file) c return false; } +///////////////////////////////////////////////// + AsyncWebParameter* AsyncWebServerRequest::getParam(const String& name, bool post, bool file) const { for (const auto& p : _params) @@ -981,6 +1053,8 @@ AsyncWebParameter* AsyncWebServerRequest::getParam(const String& name, bool post return nullptr; } +///////////////////////////////////////////////// + AsyncWebParameter* AsyncWebServerRequest::getParam(size_t num) const { auto param = _params.nth(num); @@ -988,12 +1062,16 @@ AsyncWebParameter* AsyncWebServerRequest::getParam(size_t num) const return (param ? *param : nullptr); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::addInterestingHeader(const String& name) { if (!_interestingHeaders.containsIgnoreCase(name)) _interestingHeaders.add(name); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::send(AsyncWebServerResponse *response) { _response = response; @@ -1020,21 +1098,29 @@ void AsyncWebServerRequest::send(AsyncWebServerResponse *response) } } +///////////////////////////////////////////////// + AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(int code, const String& contentType, const String& content) { return new AsyncBasicResponse(code, contentType, content); } +///////////////////////////////////////////////// + AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback) { return new AsyncStreamResponse(stream, contentType, len, callback); } +///////////////////////////////////////////////// + AsyncWebServerResponse * AsyncWebServerRequest::beginResponse(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback) { return new AsyncCallbackResponse(contentType, len, callback, templateCallback); } +///////////////////////////////////////////////// + AsyncWebServerResponse * AsyncWebServerRequest::beginChunkedResponse(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback) { if (_version) @@ -1043,6 +1129,8 @@ AsyncWebServerResponse * AsyncWebServerRequest::beginChunkedResponse(const Strin return new AsyncCallbackResponse(contentType, 0, callback, templateCallback); } +///////////////////////////////////////////////// + AsyncResponseStream * AsyncWebServerRequest::beginResponseStream(const String& contentType, size_t bufferSize) { return new AsyncResponseStream(contentType, bufferSize); @@ -1053,21 +1141,29 @@ void AsyncWebServerRequest::send(int code, const String& contentType, const Stri send(beginResponse(code, contentType, content)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::send(Stream &stream, const String& contentType, size_t len, AwsTemplateProcessor callback) { send(beginResponse(stream, contentType, len, callback)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::send(const String& contentType, size_t len, AwsResponseFiller callback, AwsTemplateProcessor templateCallback) { send(beginResponse(contentType, len, callback, templateCallback)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::sendChunked(const String& contentType, AwsResponseFiller callback, AwsTemplateProcessor templateCallback) { send(beginChunkedResponse(contentType, callback, templateCallback)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::redirect(const String& url) { AsyncWebServerResponse * response = beginResponse(302); @@ -1075,6 +1171,8 @@ void AsyncWebServerRequest::redirect(const String& url) send(response); } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::authenticate(const char * username, const char * password, const char * realm, bool passwordIsHash) { AWS_LOGDEBUG1("AsyncWebServerRequest::authenticate: auth-len =", _authorization.length()); @@ -1106,6 +1204,8 @@ bool AsyncWebServerRequest::authenticate(const char * username, const char * pas return false; } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::authenticate(const char * hash) { if (!_authorization.length() || hash == NULL) @@ -1135,6 +1235,8 @@ bool AsyncWebServerRequest::authenticate(const char * hash) return (_authorization.equals(hash)); } +///////////////////////////////////////////////// + void AsyncWebServerRequest::requestAuthentication(const char * realm, bool isDigest) { AsyncWebServerResponse * r = beginResponse(401); @@ -1160,6 +1262,8 @@ void AsyncWebServerRequest::requestAuthentication(const char * realm, bool isDig send(r); } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::hasArg(const char* name) const { for (const auto& arg : _params) @@ -1173,6 +1277,8 @@ bool AsyncWebServerRequest::hasArg(const char* name) const return false; } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::arg(const String& name) const { for (const auto& arg : _params) @@ -1186,16 +1292,22 @@ const String& AsyncWebServerRequest::arg(const String& name) const return SharedEmptyString; } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::arg(size_t i) const { return getParam(i)->value(); } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::argName(size_t i) const { return getParam(i)->name(); } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::pathArg(size_t i) const { auto param = _pathParams.nth(i); @@ -1203,6 +1315,8 @@ const String& AsyncWebServerRequest::pathArg(size_t i) const return (param ? **param : SharedEmptyString); } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::header(const char* name) const { AsyncWebHeader* h = getHeader(String(name)); @@ -1210,6 +1324,8 @@ const String& AsyncWebServerRequest::header(const char* name) const return (h ? h->value() : SharedEmptyString); } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::header(size_t i) const { AsyncWebHeader* h = getHeader(i); @@ -1217,6 +1333,8 @@ const String& AsyncWebServerRequest::header(size_t i) const return (h ? h->value() : SharedEmptyString); } +///////////////////////////////////////////////// + const String& AsyncWebServerRequest::headerName(size_t i) const { AsyncWebHeader* h = getHeader(i); @@ -1224,6 +1342,8 @@ const String& AsyncWebServerRequest::headerName(size_t i) const return (h ? h->name() : SharedEmptyString); } +///////////////////////////////////////////////// + String AsyncWebServerRequest::urlDecode(const String& text) const { char temp[] = "0x00"; @@ -1258,6 +1378,7 @@ String AsyncWebServerRequest::urlDecode(const String& text) const return decoded; } +///////////////////////////////////////////////// const char * AsyncWebServerRequest::methodToString() const { @@ -1281,6 +1402,8 @@ const char * AsyncWebServerRequest::methodToString() const return "UNKNOWN"; } +///////////////////////////////////////////////// + const char *AsyncWebServerRequest::requestedConnTypeToString() const { switch (_reqconntype) @@ -1300,6 +1423,8 @@ const char *AsyncWebServerRequest::requestedConnTypeToString() const } } +///////////////////////////////////////////////// + bool AsyncWebServerRequest::isExpectedRequestedConnType(RequestedConnectionType erct1, RequestedConnectionType erct2, RequestedConnectionType erct3) { bool res = false; @@ -1315,3 +1440,6 @@ bool AsyncWebServerRequest::isExpectedRequestedConnType(RequestedConnectionType return res; } + +///////////////////////////////////////////////// + diff --git a/src/AsyncWebResponseImpl_RP2040W.h b/src/AsyncWebResponseImpl_RP2040W.h index 2eb9c3f..d3f3e34 100644 --- a/src/AsyncWebResponseImpl_RP2040W.h +++ b/src/AsyncWebResponseImpl_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncWebResponses_RP2040W.cpp b/src/AsyncWebResponses_RP2040W.cpp index 151bfa2..a2a06e3 100644 --- a/src/AsyncWebResponses_RP2040W.cpp +++ b/src/AsyncWebResponses_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) diff --git a/src/AsyncWebServer_RP2040W.cpp b/src/AsyncWebServer_RP2040W.cpp index bce9b35..463d938 100644 --- a/src/AsyncWebServer_RP2040W.cpp +++ b/src/AsyncWebServer_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,17 +17,22 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #if !defined(_RP2040W_AWS_LOGLEVEL_) #define _RP2040W_AWS_LOGLEVEL_ 1 #endif +///////////////////////////////////////////////// + #include "AsyncWebServer_RP2040W_Debug.h" #include "AsyncWebServer_RP2040W.h" #include "AsyncWebHandlerImpl_RP2040W.h" +///////////////////////////////////////////////// + AsyncWebServer::AsyncWebServer(uint16_t port) : _server(port), _rewrites(LinkedList([](AsyncWebRewrite * r) { @@ -48,7 +53,11 @@ AsyncWebServer::AsyncWebServer(uint16_t port) if (c == NULL) return; - c->setRxTimeout(3); + // KH set no RxTimeout for slower Firefox / network + //c->setRxTimeout(3); + c->setRxTimeout(0); + ////// + AsyncWebServerRequest *r = new AsyncWebServerRequest((AsyncWebServer*)s, c); if (r == NULL) @@ -60,6 +69,8 @@ AsyncWebServer::AsyncWebServer(uint16_t port) }, this); } +///////////////////////////////////////////////// + AsyncWebServer::~AsyncWebServer() { reset(); @@ -69,6 +80,8 @@ AsyncWebServer::~AsyncWebServer() delete _catchAllHandler; } +///////////////////////////////////////////////// + AsyncWebRewrite& AsyncWebServer::addRewrite(AsyncWebRewrite* rewrite) { _rewrites.add(rewrite); @@ -76,55 +89,76 @@ AsyncWebRewrite& AsyncWebServer::addRewrite(AsyncWebRewrite* rewrite) return *rewrite; } +///////////////////////////////////////////////// + bool AsyncWebServer::removeRewrite(AsyncWebRewrite *rewrite) { return _rewrites.remove(rewrite); } +///////////////////////////////////////////////// + AsyncWebRewrite& AsyncWebServer::rewrite(const char* from, const char* to) { return addRewrite(new AsyncWebRewrite(from, to)); } +///////////////////////////////////////////////// + AsyncWebHandler& AsyncWebServer::addHandler(AsyncWebHandler* handler) { _handlers.add(handler); + return *handler; } +///////////////////////////////////////////////// + bool AsyncWebServer::removeHandler(AsyncWebHandler *handler) { return _handlers.remove(handler); } +///////////////////////////////////////////////// + void AsyncWebServer::begin() { _server.setNoDelay(true); _server.begin(); } +///////////////////////////////////////////////// + void AsyncWebServer::end() { _server.end(); } +///////////////////////////////////////////////// + #if ASYNC_TCP_SSL_ENABLED void AsyncWebServer::onSslFileRequest(AcSSlFileHandler cb, void* arg) { _server.onSslFileRequest(cb, arg); } +///////////////////////////////////////////////// + void AsyncWebServer::beginSecure(const char *cert, const char *key, const char *password) { _server.beginSecure(cert, key, password); } #endif +///////////////////////////////////////////////// + void AsyncWebServer::_handleDisconnect(AsyncWebServerRequest *request) { delete request; } +///////////////////////////////////////////////// + void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request) { for (const auto& r : _rewrites) @@ -137,6 +171,8 @@ void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request) } } +///////////////////////////////////////////////// + void AsyncWebServer::_attachHandler(AsyncWebServerRequest *request) { for (const auto& h : _handlers) @@ -144,17 +180,17 @@ void AsyncWebServer::_attachHandler(AsyncWebServerRequest *request) if (h->filter(request) && h->canHandle(request)) { request->setHandler(h); + return; } } request->addInterestingHeader("ANY"); - // KH, fix crashing issue from v1.2.0, for Arduino-mbed core v2.6.1 - //request->setHandler(_catchAllHandler); request->setHandler(NULL); } +///////////////////////////////////////////////// AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload, ArBodyHandlerFunction onBody) @@ -171,6 +207,8 @@ AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodCom return *handler; } +///////////////////////////////////////////////// + AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest, ArUploadHandlerFunction onUpload) { AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); @@ -183,6 +221,8 @@ AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodCom return *handler; } +///////////////////////////////////////////////// + AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodComposite method, ArRequestHandlerFunction onRequest) { AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); @@ -194,6 +234,8 @@ AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, WebRequestMethodCom return *handler; } +///////////////////////////////////////////////// + AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, ArRequestHandlerFunction onRequest) { AsyncCallbackWebHandler* handler = new AsyncCallbackWebHandler(); @@ -204,16 +246,22 @@ AsyncCallbackWebHandler& AsyncWebServer::on(const char* uri, ArRequestHandlerFun return *handler; } +///////////////////////////////////////////////// + void AsyncWebServer::onNotFound(ArRequestHandlerFunction fn) { _catchAllHandler->onRequest(fn); } +///////////////////////////////////////////////// + void AsyncWebServer::onRequestBody(ArBodyHandlerFunction fn) { _catchAllHandler->onBody(fn); } +///////////////////////////////////////////////// + void AsyncWebServer::reset() { _rewrites.free(); @@ -227,4 +275,6 @@ void AsyncWebServer::reset() } } +///////////////////////////////////////////////// + diff --git a/src/AsyncWebServer_RP2040W.h b/src/AsyncWebServer_RP2040W.h index c1d8e41..e696937 100644 --- a/src/AsyncWebServer_RP2040W.h +++ b/src/AsyncWebServer_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #ifndef _RP2040W_ASYNC_WEBSERVER_H_ @@ -30,18 +31,24 @@ #endif -#define ASYNC_WEBSERVER_RP2040W_VERSION "AsyncWebServer_RP2040W v1.0.3" +///////////////////////////////////////////////// + +#define ASYNC_WEBSERVER_RP2040W_VERSION "AsyncWebServer_RP2040W v1.1.0" #define ASYNC_WEBSERVER_RP2040W_VERSION_MAJOR 1 -#define ASYNC_WEBSERVER_RP2040W_VERSION_MINOR 0 -#define ASYNC_WEBSERVER_RP2040W_VERSION_PATCH 3 +#define ASYNC_WEBSERVER_RP2040W_VERSION_MINOR 1 +#define ASYNC_WEBSERVER_RP2040W_VERSION_PATCH 0 + +#define ASYNC_WEBSERVER_RP2040W_VERSION_INT 1001000 -#define ASYNC_WEBSERVER_RP2040W_VERSION_INT 1000003 +///////////////////////////////////////////////// #ifndef RP2040W_AWS_UNUSED #define RP2040W_AWS_UNUSED(x) (void)(x) #endif +///////////////////////////////////////////////// + #include "Arduino.h" #include @@ -61,6 +68,8 @@ static const String SharedEmptyString = String(); +///////////////////////////////////////////////// + class AsyncWebServer; class AsyncWebServerRequest; class AsyncWebServerResponse; @@ -72,6 +81,8 @@ class AsyncStaticWebHandler; class AsyncCallbackWebHandler; class AsyncResponseStream; +///////////////////////////////////////////////// + #ifndef WEBSERVER_H typedef enum { @@ -92,6 +103,8 @@ class AsyncResponseStream; typedef uint8_t WebRequestMethodComposite; typedef std::function ArDisconnectHandler; +///////////////////////////////////////////////// + /* PARAMETER :: Chainable object to hold GET/POST and FILE parameters * */ @@ -135,6 +148,8 @@ class AsyncWebParameter } }; +///////////////////////////////////////////////// + /* HEADER :: Chainable object to hold the headers * */ @@ -180,6 +195,8 @@ class AsyncWebHeader } }; +///////////////////////////////////////////////// + /* REQUEST :: Each incoming Client is wrapped inside a Request and both live together until disconnect * */ @@ -189,6 +206,8 @@ typedef enum { RCT_NOT_USED = -1, RCT_DEFAULT = 0, RCT_HTTP, RCT_WS, RCT_EVENT, typedef std::function AwsResponseFiller; typedef std::function AwsTemplateProcessor; +///////////////////////////////////////////////// + class AsyncWebServerRequest { friend class AsyncWebServer; @@ -379,6 +398,8 @@ class AsyncWebServerRequest String urlDecode(const String& text) const; }; +///////////////////////////////////////////////// + /* FILTER :: Callback to filter AsyncWebRewrite and AsyncWebHandler (done by the Server) * */ @@ -389,6 +410,8 @@ bool ON_STA_FILTER(AsyncWebServerRequest *request); bool ON_AP_FILTER(AsyncWebServerRequest *request); +///////////////////////////////////////////////// + /* REWRITE :: One instance can be handle any Request (done by the Server) * */ @@ -447,6 +470,8 @@ class AsyncWebRewrite } }; +///////////////////////////////////////////////// + /* HANDLER :: One instance can be attached to any Request (done by the Server) * */ @@ -496,6 +521,8 @@ class AsyncWebHandler } }; +///////////////////////////////////////////////// + /* RESPONSE :: One instance is created for each Request (attached by the Handler) * */ @@ -537,6 +564,8 @@ class AsyncWebServerResponse virtual size_t _ack(AsyncWebServerRequest *request, size_t len, uint32_t time); }; +///////////////////////////////////////////////// + /* SERVER :: One instance * */ @@ -545,6 +574,8 @@ typedef std::function ArRequestHandlerFunc typedef std::function ArUploadHandlerFunction; typedef std::function ArBodyHandlerFunction; +///////////////////////////////////////////////// + class AsyncWebServer { protected: @@ -587,6 +618,8 @@ class AsyncWebServer void _rewriteRequest(AsyncWebServerRequest *request); }; +///////////////////////////////////////////////// + class DefaultHeaders { using headers_t = LinkedList; @@ -627,7 +660,7 @@ class DefaultHeaders } }; - +///////////////////////////////////////////////// #include "AsyncWebResponseImpl_RP2040W.h" #include "AsyncWebHandlerImpl_RP2040W.h" diff --git a/src/AsyncWebServer_RP2040W_Debug.h b/src/AsyncWebServer_RP2040W_Debug.h index f725c45..d67770f 100644 --- a/src/AsyncWebServer_RP2040W_Debug.h +++ b/src/AsyncWebServer_RP2040W_Debug.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncWebSocket_RP2040W.cpp b/src/AsyncWebSocket_RP2040W.cpp index 2789a95..84d0f8b 100644 --- a/src/AsyncWebSocket_RP2040W.cpp +++ b/src/AsyncWebSocket_RP2040W.cpp @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #include "Arduino.h" diff --git a/src/AsyncWebSocket_RP2040W.h b/src/AsyncWebSocket_RP2040W.h index e6baa54..1126c33 100644 --- a/src/AsyncWebSocket_RP2040W.h +++ b/src/AsyncWebSocket_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/AsyncWebSynchronization_RP2040W.h b/src/AsyncWebSynchronization_RP2040W.h index ce8253a..07aa0da 100644 --- a/src/AsyncWebSynchronization_RP2040W.h +++ b/src/AsyncWebSynchronization_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/StringArray_RP2040W.h b/src/StringArray_RP2040W.h index 25a5731..bb0d805 100644 --- a/src/StringArray_RP2040W.h +++ b/src/StringArray_RP2040W.h @@ -9,7 +9,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -17,6 +17,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/libb64/cdecode.c b/src/libb64/cdecode.c index 2e6d92f..d5b013e 100644 --- a/src/libb64/cdecode.c +++ b/src/libb64/cdecode.c @@ -12,7 +12,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -20,6 +20,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #include "cdecode.h" diff --git a/src/libb64/cdecode.h b/src/libb64/cdecode.h index cf524be..f61d174 100644 --- a/src/libb64/cdecode.h +++ b/src/libb64/cdecode.h @@ -12,7 +12,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -20,6 +20,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once diff --git a/src/libb64/cencode.c b/src/libb64/cencode.c index f0a1f41..0b24552 100644 --- a/src/libb64/cencode.c +++ b/src/libb64/cencode.c @@ -12,7 +12,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -20,6 +20,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #include "cencode.h" diff --git a/src/libb64/cencode.h b/src/libb64/cencode.h index 0790670..c2e5a0a 100644 --- a/src/libb64/cencode.h +++ b/src/libb64/cencode.h @@ -12,7 +12,7 @@ Built by Khoi Hoang https://github.com/khoih-prog/AsyncWebServer_RP2040W Licensed under GPLv3 license - Version: 1.0.3 + Version: 1.1.0 Version Modified By Date Comments ------- ----------- ---------- ----------- @@ -20,6 +20,7 @@ 1.0.1 K Hoang 15/08/2022 Fix bug in examples, `library.json` 1.0.2 K Hoang 15/08/2022 Fix LED bug in examples 1.0.3 K Hoang 22/09/2022 To display country-code and tempo method to modify in arduino-pico core + 1.1.0 K Hoang 25/09/2022 Fix issue with slow browsers or network *****************************************************************************************************************************/ #pragma once