Skip to content

Commit 2b6427f

Browse files
committed
HTTPClient lib - add HTTPCLIENT_NOSECURE build flag
`HTTPCLIENT_NOSECURE` build flag disables TLS support in HTTPClient library by excluding `NetworkClientSecure.h` header. This allows linker to strip down mbedTLS lind and certificates bundle, which in turn reduces firmware image for about ~80kib.
1 parent 6b22339 commit 2b6427f

File tree

2 files changed

+34
-9
lines changed

2 files changed

+34
-9
lines changed

Diff for: libraries/HTTPClient/src/HTTPClient.cpp

+24-8
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,8 @@
2828

2929
#include <Arduino.h>
3030
#include <esp32-hal-log.h>
31-
32-
#ifdef HTTPCLIENT_1_1_COMPATIBLE
33-
#include <NetworkClient.h>
34-
#include <NetworkClientSecure.h>
35-
#endif
36-
3731
#include <StreamString.h>
3832
#include <base64.h>
39-
4033
#include "HTTPClient.h"
4134

4235
/// Cookie jar support
@@ -56,6 +49,7 @@ class TransportTraits {
5649
}
5750
};
5851

52+
#ifndef HTTPCLIENT_NOSECURE
5953
class TLSTraits : public TransportTraits {
6054
public:
6155
TLSTraits(const char *CAcert, const char *clicert = nullptr, const char *clikey = nullptr) : _cacert(CAcert), _clicert(clicert), _clikey(clikey) {}
@@ -81,6 +75,7 @@ class TLSTraits : public TransportTraits {
8175
const char *_clicert;
8276
const char *_clikey;
8377
};
78+
#endif // HTTPCLIENT_NOSECURE
8479
#endif // HTTPCLIENT_1_1_COMPATIBLE
8580

8681
/**
@@ -145,7 +140,16 @@ bool HTTPClient::begin(NetworkClient &client, String url) {
145140

146141
_port = (protocol == "https" ? 443 : 80);
147142
_secure = (protocol == "https");
148-
return beginInternal(url, protocol.c_str());
143+
144+
#ifdef HTTPCLIENT_NOSECURE
145+
if (_secure)
146+
return false;
147+
else
148+
return beginInternal(url, protocol.c_str());
149+
#else
150+
return beginInternal(url, protocol.c_str());
151+
#endif // HTTPCLIENT_NOSECURE
152+
149153
}
150154

151155
/**
@@ -174,10 +178,16 @@ bool HTTPClient::begin(NetworkClient &client, String host, uint16_t port, String
174178
_uri = uri;
175179
_protocol = (https ? "https" : "http");
176180
_secure = https;
181+
182+
#ifdef HTTPCLIENT_NOSECURE
183+
if (_secure) return false;
184+
#endif // HTTPCLIENT_NOSECURE
185+
177186
return true;
178187
}
179188

180189
#ifdef HTTPCLIENT_1_1_COMPATIBLE
190+
#ifndef HTTPCLIENT_NOSECURE
181191
bool HTTPClient::begin(String url, const char *CAcert) {
182192
if (_client && !_tcpDeprecated) {
183193
log_d("mix up of new and deprecated api");
@@ -199,6 +209,7 @@ bool HTTPClient::begin(String url, const char *CAcert) {
199209

200210
return true;
201211
}
212+
#endif // HTTPCLIENT_NOSECURE
202213

203214
/**
204215
* parsing the url for all needed parameters
@@ -214,6 +225,9 @@ bool HTTPClient::begin(String url) {
214225
clear();
215226
_port = 80;
216227
if (!beginInternal(url, "http")) {
228+
#ifdef HTTPCLIENT_NOSECURE
229+
return false;
230+
#endif // HTTPCLIENT_NOSECURE
217231
return begin(url, (const char *)NULL);
218232
}
219233
_transportTraits = TransportTraitsPtr(new TransportTraits());
@@ -299,6 +313,7 @@ bool HTTPClient::begin(String host, uint16_t port, String uri) {
299313
return true;
300314
}
301315

316+
#ifndef HTTPCLIENT_NOSECURE
302317
bool HTTPClient::begin(String host, uint16_t port, String uri, const char *CAcert) {
303318
if (_client && !_tcpDeprecated) {
304319
log_d("mix up of new and deprecated api");
@@ -338,6 +353,7 @@ bool HTTPClient::begin(String host, uint16_t port, String uri, const char *CAcer
338353
_transportTraits = TransportTraitsPtr(new TLSTraits(CAcert, cli_cert, cli_key));
339354
return true;
340355
}
356+
#endif // HTTPCLIENT_NOSECURE
341357
#endif // HTTPCLIENT_1_1_COMPATIBLE
342358

343359
/**

Diff for: libraries/HTTPClient/src/HTTPClient.h

+10-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@
3434
#include <memory>
3535
#include <Arduino.h>
3636
#include <NetworkClient.h>
37+
#ifndef HTTPCLIENT_NOSECURE
3738
#include <NetworkClientSecure.h>
39+
#endif // HTTPCLIENT_NOSECURE
3840

3941
/// Cookie jar support
4042
#include <vector>
@@ -182,10 +184,17 @@ class HTTPClient {
182184

183185
#ifdef HTTPCLIENT_1_1_COMPATIBLE
184186
bool begin(String url);
185-
bool begin(String url, const char *CAcert);
186187
bool begin(String host, uint16_t port, String uri = "/");
188+
#ifndef HTTPCLIENT_NOSECURE
189+
bool begin(String url, const char *CAcert);
187190
bool begin(String host, uint16_t port, String uri, const char *CAcert);
188191
bool begin(String host, uint16_t port, String uri, const char *CAcert, const char *cli_cert, const char *cli_key);
192+
#else
193+
bool begin(String url, const char *CAcert){ return false; };
194+
bool begin(String host, uint16_t port, String uri, const char *CAcert){ return false; };
195+
bool begin(String host, uint16_t port, String uri, const char *CAcert, const char *cli_cert, const char *cli_key){ return false; };
196+
#endif // HTTPCLIENT_NOSECURE
197+
189198
#endif
190199

191200
void end(void);

0 commit comments

Comments
 (0)