diff --git a/src/MQTT.cpp b/src/MQTT.cpp index d513c8d2..ae46bd69 100644 --- a/src/MQTT.cpp +++ b/src/MQTT.cpp @@ -412,7 +412,7 @@ namespace MQTT { _payload_len(strlen_P((PGM_P)payload)), _payload(new uint8_t[_payload_len + 1]), _payload_mine(true) { - strncpy((char*)_payload, (PGM_P)payload, _payload_len); + strncpy_P((char*)_payload, (PGM_P)payload, _payload_len); } Publish Publish_P(String topic, PGM_P payload, uint32_t length) { diff --git a/src/MQTT.h b/src/MQTT.h index 0822fc52..3aaeafe0 100644 --- a/src/MQTT.h +++ b/src/MQTT.h @@ -53,6 +53,13 @@ namespace MQTT { Reserved, // Reserved }; + //! The Quality of Service (QoS) level is an agreement between sender and receiver of a message regarding the guarantees of delivering a message. + enum Qos { + QOS0 = 0, //! At most once + QOS1 = 1, //! At least once + QOS2 = 2 //! Exactly once + }; + #ifdef _GLIBCXX_FUNCTIONAL typedef std::function payload_callback_t; #else