1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-13 13:01:55 +03:00

Improvements to the existing ETag implementation (#8227)

* WebServer eTag implementation improvements
This commit is contained in:
Matthias Hertel
2021-09-29 11:58:40 +02:00
committed by GitHub
parent 193043d19b
commit 3f4bcbe483
10 changed files with 708 additions and 15 deletions

View File

@ -68,6 +68,13 @@ template <typename ServerType>
void ESP8266WebServerTemplate<ServerType>::enableCORS(bool enable) {
_corsEnabled = enable;
}
template <typename ServerType>
void ESP8266WebServerTemplate<ServerType>::enableETag(bool enable, ETagFunction fn) {
_eTagEnabled = enable;
_eTagFunction = fn;
}
template <typename ServerType>
void ESP8266WebServerTemplate<ServerType>::begin() {
close();
@ -264,10 +271,11 @@ void ESP8266WebServerTemplate<ServerType>::serveStatic(const char* uri, FS& fs,
file.close();
}
if(is_file)
if(is_file) {
_addRequestHandler(new StaticFileRequestHandler<ServerType>(fs, path, uri, cache_header));
else
} else {
_addRequestHandler(new StaticDirectoryRequestHandler<ServerType>(fs, path, uri, cache_header));
}
}
template <typename ServerType>
@ -436,6 +444,7 @@ void ESP8266WebServerTemplate<ServerType>::_prepareHeader(String& response, int
sendHeader(String(F("Keep-Alive")), String(F("timeout=")) + HTTP_MAX_CLOSE_WAIT);
}
response += _responseHeaders;
response += "\r\n";
_responseHeaders = "";