diff --git a/src/AsyncEventSource.cpp b/src/AsyncEventSource.cpp index 2d81dbc..1c0ff2a 100644 --- a/src/AsyncEventSource.cpp +++ b/src/AsyncEventSource.cpp @@ -386,10 +386,7 @@ size_t AsyncEventSource::count() const { } bool AsyncEventSource::canHandle(AsyncWebServerRequest* request) const { - if (request->method() != HTTP_GET || !request->url().equals(_url)) { - return false; - } - return true; + return request->isSSE() && request->url().equals(_url); } void AsyncEventSource::handleRequest(AsyncWebServerRequest* request) { diff --git a/src/AsyncJson.cpp b/src/AsyncJson.cpp index ee69f91..4295653 100644 --- a/src/AsyncJson.cpp +++ b/src/AsyncJson.cpp @@ -90,17 +90,13 @@ AsyncCallbackJsonWebHandler::AsyncCallbackJsonWebHandler(const String& uri, ArJs #endif bool AsyncCallbackJsonWebHandler::canHandle(AsyncWebServerRequest* request) const { - if (!_onRequest) - return false; - - WebRequestMethodComposite request_method = request->method(); - if (!(_method & request_method)) + if (!_onRequest || !request->isHTTP() || !(_method & request->method())) return false; if (_uri.length() && (_uri != request->url() && !request->url().startsWith(_uri + "/"))) return false; - if (request_method != HTTP_GET && !request->contentType().equalsIgnoreCase(asyncsrv::T_application_json)) + if (request->method() != HTTP_GET && !request->contentType().equalsIgnoreCase(asyncsrv::T_application_json)) return false; return true; diff --git a/src/AsyncMessagePack.cpp b/src/AsyncMessagePack.cpp index db995ed..85af671 100644 --- a/src/AsyncMessagePack.cpp +++ b/src/AsyncMessagePack.cpp @@ -45,17 +45,13 @@ AsyncCallbackMessagePackWebHandler::AsyncCallbackMessagePackWebHandler(const Str #endif bool AsyncCallbackMessagePackWebHandler::canHandle(AsyncWebServerRequest* request) const { - if (!_onRequest) - return false; - - WebRequestMethodComposite request_method = request->method(); - if (!(_method & request_method)) + if (!_onRequest || !request->isHTTP() || !(_method & request->method())) return false; if (_uri.length() && (_uri != request->url() && !request->url().startsWith(_uri + "/"))) return false; - if (request_method != HTTP_GET && !request->contentType().equalsIgnoreCase(asyncsrv::T_application_msgpack)) + if (request->method() != HTTP_GET && !request->contentType().equalsIgnoreCase(asyncsrv::T_application_msgpack)) return false; return true; diff --git a/src/AsyncWebSocket.cpp b/src/AsyncWebSocket.cpp index 0bb40e4..24db052 100644 --- a/src/AsyncWebSocket.cpp +++ b/src/AsyncWebSocket.cpp @@ -1122,13 +1122,7 @@ const char __WS_STR_UUID[] PROGMEM = {"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"}; #define WS_STR_UUID FPSTR(__WS_STR_UUID) bool AsyncWebSocket::canHandle(AsyncWebServerRequest* request) const { - if (!_enabled) - return false; - - if (request->method() != HTTP_GET || !request->url().equals(_url) || !request->isExpectedRequestedConnType(RCT_WS)) - return false; - - return true; + return _enabled && request->isWebSocketUpgrade() && request->url().equals(_url); } void AsyncWebSocket::handleRequest(AsyncWebServerRequest* request) { diff --git a/src/WebHandlers.cpp b/src/WebHandlers.cpp index 0e18ed0..a118318 100644 --- a/src/WebHandlers.cpp +++ b/src/WebHandlers.cpp @@ -106,10 +106,7 @@ AsyncStaticWebHandler& AsyncStaticWebHandler::setLastModified() { } #endif bool AsyncStaticWebHandler::canHandle(AsyncWebServerRequest* request) const { - if (request->method() != HTTP_GET || !request->url().startsWith(_uri) || !request->isExpectedRequestedConnType(RCT_DEFAULT, RCT_HTTP)) { - return false; - } - return _getFile(request); + return request->isHTTP() && request->method() == HTTP_GET && request->url().startsWith(_uri) && _getFile(request); } bool AsyncStaticWebHandler::_getFile(AsyncWebServerRequest* request) const { @@ -253,10 +250,7 @@ void AsyncCallbackWebHandler::setUri(const String& uri) { } bool AsyncCallbackWebHandler::canHandle(AsyncWebServerRequest* request) const { - if (!_onRequest) - return false; - - if (!(_method & request->method())) + if (!_onRequest || !request->isHTTP() || !(_method & request->method())) return false; #ifdef ASYNCWEBSERVER_REGEX