Skip to content

Commit baddd91

Browse files
authored
Adding an additional BearSSL constructor as well as a method setClient to allow late initialisation. (arduino-libraries#29)
This allows for the ArduinoIoTCloud firmware to intantiate ArduinoBearSSL on the stack instead of the heap.
1 parent be4f5b4 commit baddd91

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

src/BearSSLClient.cpp

+8-3
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,17 @@
3131
#include "BearSSLClient.h"
3232

3333
BearSSLClient::BearSSLClient(Client& client) :
34-
BearSSLClient(client, TAs, TAs_NUM)
34+
BearSSLClient(&client, TAs, TAs_NUM)
3535
{
3636
}
3737

38-
BearSSLClient::BearSSLClient(Client& client, const br_x509_trust_anchor* myTAs, int myNumTAs) :
39-
_client(&client),
38+
BearSSLClient::BearSSLClient(Client& client, const br_x509_trust_anchor* myTAs, int myNumTAs)
39+
: BearSSLClient(&client, myTAs, myNumTAs)
40+
{
41+
}
42+
43+
BearSSLClient::BearSSLClient(Client* client, const br_x509_trust_anchor* myTAs, int myNumTAs) :
44+
_client(client),
4045
_TAs(myTAs),
4146
_numTAs(myNumTAs),
4247
_noSNI(false)

src/BearSSLClient.h

+5
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,13 @@ class BearSSLClient : public Client {
4343
public:
4444
BearSSLClient(Client& client);
4545
BearSSLClient(Client& client, const br_x509_trust_anchor* myTAs, int myNumTAs);
46+
BearSSLClient(Client* client, const br_x509_trust_anchor* myTAs, int myNumTAs);
4647
virtual ~BearSSLClient();
4748

49+
50+
inline void setClient(Client& client) { _client = &client; }
51+
52+
4853
virtual int connect(IPAddress ip, uint16_t port);
4954
virtual int connect(const char* host, uint16_t port);
5055
virtual size_t write(uint8_t);

0 commit comments

Comments
 (0)