Skip to content

Commit

Permalink
Fix reuse for different URIs in HTTPClient::begin (esp8266#8466)
Browse files Browse the repository at this point in the history
  • Loading branch information
paulocsanz authored and hasenradball committed Nov 18, 2024
1 parent 666dae2 commit c58e5e9
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,16 @@ bool HTTPClient::begin(WiFiClient &client, const String& url) {
*/
bool HTTPClient::begin(WiFiClient &client, const String& host, uint16_t port, const String& uri, bool https)
{
// Disconnect when reusing HTTPClient to talk to a different host
if (!_host.isEmpty() && _host != host) {
_canReuse = false;
disconnect(true);
}

_client = client.clone();

clear();
clear();

_host = host;
_port = port;
_uri = uri;
Expand Down Expand Up @@ -155,6 +162,8 @@ bool HTTPClient::beginInternal(const String& __url, const char* expectedProtocol
_base64Authorization = base64::encode(auth, false /* doNewLines */);
}

const String oldHost = _host;

// get port
index = host.indexOf(':');
if(index >= 0) {
Expand All @@ -164,6 +173,13 @@ bool HTTPClient::beginInternal(const String& __url, const char* expectedProtocol
} else {
_host = host;
}

// Disconnect when reusing HTTPClient to talk to a different host
if (!oldHost.isEmpty() && _host != oldHost) {
_canReuse = false;
disconnect(true);
}

_uri = url;

if ( expectedProtocol != nullptr && _protocol != expectedProtocol) {
Expand Down

0 comments on commit c58e5e9

Please sign in to comment.