diff --git a/libraries/WebServer/src/WebServer.cpp b/libraries/WebServer/src/WebServer.cpp index e4ffdf54..47e25239 100644 --- a/libraries/WebServer/src/WebServer.cpp +++ b/libraries/WebServer/src/WebServer.cpp @@ -463,20 +463,23 @@ void WebServer::send(int code, const String& content_type, const String& content } void WebServer::sendContent(const String& content) { + sendContent(content.c_str(), content.length()); +} + +void WebServer::sendContent(const char* content, size_t contentLength) { const char * footer = "\r\n"; - size_t len = content.length(); if(_chunked) { char * chunkSize = (char *)malloc(11); if(chunkSize){ - sprintf(chunkSize, "%x%s", len, footer); + sprintf(chunkSize, "%x%s", contentLength, footer); _currentClientWrite(chunkSize, strlen(chunkSize)); free(chunkSize); } } - _currentClientWrite(content.c_str(), len); + _currentClientWrite(content, contentLength); if(_chunked){ _currentClient.write(footer, 2); - if (len == 0) { + if (contentLength == 0) { _chunked = false; } } diff --git a/libraries/WebServer/src/WebServer.h b/libraries/WebServer/src/WebServer.h index 76609d6f..c169da82 100644 --- a/libraries/WebServer/src/WebServer.h +++ b/libraries/WebServer/src/WebServer.h @@ -130,6 +130,7 @@ public: void setContentLength(const size_t contentLength); void sendHeader(const String& name, const String& value, bool first = false); void sendContent(const String& content); + void sendContent(const char* content, size_t contentLength); void sendContent_P(PGM_P content); void sendContent_P(PGM_P content, size_t size);