From cd0bcafe0bb00e06df3b0add329baf89a6dcf6f6 Mon Sep 17 00:00:00 2001 From: hhvrc Date: Mon, 3 Feb 2025 13:27:05 +0100 Subject: [PATCH] Get it compiling --- .../AsyncWebServer/HttpRequestBodyParser.h | 6 ++-- .../AsyncWebServer/HttpRequestBodyParser.cpp | 2 ++ src/external/AsyncWebServer/WebHandlers.cpp | 2 ++ src/external/AsyncWebServer/WebRequest.cpp | 36 +++++++------------ src/external/AsyncWebServer/WebResponses.cpp | 2 ++ src/external/AsyncWebServer/WebServer.cpp | 2 ++ 6 files changed, 24 insertions(+), 26 deletions(-) diff --git a/include/external/AsyncWebServer/HttpRequestBodyParser.h b/include/external/AsyncWebServer/HttpRequestBodyParser.h index 1d7540f8..e66b1b0e 100644 --- a/include/external/AsyncWebServer/HttpRequestBodyParser.h +++ b/include/external/AsyncWebServer/HttpRequestBodyParser.h @@ -22,8 +22,8 @@ class HttpRequestBodyParser { HttpMethod method() const { return _method; } HttpVersion version() const { return _version; } - HttpVersion versionMajor() const { return _version.major; } - HttpVersion versionMinor() const { return _version.minor; } + uint8_t versionMajor() const { return _version.major; } + uint8_t versionMinor() const { return _version.minor; } std::string_view url() const { return _url; } const std::map& queryParams() const { return _queryParams; } const std::map& headers() const { return _headers; } @@ -39,4 +39,4 @@ class HttpRequestBodyParser { std::string _url; std::map _queryParams; std::map _headers; -} +}; diff --git a/src/external/AsyncWebServer/HttpRequestBodyParser.cpp b/src/external/AsyncWebServer/HttpRequestBodyParser.cpp index bbaeaa4c..ceb464ae 100644 --- a/src/external/AsyncWebServer/HttpRequestBodyParser.cpp +++ b/src/external/AsyncWebServer/HttpRequestBodyParser.cpp @@ -1,3 +1,5 @@ +#include + #include "external/AsyncWebServer/HttpRequestBodyParser.h" #include "Convert.h" diff --git a/src/external/AsyncWebServer/WebHandlers.cpp b/src/external/AsyncWebServer/WebHandlers.cpp index 786513a4..dd45ab2e 100644 --- a/src/external/AsyncWebServer/WebHandlers.cpp +++ b/src/external/AsyncWebServer/WebHandlers.cpp @@ -18,6 +18,8 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "external/AsyncWebServer/ESPAsyncWebServer.h" #include "external/AsyncWebServer/WebHandlerImpl.h" diff --git a/src/external/AsyncWebServer/WebRequest.cpp b/src/external/AsyncWebServer/WebRequest.cpp index 67e56aee..bf6db8f6 100644 --- a/src/external/AsyncWebServer/WebRequest.cpp +++ b/src/external/AsyncWebServer/WebRequest.cpp @@ -18,6 +18,8 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "external/AsyncWebServer/ESPAsyncWebServer.h" #include "external/AsyncWebServer/WebResponseImpl.h" @@ -129,8 +131,9 @@ AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer* s, AsyncClient* c) , _server(s) , _handler(NULL) , _response(NULL) + , _onDisconnectfn(nullptr) , _temp() - , _parseState(0) + , _parseState((HttpParseState)0) , _version {} , _method(HTTP_ANY) , _url() @@ -156,7 +159,7 @@ AsyncWebServerRequest::AsyncWebServerRequest(AsyncWebServer* s, AsyncClient* c) , _itemFilename() , _itemType() , _itemValue() - , _itemBuffer(0) + , _itemBuffer(nullptr) , _itemBufferIndex(0) , _itemIsFile(false) , _tempObject(NULL) @@ -442,7 +445,7 @@ bool AsyncWebServerRequest::_parseReqHeader(std::string_view header) _contentType = OpenShock::StringBeforeFirst(pair.second, ';'); if (OpenShock::StringHasPrefix(_contentType, "multipart/"sv)) { _boundary = OpenShock::StringAfterFirst(pair.second, '='); - _boundary.replace("\"", ""); // TODO: Optimize this by merging with string_view assignment + _boundary.erase(std::remove(_boundary.begin(), _boundary.end(), '"'), _boundary.end()); // TODO: Optimize this by merging with string_view assignment _isMultipart = true; } } else if (OpenShock::StringIEquals(pair.first, "Content-Length"sv)) { @@ -594,28 +597,15 @@ void AsyncWebServerRequest::_parseMultipartPostByte(uint8_t data, bool last) } else { std::string_view key = view.substr(0, equalsPos); std::string_view value = view.substr(equalsPos + 1); + + if (key == "name"sv) { + _itemName = value; + } else if (key == "filename"sv) { + _itemFilename = value; + _itemIsFile = true; + } } } - _temp = _temp.substring(_temp.indexOf(';') + 2); - while (_temp.indexOf(';') > 0) { - std::string name = _temp.substring(0, _temp.indexOf('=')); - std::string nameVal = _temp.substring(_temp.indexOf('=') + 2, _temp.indexOf(';') - 1); - if (name == "name") { - _itemName = nameVal; - } else if (name == "filename") { - _itemFilename = nameVal; - _itemIsFile = true; - } - _temp = _temp.substring(_temp.indexOf(';') + 2); - } - std::string name = _temp.substring(0, _temp.indexOf('=')); - std::string nameVal = _temp.substring(_temp.indexOf('=') + 2, _temp.length() - 1); - if (name == "name") { - _itemName = nameVal; - } else if (name == "filename") { - _itemFilename = nameVal; - _itemIsFile = true; - } } _temp = std::string(); } else { diff --git a/src/external/AsyncWebServer/WebResponses.cpp b/src/external/AsyncWebServer/WebResponses.cpp index 78d3ca09..b911b900 100644 --- a/src/external/AsyncWebServer/WebResponses.cpp +++ b/src/external/AsyncWebServer/WebResponses.cpp @@ -18,6 +18,8 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "cbuf.h" #include "external/AsyncWebServer/ESPAsyncWebServer.h" #include "external/AsyncWebServer/WebResponseImpl.h" diff --git a/src/external/AsyncWebServer/WebServer.cpp b/src/external/AsyncWebServer/WebServer.cpp index d380d1ee..e96b31b7 100644 --- a/src/external/AsyncWebServer/WebServer.cpp +++ b/src/external/AsyncWebServer/WebServer.cpp @@ -18,6 +18,8 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include "external/AsyncWebServer/ESPAsyncWebServer.h" #include "external/AsyncWebServer/WebHandlerImpl.h"