Skip to content

Commit fb58423

Browse files
committed
Overloading begin function in such way that it also accepts IPAddress objects.
1 parent 814b481 commit fb58423

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/ArduinoIoTCloudTCP.cpp

+11-1
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ ArduinoIoTCloudTCP::ArduinoIoTCloudTCP()
9696

9797
}
9898

99+
ArduinoIoTCloudTCP::~ArduinoIoTCloudTCP()
100+
{
101+
delete _mqttClient; _mqttClient = NULL;
102+
delete _sslClient; _sslClient = NULL;
103+
}
104+
99105
/******************************************************************************
100106
* PUBLIC MEMBER FUNCTIONS
101107
******************************************************************************/
@@ -242,7 +248,11 @@ int ArduinoIoTCloudTCP::reconnect()
242248

243249
int ArduinoIoTCloudTCP::connect()
244250
{
245-
if (!_mqttClient.connect(_brokerAddress.c_str(), _brokerPort)) return CONNECT_FAILURE;
251+
if (_brokerIp == INADDR_NONE) {
252+
if (!_mqttClient.connect(_brokerAddress.c_str(), _brokerPort)) return CONNECT_FAILURE;
253+
} else {
254+
if (!_mqttClient.connect(_brokerIp, _brokerPort)) return CONNECT_FAILURE;
255+
}
246256
if (_mqttClient.subscribe(_stdinTopic) == 0) return CONNECT_FAILURE_SUBSCRIBE;
247257
if (_mqttClient.subscribe(_dataTopicIn) == 0) return CONNECT_FAILURE_SUBSCRIBE;
248258
if (_mqttClient.subscribe(_ota_topic_in) == 0) return CONNECT_FAILURE_SUBSCRIBE;

src/ArduinoIoTCloudTCP.h

+7-1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ static uint16_t const DEFAULT_BROKER_PORT_SECURE_AUTH = 8883;
4949
static char const DEFAULT_BROKER_ADDRESS_USER_PASS_AUTH[] = "mqtts-up.iot.arduino.cc";
5050
static uint16_t const DEFAULT_BROKER_PORT_USER_PASS_AUTH = 8884;
5151

52+
static IPAddress const DEFAULT_BROKER_SECURE_AUTH_IP_1(34,206,248,111);
53+
static IPAddress const DEFAULT_BROKER_SECURE_AUTH_IP_2(3,209,5,114);
54+
5255
/******************************************************************************
5356
* CLASS DECLARATION
5457
******************************************************************************/
@@ -70,7 +73,9 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
7073
#else
7174
int begin(ConnectionHandler & connection, String brokerAddress = DEFAULT_BROKER_ADDRESS_USER_PASS_AUTH, uint16_t brokerPort = DEFAULT_BROKER_PORT_USER_PASS_AUTH);
7275
#endif
73-
int begin(String brokerAddress = DEFAULT_BROKER_ADDRESS_SECURE_AUTH, uint16_t brokerPort = DEFAULT_BROKER_PORT_SECURE_AUTH);
76+
int begin(ConnectionHandler & connection, IPAddress const brokerIp, uint16_t const brokerPort = DEFAULT_BROKER_PORT_SECURE_AUTH);
77+
int begin(ConnectionHandler & connection, uint16_t brokerPort);
78+
7479

7580
#ifdef BOARD_ESP
7681
inline void setBoardId (String const device_id) { setDeviceId(device_id); }
@@ -101,6 +106,7 @@ class ArduinoIoTCloudTCP: public ArduinoIoTCloudClass
101106

102107
int _lastSyncRequestTickTime;
103108
String _brokerAddress;
109+
IPAddress _brokerIp;
104110
uint16_t _brokerPort;
105111
uint8_t _mqtt_data_buf[MQTT_TRANSMIT_BUFFER_SIZE];
106112
int _mqtt_data_len;

0 commit comments

Comments
 (0)