@@ -536,10 +536,10 @@ bool MqttClientClass::end(void) {
536536 delay (10 );
537537 SequansController.clearReceiveBuffer ();
538538
539- connected_to_broker = false ;
540-
541539 internalDisconnectCallback (NULL );
542540
541+ connected_to_broker = false ;
542+
543543 return true ;
544544}
545545
@@ -559,7 +559,8 @@ bool MqttClientClass::isConnected(void) { return connected_to_broker; }
559559bool MqttClientClass::publish (const char * topic,
560560 const uint8_t * buffer,
561561 const uint32_t buffer_size,
562- const MqttQoS quality_of_service) {
562+ const MqttQoS quality_of_service,
563+ const uint32_t timeout_ms) {
563564
564565 if (!isConnected ()) {
565566 Log.error (" Attempted publish without being connected to a broker" );
@@ -599,8 +600,12 @@ bool MqttClientClass::publish(const char* topic,
599600 // termination
600601 char status_code_buffer[3 ] = " " ;
601602
602- if (!SequansController.waitForURC (MQTT_ON_PUBLISH_URC, urc, sizeof (urc))) {
603- Log.warn (" Timed out waiting for publish confirmation\r\n " );
603+ if (!SequansController.waitForURC (MQTT_ON_PUBLISH_URC,
604+ urc,
605+ sizeof (urc),
606+ timeout_ms)) {
607+ Log.warn (" Timed out waiting for publish confirmation. Consider "
608+ " increasing timeout for publishing\r\n " );
604609 return false ;
605610 }
606611
@@ -639,11 +644,13 @@ bool MqttClientClass::publish(const char* topic,
639644
640645bool MqttClientClass::publish (const char * topic,
641646 const char * message,
642- const MqttQoS quality_of_service) {
647+ const MqttQoS quality_of_service,
648+ const uint32_t timeout_ms) {
643649 return publish (topic,
644650 (uint8_t *)message,
645651 strlen (message),
646- quality_of_service);
652+ quality_of_service,
653+ timeout_ms);
647654}
648655
649656bool MqttClientClass::subscribe (const char * topic,
0 commit comments