diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 221b230..c50df87 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -657,6 +657,20 @@ int MqttClient::connect(const char *host, uint16_t port) return connect((uint32_t)0, host, port); } +#ifdef ARDUINO_ARCH_ESP32 +int MqttClient::connect(IPAddress ip, uint16_t port, int32_t timeout) +{ + setConnectionTimeout(timeout); + return connect(ip, port); +} + +int MqttClient::connect(const char *host, uint16_t port, int32_t timeout) +{ + setConnectionTimeout(timeout); + return connect(host, port); +} +#endif + size_t MqttClient::write(uint8_t b) { return write(&b, sizeof(b)); diff --git a/src/MqttClient.h b/src/MqttClient.h index 522f023..4efc82b 100644 --- a/src/MqttClient.h +++ b/src/MqttClient.h @@ -83,6 +83,10 @@ class MqttClient : public Client { virtual int connect(const char *host, uint16_t port = 1883); #ifdef ESP8266 virtual int connect(const IPAddress& ip, uint16_t port) { return 0; }; /* ESP8266 core defines this pure virtual in Client.h */ +#endif +#ifdef ARDUINO_ARCH_ESP32 + virtual int connect(IPAddress ip, uint16_t port, int32_t timeout); + virtual int connect(const char *host, uint16_t port, int32_t timeout); #endif virtual size_t write(uint8_t); virtual size_t write(const uint8_t *buf, size_t size);