Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Commit c73ca0e

Browse files
authored
Merge pull request #260 from firebase/force-reuse
FirebaseHttpClient: add forceReuse
2 parents e6445d1 + df523c0 commit c73ca0e

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

Diff for: src/FirebaseHttpClient_Esp8266.cpp

+21-1
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,32 @@
1515
#define USE_ESP_ARDUINO_CORE_2_0_0
1616
#endif
1717

18+
// Firebase now returns `Connection: close` after REST streaming redirection.
19+
//
20+
// Override the built-in ESP8266HTTPClient to *not* close the
21+
// connection if forceReuse it set to `true`.
22+
class ForceReuseHTTPClient : public HTTPClient {
23+
public:
24+
void end() {
25+
if (_forceReuse) {
26+
_canReuse = true;
27+
}
28+
HTTPClient::end();
29+
}
30+
void forceReuse(bool forceReuse) {
31+
_forceReuse = forceReuse;
32+
}
33+
protected:
34+
bool _forceReuse = false;
35+
};
36+
1837
class FirebaseHttpClientEsp8266 : public FirebaseHttpClient {
1938
public:
2039
FirebaseHttpClientEsp8266() {}
2140

2241
void setReuseConnection(bool reuse) override {
2342
http_.setReuse(reuse);
43+
http_.forceReuse(reuse);
2444
}
2545

2646
void begin(const std::string& url) override {
@@ -64,7 +84,7 @@ class FirebaseHttpClientEsp8266 : public FirebaseHttpClient {
6484
}
6585

6686
private:
67-
HTTPClient http_;
87+
ForceReuseHTTPClient http_;
6888
};
6989

7090
FirebaseHttpClient* FirebaseHttpClient::create() {

0 commit comments

Comments
 (0)