From c2a573f347d1a720ebaa0a78e007bf37b19ab751 Mon Sep 17 00:00:00 2001 From: thomask Date: Fri, 17 Mar 2017 18:23:00 +0100 Subject: [PATCH] use strncpy_P for flash memory access; add enum for QOS --- src/MQTT.cpp | 2 +- src/MQTT.h | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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