From 2528013c5dc1ce7703bf211b41a3aefcd6afe0e5 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 11:37:38 +0100 Subject: [PATCH] small addons (#5847) * make (static) ESP8266WebServer::responseCodeToString visible and usable * esp8266:coreVersionNumeric(): add a define and comment-example to check on its usability --- cores/esp8266/core_esp8266_version.h | 16 ++++++++++++++++ .../ESP8266WebServer/src/ESP8266WebServer.cpp | 4 ++-- .../ESP8266WebServer/src/ESP8266WebServer.h | 3 ++- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/cores/esp8266/core_esp8266_version.h b/cores/esp8266/core_esp8266_version.h index 28d4af609..856d9f8f4 100644 --- a/cores/esp8266/core_esp8266_version.h +++ b/cores/esp8266/core_esp8266_version.h @@ -22,6 +22,8 @@ #ifndef __CORE_ESP8266_VERSION_H #define __CORE_ESP8266_VERSION_H +#define HAS_ESP8266_VERSION_NUMERIC 1 + #include #define __STRHELPER(x) #x @@ -52,6 +54,20 @@ extern "C++" // esp8266CoreVersionSubRevision() is 3 Numeric is: 20499903 // case 2.5.0: // esp8266CoreVersionSubRevision() is 0 Numeric is: 20500000 +// +// Using esp8266::coreVersionNumeric() in a portable way: +// +// #if HAS_ESP8266_VERSION_NUMERIC +// if (esp8266::coreVersionNumeric() >= 20500042) +// { +// // modern api can be used +// } +// else +// #endif +// { +// // code using older api +// // (will not be compiled in when newer api is usable) +// } namespace conststr { diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index 52b58904b..2aac60808 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp @@ -371,7 +371,7 @@ void ESP8266WebServer::_prepareHeader(String& response, int code, const char* co response = String(F("HTTP/1.")) + String(_currentVersion) + ' '; response += String(code); response += ' '; - response += _responseCodeToString(code); + response += responseCodeToString(code); response += "\r\n"; using namespace mime; @@ -625,7 +625,7 @@ void ESP8266WebServer::_finalizeResponse() { } } -const String ESP8266WebServer::_responseCodeToString(int code) { +const String ESP8266WebServer::responseCodeToString(const int code) { switch (code) { case 100: return F("Continue"); case 101: return F("Switching Protocols"); diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.h b/libraries/ESP8266WebServer/src/ESP8266WebServer.h index a4f3bf284..10e9a5666 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.h @@ -135,6 +135,8 @@ public: return _currentClient.write(file); } + static const String responseCodeToString(const int code); + protected: virtual size_t _currentClientWrite(const char* b, size_t l) { return _currentClient.write( b, l ); } virtual size_t _currentClientWrite_P(PGM_P b, size_t l) { return _currentClient.write_P( b, l ); } @@ -144,7 +146,6 @@ protected: bool _parseRequest(WiFiClient& client); void _parseArguments(const String& data); int _parseArgumentsPrivate(const String& data, std::function handler); - static const String _responseCodeToString(int code); bool _parseForm(WiFiClient& client, const String& boundary, uint32_t len); bool _parseFormUploadAborted(); void _uploadWriteByte(uint8_t b);