diff --git a/cores/esp8266/Esp-version.cpp b/cores/esp8266/Esp-version.cpp index bdc6108642..f92aa2a54f 100644 --- a/cores/esp8266/Esp-version.cpp +++ b/cores/esp8266/Esp-version.cpp @@ -28,29 +28,41 @@ #define STRHELPER(x) #x #define STR(x) STRHELPER(x) // stringifier -static const char arduino_esp8266_git_ver [] PROGMEM = STR(ARDUINO_ESP8266_GIT_DESC); +static const char arduino_esp8266_git_ver [] PROGMEM = "/Core:" STR(ARDUINO_ESP8266_GIT_DESC) "="; +#if LWIP_VERSION_MAJOR > 1 +#if LWIP_IPV6 +static const char lwip_version [] PROGMEM = "/lwIP:IPv6+" LWIP_HASH_STR; +#else +static const char lwip_version [] PROGMEM = "/lwIP:" LWIP_HASH_STR; +#endif +#endif static const char bearssl_version [] PROGMEM = "/BearSSL:" STR(BEARSSL_GIT); -String EspClass::getFullVersion() -{ - return String(F("SDK:")) + system_get_sdk_version() - + F("/Core:") + FPSTR(arduino_esp8266_git_ver) - + F("=") + String(esp8266::coreVersionNumeric()) +String EspClass::getFullVersion() { + String s(F("SDK:")); + s.reserve(127); + + s += system_get_sdk_version(); + s += FPSTR(arduino_esp8266_git_ver); + s += String(esp8266::coreVersionNumeric()); #if LWIP_VERSION_MAJOR == 1 - + F("/lwIP:") + String(LWIP_VERSION_MAJOR) + "." + String(LWIP_VERSION_MINOR) + "." + String(LWIP_VERSION_REVISION) + s += F("/lwIP:"); + s += LWIP_VERSION_MAJOR; + s += '.'; + s += LWIP_VERSION_MINOR; + s += '.'; + s += LWIP_VERSION_REVISION; #if LWIP_VERSION_IS_DEVELOPMENT - + F("-dev") + s += F("-dev"); #endif #if LWIP_VERSION_IS_RC - + F("rc") + String(LWIP_VERSION_RC) + s += F("rc"); + s += String(LWIP_VERSION_RC); #endif #else // LWIP_VERSION_MAJOR != 1 - + F("/lwIP:") -#if LWIP_IPV6 - + F("IPv6+") -#endif // LWIP_IPV6 - + F(LWIP_HASH_STR) + s += FPSTR(lwip_version); #endif // LWIP_VERSION_MAJOR != 1 - + FPSTR(bearssl_version) - ; + s += FPSTR(bearssl_version); + + return s; }