diff --git a/cores/esp8266/IPAddress.cpp b/cores/esp8266/IPAddress.cpp index dff91d8af..834889749 100644 --- a/cores/esp8266/IPAddress.cpp +++ b/cores/esp8266/IPAddress.cpp @@ -64,17 +64,10 @@ size_t IPAddress::printTo(Print& p) const { return n; } -char *IPAddress::toCharArray() +String IPAddress::toString() { - static char szRet[20]; - String str = String(_address.bytes[0]); - str += "."; - str += String(_address.bytes[1]); - str += "."; - str += String(_address.bytes[2]); - str += "."; - str += String(_address.bytes[3]); - str.toCharArray(szRet, 20); - return szRet; + char szRet[16]; + sprintf(szRet,"%u.%u.%u.%u", _address.bytes[0], _address.bytes[1], _address.bytes[2], _address.bytes[3]); + return String(szRet); } diff --git a/cores/esp8266/IPAddress.h b/cores/esp8266/IPAddress.h index 21e775ef5..b563c7044 100644 --- a/cores/esp8266/IPAddress.h +++ b/cores/esp8266/IPAddress.h @@ -21,6 +21,7 @@ #define IPAddress_h #include +#include #include // A class to make it easier to handle and pass around IP addresses @@ -70,7 +71,7 @@ class IPAddress: public Printable { IPAddress& operator=(uint32_t address); virtual size_t printTo(Print& p) const; - char * toCharArray(); + String toString(); friend class EthernetClass; friend class UDP;