From de6f90c30386f639d1ab93c8d7c028a9d2ea24ab Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 02:34:04 +0100 Subject: [PATCH 1/6] mdns: enable class definition even without global instance --- libraries/ESP8266mDNS/src/ESP8266mDNS.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/ESP8266mDNS/src/ESP8266mDNS.h b/libraries/ESP8266mDNS/src/ESP8266mDNS.h index 2987f655c2..f97974ed4d 100644 --- a/libraries/ESP8266mDNS/src/ESP8266mDNS.h +++ b/libraries/ESP8266mDNS/src/ESP8266mDNS.h @@ -45,12 +45,11 @@ #include "ESP8266mDNS_Legacy.h" #include "LEAmDNS.h" +// Maps the implementation to use to the global namespace type +//using MDNSResponder = Legacy_MDNSResponder::MDNSResponder; //legacy +using MDNSResponder = esp8266::MDNSImplementation::MDNSResponder; //new #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_MDNS) - // Maps the implementation to use to the global namespace type - //using MDNSResponder = Legacy_MDNSResponder::MDNSResponder; //legacy - using MDNSResponder = esp8266::MDNSImplementation::MDNSResponder; //new - extern MDNSResponder MDNS; #endif From eb790172a6d57ffbf51ff3a1ca2a6ef53f68a07a Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 02:35:04 +0100 Subject: [PATCH 2/6] make (static) ESP8266WebServer::responseCodeToString visible and usable --- libraries/ESP8266WebServer/src/ESP8266WebServer.cpp | 4 ++-- libraries/ESP8266WebServer/src/ESP8266WebServer.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index 52b58904b8..d4677b0927 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(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 a4f3bf2840..080e2f4652 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.h @@ -135,6 +135,8 @@ class ESP8266WebServer return _currentClient.write(file); } + static const String responseCodeToString(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 @@ class ESP8266WebServer 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); From 159ad3c0af4ea13a9a6b27fa31a313367323fd36 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 02:37:40 +0100 Subject: [PATCH 3/6] esp8266:coreVersionNumeric(): add a define to check on its usability if (esp8266:coreVersionNumeric() >= 20500042) { // modern api } else { // older api } --- cores/esp8266/core_esp8266_version.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cores/esp8266/core_esp8266_version.h b/cores/esp8266/core_esp8266_version.h index 28d4af6095..c906fcbad4 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 From e2a27e19a2c31a40fa05e2ae9b5673fa223ecff1 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 03:17:49 +0100 Subject: [PATCH 4/6] add const in parameter --- libraries/ESP8266WebServer/src/ESP8266WebServer.cpp | 2 +- libraries/ESP8266WebServer/src/ESP8266WebServer.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index d4677b0927..2aac608083 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp @@ -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 080e2f4652..10e9a5666f 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.h @@ -135,7 +135,7 @@ class ESP8266WebServer return _currentClient.write(file); } - static const String responseCodeToString(int code); + static const String responseCodeToString(const int code); protected: virtual size_t _currentClientWrite(const char* b, size_t l) { return _currentClient.write( b, l ); } From 8f9fc7c3d63806ccb4c16c10fa8fad9385a07126 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 03:23:34 +0100 Subject: [PATCH 5/6] revert mDNS changes --- libraries/ESP8266mDNS/src/ESP8266mDNS.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libraries/ESP8266mDNS/src/ESP8266mDNS.h b/libraries/ESP8266mDNS/src/ESP8266mDNS.h index f97974ed4d..2987f655c2 100644 --- a/libraries/ESP8266mDNS/src/ESP8266mDNS.h +++ b/libraries/ESP8266mDNS/src/ESP8266mDNS.h @@ -45,11 +45,12 @@ #include "ESP8266mDNS_Legacy.h" #include "LEAmDNS.h" -// Maps the implementation to use to the global namespace type -//using MDNSResponder = Legacy_MDNSResponder::MDNSResponder; //legacy -using MDNSResponder = esp8266::MDNSImplementation::MDNSResponder; //new #if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_MDNS) + // Maps the implementation to use to the global namespace type + //using MDNSResponder = Legacy_MDNSResponder::MDNSResponder; //legacy + using MDNSResponder = esp8266::MDNSImplementation::MDNSResponder; //new + extern MDNSResponder MDNS; #endif From 2d410a72e9b5bff4c6bc720da7c5ad5140c52380 Mon Sep 17 00:00:00 2001 From: david gauchard Date: Thu, 7 Mar 2019 03:31:21 +0100 Subject: [PATCH 6/6] comments for HAS_ESP8266_VERSION_NUMERIC & coreVersionNumeric() --- cores/esp8266/core_esp8266_version.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cores/esp8266/core_esp8266_version.h b/cores/esp8266/core_esp8266_version.h index c906fcbad4..856d9f8f43 100644 --- a/cores/esp8266/core_esp8266_version.h +++ b/cores/esp8266/core_esp8266_version.h @@ -54,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 {