From e0691931bf424bfc707c214f6417c34ba9e1afc2 Mon Sep 17 00:00:00 2001 From: Niklas Mollenhauer Date: Thu, 20 Aug 2020 23:00:34 +0200 Subject: [PATCH] Add sendContent overload that takes a const char* and a length --- libraries/WebServer/src/WebServer.cpp | 11 +++++++---- libraries/WebServer/src/WebServer.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libraries/WebServer/src/WebServer.cpp b/libraries/WebServer/src/WebServer.cpp index e686f2fcd8c..65733a25bac 100644 --- a/libraries/WebServer/src/WebServer.cpp +++ b/libraries/WebServer/src/WebServer.cpp @@ -454,20 +454,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 a0d3a1c1cfe..066bcec69c9 100644 --- a/libraries/WebServer/src/WebServer.h +++ b/libraries/WebServer/src/WebServer.h @@ -129,6 +129,7 @@ class WebServer 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);