From 058ce7c08e3e9aafe36fbf3804d9f87199f99ec2 Mon Sep 17 00:00:00 2001 From: Paulo Cabral Sanz Date: Sat, 4 Sep 2021 14:17:00 -0300 Subject: [PATCH] Allow control over HTTPClient authorization String allocation (#8225) --- .../ESP8266HTTPClient/src/ESP8266HTTPClient.cpp | 17 +++++++++++++---- .../ESP8266HTTPClient/src/ESP8266HTTPClient.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp index c2ebeb2de..28ba736d6 100644 --- a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp +++ b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp @@ -276,17 +276,26 @@ void HTTPClient::setAuthorization(const char * user, const char * password) } /** - * set the Authorizatio for the http request + * set the Authorization for the http request * @param auth const char * base64 */ void HTTPClient::setAuthorization(const char * auth) { - if(auth) { - _base64Authorization = auth; - _base64Authorization.replace(String('\n'), emptyString); + if (auth) { + setAuthorization(String(auth)); } } +/** + * set the Authorization for the http request + * @param auth String base64 + */ +void HTTPClient::setAuthorization(String auth) +{ + _base64Authorization = std::move(auth); + _base64Authorization.replace(String('\n'), emptyString); +} + /** * set the timeout for the TCP connection * @param timeout unsigned int diff --git a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h index 9c92d9318..248aa59b4 100644 --- a/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h +++ b/libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.h @@ -176,6 +176,7 @@ public: void setUserAgent(const String& userAgent); void setAuthorization(const char * user, const char * password); void setAuthorization(const char * auth); + void setAuthorization(String auth); void setTimeout(uint16_t timeout); // Redirections