From 9a5be71920c7be3c8d381b9d0beb0f7f08511b17 Mon Sep 17 00:00:00 2001 From: WallyCZ Date: Sat, 22 Jun 2019 20:27:57 +0200 Subject: [PATCH] Allow override rewrite match (#391) --- src/ESPAsyncWebServer.h | 2 ++ src/WebServer.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ESPAsyncWebServer.h b/src/ESPAsyncWebServer.h index 1e77ec6..cfe1fa7 100644 --- a/src/ESPAsyncWebServer.h +++ b/src/ESPAsyncWebServer.h @@ -303,11 +303,13 @@ class AsyncWebRewrite { _toUrl = _toUrl.substring(0, index); } } + virtual ~AsyncWebRewrite(){} AsyncWebRewrite& setFilter(ArRequestFilterFunction fn) { _filter = fn; return *this; } bool filter(AsyncWebServerRequest *request) const { return _filter == NULL || _filter(request); } const String& from(void) const { return _from; } const String& toUrl(void) const { return _toUrl; } const String& params(void) const { return _params; } + virtual bool match(AsyncWebServerRequest *request) { return from() == request->url() && filter(request); } }; /* diff --git a/src/WebServer.cpp b/src/WebServer.cpp index 3774634..95c2dd6 100644 --- a/src/WebServer.cpp +++ b/src/WebServer.cpp @@ -104,7 +104,7 @@ void AsyncWebServer::_handleDisconnect(AsyncWebServerRequest *request){ void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request){ for(const auto& r: _rewrites){ - if (r->from() == request->_url && r->filter(request)){ + if (r->match(request)){ request->_url = r->toUrl(); request->_addGetParams(r->params()); }