forked from me-no-dev/ESPAsyncWebServer
Allow override rewrite match (#391)
This commit is contained in:
@@ -303,11 +303,13 @@ class AsyncWebRewrite {
|
|||||||
_toUrl = _toUrl.substring(0, index);
|
_toUrl = _toUrl.substring(0, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
virtual ~AsyncWebRewrite(){}
|
||||||
AsyncWebRewrite& setFilter(ArRequestFilterFunction fn) { _filter = fn; return *this; }
|
AsyncWebRewrite& setFilter(ArRequestFilterFunction fn) { _filter = fn; return *this; }
|
||||||
bool filter(AsyncWebServerRequest *request) const { return _filter == NULL || _filter(request); }
|
bool filter(AsyncWebServerRequest *request) const { return _filter == NULL || _filter(request); }
|
||||||
const String& from(void) const { return _from; }
|
const String& from(void) const { return _from; }
|
||||||
const String& toUrl(void) const { return _toUrl; }
|
const String& toUrl(void) const { return _toUrl; }
|
||||||
const String& params(void) const { return _params; }
|
const String& params(void) const { return _params; }
|
||||||
|
virtual bool match(AsyncWebServerRequest *request) { return from() == request->url() && filter(request); }
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -104,7 +104,7 @@ void AsyncWebServer::_handleDisconnect(AsyncWebServerRequest *request){
|
|||||||
|
|
||||||
void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request){
|
void AsyncWebServer::_rewriteRequest(AsyncWebServerRequest *request){
|
||||||
for(const auto& r: _rewrites){
|
for(const auto& r: _rewrites){
|
||||||
if (r->from() == request->_url && r->filter(request)){
|
if (r->match(request)){
|
||||||
request->_url = r->toUrl();
|
request->_url = r->toUrl();
|
||||||
request->_addGetParams(r->params());
|
request->_addGetParams(r->params());
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user