mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
0b46e1c0e2
This fix will let Paho build for architectures with less than 32 bit.
1140 lines
43 KiB
Diff
1140 lines
43 KiB
Diff
From 1f3e757f38b9dda9cc7d2db88448db7ce4950822 Mon Sep 17 00:00:00 2001
|
|
From: Oleg Hahm <oleg+eclipse@riot-os.org>
|
|
Date: Fri, 2 Dec 2022 19:12:40 +0100
|
|
Subject: [PATCH 3/4] MQTTPacket: use int32_t instead of int where necessary
|
|
|
|
---
|
|
MQTTClient-C/src/MQTTClient.c | 20 +++++-----
|
|
MQTTClient/src/MQTTClient.h | 26 ++++++-------
|
|
MQTTClient/src/arduino/WifiIPStack.h | 8 ++--
|
|
.../samples/baremetalserial/pub0sub1_nb.c | 6 +--
|
|
MQTTPacket/samples/pub0sub1.c | 6 +--
|
|
MQTTPacket/samples/pub0sub1_nb.c | 6 +--
|
|
MQTTPacket/samples/qos0pub.c | 6 +--
|
|
MQTTPacket/src/MQTTConnect.h | 16 ++++----
|
|
MQTTPacket/src/MQTTConnectClient.c | 16 ++++----
|
|
MQTTPacket/src/MQTTConnectServer.c | 8 ++--
|
|
MQTTPacket/src/MQTTDeserializePublish.c | 12 +++---
|
|
MQTTPacket/src/MQTTFormat.c | 4 +-
|
|
MQTTPacket/src/MQTTFormat.h | 4 +-
|
|
MQTTPacket/src/MQTTPacket.c | 37 +++++++++++--------
|
|
MQTTPacket/src/MQTTPacket.h | 24 ++++++------
|
|
MQTTPacket/src/MQTTPublish.h | 12 +++---
|
|
MQTTPacket/src/MQTTSerializePublish.c | 18 ++++-----
|
|
MQTTPacket/src/MQTTSubscribe.h | 10 ++---
|
|
MQTTPacket/src/MQTTSubscribeClient.c | 12 +++---
|
|
MQTTPacket/src/MQTTSubscribeServer.c | 8 ++--
|
|
MQTTPacket/src/MQTTUnsubscribe.h | 12 +++---
|
|
MQTTPacket/src/MQTTUnsubscribeClient.c | 10 ++---
|
|
MQTTPacket/src/MQTTUnsubscribeServer.c | 10 ++---
|
|
MQTTPacket/test/test1.c | 2 +-
|
|
24 files changed, 152 insertions(+), 141 deletions(-)
|
|
|
|
diff --git a/MQTTClient-C/src/MQTTClient.c b/MQTTClient-C/src/MQTTClient.c
|
|
index 578a9cc..0fc19ea 100755
|
|
--- a/MQTTClient-C/src/MQTTClient.c
|
|
+++ b/MQTTClient-C/src/MQTTClient.c
|
|
@@ -31,7 +31,7 @@ static int getNextPacketId(MQTTClient *c) {
|
|
}
|
|
|
|
|
|
-static int sendPacket(MQTTClient* c, int length, Timer* timer)
|
|
+static int sendPacket(MQTTClient* c, int32_t length, Timer* timer)
|
|
{
|
|
int rc = FAILURE,
|
|
sent = 0;
|
|
@@ -84,7 +84,7 @@ static int decodePacket(MQTTClient* c, int* value, int timeout)
|
|
{
|
|
unsigned char i;
|
|
int multiplier = 1;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
const int MAX_NO_OF_REMAINING_LENGTH_BYTES = 4;
|
|
|
|
*value = 0;
|
|
@@ -111,7 +111,7 @@ exit:
|
|
static int readPacket(MQTTClient* c, Timer* timer)
|
|
{
|
|
MQTTHeader header = {0};
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
int rem_len = 0;
|
|
|
|
/* 1. read the header byte. This has the packet type in it */
|
|
@@ -225,7 +225,7 @@ int keepalive(MQTTClient* c)
|
|
Timer timer;
|
|
TimerInit(&timer);
|
|
TimerCountdownMS(&timer, 1000);
|
|
- int len = MQTTSerialize_pingreq(c->buf, c->buf_size);
|
|
+ int32_t len = MQTTSerialize_pingreq(c->buf, c->buf_size);
|
|
if (len > 0 && (rc = sendPacket(c, len, &timer)) == SUCCESS) // send the ping packet
|
|
c->ping_outstanding = 1;
|
|
}
|
|
@@ -256,7 +256,7 @@ void MQTTCloseSession(MQTTClient* c)
|
|
|
|
int cycle(MQTTClient* c, Timer* timer)
|
|
{
|
|
- int len = 0,
|
|
+ int32_t len = 0,
|
|
rc = SUCCESS;
|
|
|
|
int packet_type = readPacket(c, timer); /* read the socket, see what work is due */
|
|
@@ -415,7 +415,7 @@ int MQTTConnectWithResults(MQTTClient* c, MQTTPacket_connectData* options, MQTTC
|
|
Timer connect_timer;
|
|
int rc = FAILURE;
|
|
MQTTPacket_connectData default_options = MQTTPacket_connectData_initializer;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
#if defined(MQTT_TASK)
|
|
MutexLock(&c->mutex);
|
|
@@ -519,7 +519,7 @@ int MQTTSubscribeWithResults(MQTTClient* c, const char* topicFilter, enum QoS qo
|
|
{
|
|
int rc = FAILURE;
|
|
Timer timer;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
MQTTString topic = MQTTString_initializer;
|
|
topic.cstring = (char *)topicFilter;
|
|
|
|
@@ -580,7 +580,7 @@ int MQTTUnsubscribe(MQTTClient* c, const char* topicFilter)
|
|
Timer timer;
|
|
MQTTString topic = MQTTString_initializer;
|
|
topic.cstring = (char *)topicFilter;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
#if defined(MQTT_TASK)
|
|
MutexLock(&c->mutex);
|
|
@@ -624,7 +624,7 @@ int MQTTPublish(MQTTClient* c, const char* topicName, MQTTMessage* message)
|
|
Timer timer;
|
|
MQTTString topic = MQTTString_initializer;
|
|
topic.cstring = (char *)topicName;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
#if defined(MQTT_TASK)
|
|
MutexLock(&c->mutex);
|
|
@@ -684,7 +684,7 @@ int MQTTDisconnect(MQTTClient* c)
|
|
{
|
|
int rc = FAILURE;
|
|
Timer timer; // we might wait for incomplete incoming publishes to complete
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
#if defined(MQTT_TASK)
|
|
MutexLock(&c->mutex);
|
|
diff --git a/MQTTClient/src/MQTTClient.h b/MQTTClient/src/MQTTClient.h
|
|
index 65dc4d7..07caa4d 100644
|
|
--- a/MQTTClient/src/MQTTClient.h
|
|
+++ b/MQTTClient/src/MQTTClient.h
|
|
@@ -241,11 +241,11 @@ private:
|
|
int cycle(Timer& timer);
|
|
int waitfor(int packet_type, Timer& timer);
|
|
int keepalive();
|
|
- int publish(int len, Timer& timer, enum QoS qos);
|
|
+ int publish(int32_t len, Timer& timer, enum QoS qos);
|
|
|
|
int decodePacket(int* value, int timeout);
|
|
int readPacket(Timer& timer);
|
|
- int sendPacket(int length, Timer& timer);
|
|
+ int sendPacket(int32_t length, Timer& timer);
|
|
int deliverMessage(MQTTString& topicName, Message& message);
|
|
bool isTopicMatched(char* topicFilter, MQTTString& topicName);
|
|
|
|
@@ -377,7 +377,7 @@ void MQTT::Client<Network, Timer, a, b>::freeQoS2msgid(unsigned short id)
|
|
|
|
|
|
template<class Network, class Timer, int a, int b>
|
|
-int MQTT::Client<Network, Timer, a, b>::sendPacket(int length, Timer& timer)
|
|
+int MQTT::Client<Network, Timer, a, b>::sendPacket(int32_t length, Timer& timer)
|
|
{
|
|
int rc = FAILURE,
|
|
sent = 0;
|
|
@@ -414,7 +414,7 @@ int MQTT::Client<Network, Timer, a, b>::decodePacket(int* value, int timeout)
|
|
{
|
|
unsigned char c;
|
|
int multiplier = 1;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
const int MAX_NO_OF_REMAINING_LENGTH_BYTES = 4;
|
|
|
|
*value = 0;
|
|
@@ -449,7 +449,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::readPacket(Timer& tim
|
|
{
|
|
int rc = FAILURE;
|
|
MQTTHeader header = {0};
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
int rem_len = 0;
|
|
|
|
/* 1. read the header byte. This has the packet type in it */
|
|
@@ -579,7 +579,7 @@ template<class Network, class Timer, int MAX_MQTT_PACKET_SIZE, int b>
|
|
int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::cycle(Timer& timer)
|
|
{
|
|
// get one piece of work off the wire and one pass through
|
|
- int len = 0,
|
|
+ int32_t len = 0,
|
|
rc = SUCCESS;
|
|
|
|
int packet_type = readPacket(timer); // read the socket, see what work is due
|
|
@@ -698,7 +698,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::keepalive()
|
|
else if (last_sent.expired() || last_received.expired())
|
|
{
|
|
Timer timer(1000);
|
|
- int len = MQTTSerialize_pingreq(sendbuf, MAX_MQTT_PACKET_SIZE);
|
|
+ int32_t len = MQTTSerialize_pingreq(sendbuf, MAX_MQTT_PACKET_SIZE);
|
|
if (len > 0 && (rc = sendPacket(len, timer)) == SUCCESS) // send the ping packet
|
|
{
|
|
ping_outstanding = true;
|
|
@@ -733,7 +733,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::connect(MQTTPacket_co
|
|
{
|
|
Timer connect_timer(command_timeout_ms);
|
|
int rc = FAILURE;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
if (isconnected) // don't send connect packet again if we are already connected
|
|
goto exit;
|
|
@@ -855,7 +855,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, MAX_MESSAGE_HANDLERS>::su
|
|
{
|
|
int rc = FAILURE;
|
|
Timer timer(command_timeout_ms);
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
MQTTString topic = {(char*)topicFilter, {0, 0}};
|
|
|
|
if (!isconnected)
|
|
@@ -902,7 +902,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, MAX_MESSAGE_HANDLERS>::un
|
|
int rc = FAILURE;
|
|
Timer timer(command_timeout_ms);
|
|
MQTTString topic = {(char*)topicFilter, {0, 0}};
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
if (!isconnected)
|
|
goto exit;
|
|
@@ -932,7 +932,7 @@ exit:
|
|
|
|
|
|
template<class Network, class Timer, int MAX_MQTT_PACKET_SIZE, int b>
|
|
-int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::publish(int len, Timer& timer, enum QoS qos)
|
|
+int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::publish(int32_t len, Timer& timer, enum QoS qos)
|
|
{
|
|
int rc;
|
|
|
|
@@ -986,7 +986,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::publish(const char* t
|
|
int rc = FAILURE;
|
|
Timer timer(command_timeout_ms);
|
|
MQTTString topicString = MQTTString_initializer;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
if (!isconnected)
|
|
goto exit;
|
|
@@ -1042,7 +1042,7 @@ int MQTT::Client<Network, Timer, MAX_MQTT_PACKET_SIZE, b>::disconnect()
|
|
{
|
|
int rc = FAILURE;
|
|
Timer timer(command_timeout_ms); // we might wait for incomplete incoming publishes to complete
|
|
- int len = MQTTSerialize_disconnect(sendbuf, MAX_MQTT_PACKET_SIZE);
|
|
+ int32_t len = MQTTSerialize_disconnect(sendbuf, MAX_MQTT_PACKET_SIZE);
|
|
if (len > 0)
|
|
rc = sendPacket(len, timer); // send the disconnect packet
|
|
closeSession();
|
|
diff --git a/MQTTClient/src/arduino/WifiIPStack.h b/MQTTClient/src/arduino/WifiIPStack.h
|
|
index 6761037..d87a961 100644
|
|
--- a/MQTTClient/src/arduino/WifiIPStack.h
|
|
+++ b/MQTTClient/src/arduino/WifiIPStack.h
|
|
@@ -19,15 +19,15 @@
|
|
|
|
#include <WiFi.h>
|
|
|
|
-class WifiIPStack
|
|
+class WifiIPStack
|
|
{
|
|
-public:
|
|
+public:
|
|
WifiIPStack()
|
|
{
|
|
//WiFi.begin(); // Use DHCP
|
|
- iface.setTimeout(1000); // 1 second Timeout
|
|
+ iface.setTimeout(1000); // 1 second Timeout
|
|
}
|
|
-
|
|
+
|
|
int connect(char* hostname, int port)
|
|
{
|
|
return iface.connect(hostname, port);
|
|
diff --git a/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c b/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c
|
|
index 9c5995d..2a721b2 100644
|
|
--- a/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c
|
|
+++ b/MQTTPacket/samples/baremetalserial/pub0sub1_nb.c
|
|
@@ -54,13 +54,13 @@ int main(int argc, char *argv[])
|
|
int rc = 0;
|
|
int mysock = 0;
|
|
unsigned char buf[200];
|
|
- int buflen = sizeof(buf);
|
|
+ int32_t buflen = sizeof(buf);
|
|
int msgid = 1;
|
|
MQTTString topicString = MQTTString_initializer;
|
|
int req_qos = 0;
|
|
char* payload = "mypayload";
|
|
- int payloadlen = strlen(payload);
|
|
- int len = 0;
|
|
+ int32_t payloadlen = strlen(payload);
|
|
+ int32_t len = 0;
|
|
MQTTTransport mytransport;
|
|
int state = READING;
|
|
|
|
diff --git a/MQTTPacket/samples/pub0sub1.c b/MQTTPacket/samples/pub0sub1.c
|
|
index 37bc2d4..bde7add 100644
|
|
--- a/MQTTPacket/samples/pub0sub1.c
|
|
+++ b/MQTTPacket/samples/pub0sub1.c
|
|
@@ -48,13 +48,13 @@ int main(int argc, char *argv[])
|
|
int rc = 0;
|
|
int mysock = 0;
|
|
unsigned char buf[200];
|
|
- int buflen = sizeof(buf);
|
|
+ int32_t buflen = sizeof(buf);
|
|
int msgid = 1;
|
|
MQTTString topicString = MQTTString_initializer;
|
|
int req_qos = 0;
|
|
char* payload = "mypayload";
|
|
- int payloadlen = strlen(payload);
|
|
- int len = 0;
|
|
+ int32_t payloadlen = strlen(payload);
|
|
+ int32_t len = 0;
|
|
char *host = "m2m.eclipse.org";
|
|
int port = 1883;
|
|
|
|
diff --git a/MQTTPacket/samples/pub0sub1_nb.c b/MQTTPacket/samples/pub0sub1_nb.c
|
|
index fdc79ba..a154106 100644
|
|
--- a/MQTTPacket/samples/pub0sub1_nb.c
|
|
+++ b/MQTTPacket/samples/pub0sub1_nb.c
|
|
@@ -48,13 +48,13 @@ int main(int argc, char *argv[])
|
|
int rc = 0;
|
|
int mysock = 0;
|
|
unsigned char buf[200];
|
|
- int buflen = sizeof(buf);
|
|
+ size_t buflen = sizeof(buf);
|
|
int msgid = 1;
|
|
MQTTString topicString = MQTTString_initializer;
|
|
int req_qos = 0;
|
|
char* payload = "mypayload";
|
|
- int payloadlen = strlen(payload);
|
|
- int len = 0;
|
|
+ size_t payloadlen = strlen(payload);
|
|
+ int32_t len = 0;
|
|
char *host = "m2m.eclipse.org";
|
|
int port = 1883;
|
|
MQTTTransport mytransport;
|
|
diff --git a/MQTTPacket/samples/qos0pub.c b/MQTTPacket/samples/qos0pub.c
|
|
index 8b0af77..837211f 100644
|
|
--- a/MQTTPacket/samples/qos0pub.c
|
|
+++ b/MQTTPacket/samples/qos0pub.c
|
|
@@ -28,12 +28,12 @@ int main(int argc, char *argv[])
|
|
MQTTPacket_connectData data = MQTTPacket_connectData_initializer;
|
|
int rc = 0;
|
|
char buf[200];
|
|
- int buflen = sizeof(buf);
|
|
+ size_t buflen = sizeof(buf);
|
|
int mysock = 0;
|
|
MQTTString topicString = MQTTString_initializer;
|
|
char* payload = "mypayload";
|
|
- int payloadlen = strlen(payload);
|
|
- int len = 0;
|
|
+ size_t payloadlen = strlen(payload);
|
|
+ int32_t len = 0;
|
|
char *host = "m2m.eclipse.org";
|
|
int port = 1883;
|
|
|
|
diff --git a/MQTTPacket/src/MQTTConnect.h b/MQTTPacket/src/MQTTConnect.h
|
|
index 98c2c16..c30946b 100644
|
|
--- a/MQTTPacket/src/MQTTConnect.h
|
|
+++ b/MQTTPacket/src/MQTTConnect.h
|
|
@@ -12,7 +12,7 @@
|
|
*
|
|
* Contributors:
|
|
* Ian Craggs - initial API and implementation and/or initial documentation
|
|
- * Ian Craggs - add connack return code definitions
|
|
+ * Ian Craggs - add connack return code definitions
|
|
* Xiang Rong - 442039 Add makefile to Embedded C client
|
|
* Ian Craggs - fix for issue #64, bit order in connack response
|
|
*******************************************************************************/
|
|
@@ -20,6 +20,8 @@
|
|
#ifndef MQTTCONNECT_H_
|
|
#define MQTTCONNECT_H_
|
|
|
|
+#include <stdint.h>
|
|
+
|
|
enum connack_return_codes
|
|
{
|
|
MQTT_CONNECTION_ACCEPTED = 0,
|
|
@@ -136,13 +138,13 @@ typedef union
|
|
#define MQTTPacket_connectData_initializer { {'M', 'Q', 'T', 'C'}, 0, 4, {NULL, {0, NULL}}, 60, 1, 0, \
|
|
MQTTPacket_willOptions_initializer, {NULL, {0, NULL}}, {NULL, {0, NULL}} }
|
|
|
|
-DLLExport int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options);
|
|
-DLLExport int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int len);
|
|
+DLLExport int MQTTSerialize_connect(unsigned char* buf, int32_t buflen, MQTTPacket_connectData* options);
|
|
+DLLExport int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int32_t len);
|
|
|
|
-DLLExport int MQTTSerialize_connack(unsigned char* buf, int buflen, unsigned char connack_rc, unsigned char sessionPresent);
|
|
-DLLExport int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen);
|
|
+DLLExport int MQTTSerialize_connack(unsigned char* buf, int32_t buflen, unsigned char connack_rc, unsigned char sessionPresent);
|
|
+DLLExport int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int32_t buflen);
|
|
|
|
-DLLExport int MQTTSerialize_disconnect(unsigned char* buf, int buflen);
|
|
-DLLExport int MQTTSerialize_pingreq(unsigned char* buf, int buflen);
|
|
+DLLExport int MQTTSerialize_disconnect(unsigned char* buf, int32_t buflen);
|
|
+DLLExport int MQTTSerialize_pingreq(unsigned char* buf, int32_t buflen);
|
|
|
|
#endif /* MQTTCONNECT_H_ */
|
|
diff --git a/MQTTPacket/src/MQTTConnectClient.c b/MQTTPacket/src/MQTTConnectClient.c
|
|
index 5f3cc29..cb2b0ed 100644
|
|
--- a/MQTTPacket/src/MQTTConnectClient.c
|
|
+++ b/MQTTPacket/src/MQTTConnectClient.c
|
|
@@ -26,7 +26,7 @@
|
|
*/
|
|
int MQTTSerialize_connectLength(MQTTPacket_connectData* options)
|
|
{
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
FUNC_ENTRY;
|
|
|
|
@@ -55,12 +55,12 @@ int MQTTSerialize_connectLength(MQTTPacket_connectData* options)
|
|
* @param options the options to be used to build the connect packet
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData* options)
|
|
+int MQTTSerialize_connect(unsigned char* buf, int32_t buflen, MQTTPacket_connectData* options)
|
|
{
|
|
unsigned char *ptr = buf;
|
|
MQTTHeader header = {0};
|
|
MQTTConnectFlags flags = {0};
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
int rc = -1;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -129,12 +129,12 @@ int MQTTSerialize_connect(unsigned char* buf, int buflen, MQTTPacket_connectData
|
|
* @param len the length in bytes of the data in the supplied buffer
|
|
* @return error code. 1 is success, 0 is failure
|
|
*/
|
|
-int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int buflen)
|
|
+int MQTTDeserialize_connack(unsigned char* sessionPresent, unsigned char* connack_rc, unsigned char* buf, int32_t buflen)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
int mylen;
|
|
MQTTConnackFlags flags = {0};
|
|
|
|
@@ -166,7 +166,7 @@ exit:
|
|
* @param packettype the message type
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_zero(unsigned char* buf, int buflen, unsigned char packettype)
|
|
+int MQTTSerialize_zero(unsigned char* buf, int32_t buflen, unsigned char packettype)
|
|
{
|
|
MQTTHeader header = {0};
|
|
int rc = -1;
|
|
@@ -196,7 +196,7 @@ exit:
|
|
* @param buflen the length in bytes of the supplied buffer, to avoid overruns
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_disconnect(unsigned char* buf, int buflen)
|
|
+int MQTTSerialize_disconnect(unsigned char* buf, int32_t buflen)
|
|
{
|
|
return MQTTSerialize_zero(buf, buflen, DISCONNECT);
|
|
}
|
|
@@ -208,7 +208,7 @@ int MQTTSerialize_disconnect(unsigned char* buf, int buflen)
|
|
* @param buflen the length in bytes of the supplied buffer, to avoid overruns
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_pingreq(unsigned char* buf, int buflen)
|
|
+int MQTTSerialize_pingreq(unsigned char* buf, int32_t buflen)
|
|
{
|
|
return MQTTSerialize_zero(buf, buflen, PINGREQ);
|
|
}
|
|
diff --git a/MQTTPacket/src/MQTTConnectServer.c b/MQTTPacket/src/MQTTConnectServer.c
|
|
index 07c7cb5..d6dcd1d 100644
|
|
--- a/MQTTPacket/src/MQTTConnectServer.c
|
|
+++ b/MQTTPacket/src/MQTTConnectServer.c
|
|
@@ -48,7 +48,7 @@ int MQTTPacket_checkVersion(MQTTString* protocol, int version)
|
|
* @param len the length in bytes of the data in the supplied buffer
|
|
* @return error code. 1 is success, 0 is failure
|
|
*/
|
|
-int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int len)
|
|
+int MQTTDeserialize_connect(MQTTPacket_connectData* data, unsigned char* buf, int32_t len)
|
|
{
|
|
MQTTHeader header = {0};
|
|
MQTTConnectFlags flags = {0};
|
|
@@ -112,11 +112,11 @@ exit:
|
|
* Serializes the connack packet into the supplied buffer.
|
|
* @param buf the buffer into which the packet will be serialized
|
|
* @param buflen the length in bytes of the supplied buffer
|
|
- * @param connack_rc the integer connack return code to be used
|
|
+ * @param connack_rc the integer connack return code to be used
|
|
* @param sessionPresent the MQTT 3.1.1 sessionPresent flag
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_connack(unsigned char* buf, int buflen, unsigned char connack_rc, unsigned char sessionPresent)
|
|
+int MQTTSerialize_connack(unsigned char* buf, int32_t buflen, unsigned char connack_rc, unsigned char sessionPresent)
|
|
{
|
|
MQTTHeader header = {0};
|
|
int rc = 0;
|
|
@@ -137,7 +137,7 @@ int MQTTSerialize_connack(unsigned char* buf, int buflen, unsigned char connack_
|
|
|
|
flags.all = 0;
|
|
flags.bits.sessionpresent = sessionPresent;
|
|
- writeChar(&ptr, flags.all);
|
|
+ writeChar(&ptr, flags.all);
|
|
writeChar(&ptr, connack_rc);
|
|
|
|
rc = ptr - buf;
|
|
diff --git a/MQTTPacket/src/MQTTDeserializePublish.c b/MQTTPacket/src/MQTTDeserializePublish.c
|
|
index dafb6a3..5687063 100644
|
|
--- a/MQTTPacket/src/MQTTDeserializePublish.c
|
|
+++ b/MQTTPacket/src/MQTTDeserializePublish.c
|
|
@@ -34,12 +34,12 @@
|
|
* @return error code. 1 is success
|
|
*/
|
|
int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName,
|
|
- unsigned char** payload, int* payloadlen, unsigned char* buf, int buflen)
|
|
+ unsigned char** payload, int* payloadlen, unsigned char* buf, int32_t buflen)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
int mylen = 0;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -65,7 +65,7 @@ int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retaine
|
|
rc = 1;
|
|
exit:
|
|
FUNC_EXIT_RC(rc);
|
|
- return rc;
|
|
+ return (int) rc;
|
|
}
|
|
|
|
|
|
@@ -79,12 +79,12 @@ exit:
|
|
* @param buflen the length in bytes of the data in the supplied buffer
|
|
* @return error code. 1 is success, 0 is failure
|
|
*/
|
|
-int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen)
|
|
+int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int32_t buflen)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
int mylen;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -102,6 +102,6 @@ int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned
|
|
rc = 1;
|
|
exit:
|
|
FUNC_EXIT_RC(rc);
|
|
- return rc;
|
|
+ return (int) rc;
|
|
}
|
|
|
|
diff --git a/MQTTPacket/src/MQTTFormat.c b/MQTTPacket/src/MQTTFormat.c
|
|
index 2eff31f..6fb8312 100644
|
|
--- a/MQTTPacket/src/MQTTFormat.c
|
|
+++ b/MQTTPacket/src/MQTTFormat.c
|
|
@@ -115,7 +115,7 @@ int MQTTStringFormat_unsubscribe(char* strbuf, int strbuflen, unsigned char dup,
|
|
|
|
|
|
#if defined(MQTT_CLIENT)
|
|
-char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int buflen)
|
|
+char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int32_t buflen)
|
|
{
|
|
int index = 0;
|
|
int rem_length = 0;
|
|
@@ -185,7 +185,7 @@ char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf,
|
|
#endif
|
|
|
|
#if defined(MQTT_SERVER)
|
|
-char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int buflen)
|
|
+char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int32_t buflen)
|
|
{
|
|
int index = 0;
|
|
int rem_length = 0;
|
|
diff --git a/MQTTPacket/src/MQTTFormat.h b/MQTTPacket/src/MQTTFormat.h
|
|
index 47b0c41..ee167d3 100644
|
|
--- a/MQTTPacket/src/MQTTFormat.h
|
|
+++ b/MQTTPacket/src/MQTTFormat.h
|
|
@@ -31,7 +31,7 @@ int MQTTStringFormat_subscribe(char* strbuf, int strbuflen, unsigned char dup, u
|
|
int MQTTStringFormat_suback(char* strbuf, int strbuflen, unsigned short packetid, int count, int* grantedQoSs);
|
|
int MQTTStringFormat_unsubscribe(char* strbuf, int strbuflen, unsigned char dup, unsigned short packetid,
|
|
int count, MQTTString topicFilters[]);
|
|
-char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int buflen);
|
|
-char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int buflen);
|
|
+char* MQTTFormat_toClientString(char* strbuf, int strbuflen, unsigned char* buf, int32_t buflen);
|
|
+char* MQTTFormat_toServerString(char* strbuf, int strbuflen, unsigned char* buf, int32_t buflen);
|
|
|
|
#endif
|
|
diff --git a/MQTTPacket/src/MQTTPacket.c b/MQTTPacket/src/MQTTPacket.c
|
|
index 0723b9a..f118a16 100644
|
|
--- a/MQTTPacket/src/MQTTPacket.c
|
|
+++ b/MQTTPacket/src/MQTTPacket.c
|
|
@@ -20,13 +20,20 @@
|
|
|
|
#include <string.h>
|
|
|
|
+/* According to https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901011 */
|
|
+#define NUM_OF_DIGITS_1 (128)
|
|
+#define NUM_OF_DIGITS_2 (16384)
|
|
+#define NUM_OF_DIGITS_3 (2097151)
|
|
+
|
|
/**
|
|
* Encodes the message length according to the MQTT algorithm
|
|
+ *
|
|
+ * @note See also https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901011
|
|
* @param buf the buffer into which the encoded data is written
|
|
* @param length the length to be encoded
|
|
* @return the number of bytes written to buffer
|
|
*/
|
|
-int MQTTPacket_encode(unsigned char* buf, int length)
|
|
+int MQTTPacket_encode(unsigned char* buf, int32_t length)
|
|
{
|
|
int rc = 0;
|
|
|
|
@@ -51,11 +58,11 @@ int MQTTPacket_encode(unsigned char* buf, int length)
|
|
* @param value the decoded length returned
|
|
* @return the number of bytes read from the socket
|
|
*/
|
|
-int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value)
|
|
+int32_t MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value)
|
|
{
|
|
unsigned char c;
|
|
int multiplier = 1;
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
#define MAX_NO_OF_REMAINING_LENGTH_BYTES 4
|
|
|
|
FUNC_ENTRY;
|
|
@@ -81,16 +88,16 @@ exit:
|
|
}
|
|
|
|
|
|
-int MQTTPacket_len(int rem_len)
|
|
+int32_t MQTTPacket_len(int32_t rem_len)
|
|
{
|
|
rem_len += 1; /* header byte */
|
|
|
|
/* now remaining_length field */
|
|
- if (rem_len < 128)
|
|
+ if (rem_len < NUM_OF_DIGITS_1)
|
|
rem_len += 1;
|
|
- else if (rem_len < 16384)
|
|
+ else if (rem_len < NUM_OF_DIGITS_2)
|
|
rem_len += 2;
|
|
- else if (rem_len < 2097151)
|
|
+ else if (rem_len < NUM_OF_DIGITS_3)
|
|
rem_len += 3;
|
|
else
|
|
rem_len += 4;
|
|
@@ -110,7 +117,7 @@ int bufchar(unsigned char* c, int count)
|
|
}
|
|
|
|
|
|
-int MQTTPacket_decodeBuf(unsigned char* buf, int* value)
|
|
+int32_t MQTTPacket_decodeBuf(unsigned char* buf, int* value)
|
|
{
|
|
bufptr = buf;
|
|
return MQTTPacket_decode(bufchar, value);
|
|
@@ -125,7 +132,7 @@ int MQTTPacket_decodeBuf(unsigned char* buf, int* value)
|
|
int readInt(unsigned char** pptr)
|
|
{
|
|
unsigned char* ptr = *pptr;
|
|
- int len = 256*(*ptr) + (*(ptr+1));
|
|
+ int32_t len = 256*(*ptr) + (*(ptr+1));
|
|
*pptr += 2;
|
|
return len;
|
|
}
|
|
@@ -177,7 +184,7 @@ void writeInt(unsigned char** pptr, int anInt)
|
|
*/
|
|
void writeCString(unsigned char** pptr, const char* string)
|
|
{
|
|
- int len = strlen(string);
|
|
+ int32_t len = strlen(string);
|
|
writeInt(pptr, len);
|
|
memcpy(*pptr, string, len);
|
|
*pptr += len;
|
|
@@ -254,7 +261,7 @@ int MQTTPacket_equals(MQTTString* a, char* bptr)
|
|
int alen = 0,
|
|
blen = 0;
|
|
char *aptr;
|
|
-
|
|
+
|
|
if (a->cstring)
|
|
{
|
|
aptr = a->cstring;
|
|
@@ -266,7 +273,7 @@ int MQTTPacket_equals(MQTTString* a, char* bptr)
|
|
alen = a->lenstring.len;
|
|
}
|
|
blen = strlen(bptr);
|
|
-
|
|
+
|
|
return (alen == blen) && (strncmp(aptr, bptr, alen) == 0);
|
|
}
|
|
|
|
@@ -279,11 +286,11 @@ int MQTTPacket_equals(MQTTString* a, char* bptr)
|
|
* @return integer MQTT packet type, or -1 on error
|
|
* @note the whole message must fit into the caller's buffer
|
|
*/
|
|
-int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int))
|
|
+int MQTTPacket_read(unsigned char* buf, int32_t buflen, int (*getfn)(unsigned char*, int))
|
|
{
|
|
int rc = -1;
|
|
MQTTHeader header = {0};
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
int rem_len = 0;
|
|
|
|
/* 1. read the header byte. This has the packet type in it */
|
|
@@ -351,7 +358,7 @@ exit:
|
|
* @return integer MQTT packet type, 0 for call again, or -1 on error
|
|
* @note the whole message must fit into the caller's buffer
|
|
*/
|
|
-int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp)
|
|
+int MQTTPacket_readnb(unsigned char* buf, int32_t buflen, MQTTTransport *trp)
|
|
{
|
|
int rc = -1, frc;
|
|
MQTTHeader header = {0};
|
|
diff --git a/MQTTPacket/src/MQTTPacket.h b/MQTTPacket/src/MQTTPacket.h
|
|
index 0ee4623..5bab30b 100644
|
|
--- a/MQTTPacket/src/MQTTPacket.h
|
|
+++ b/MQTTPacket/src/MQTTPacket.h
|
|
@@ -18,6 +18,8 @@
|
|
#ifndef MQTTPACKET_H_
|
|
#define MQTTPACKET_H_
|
|
|
|
+#include <stdint.h>
|
|
+
|
|
#if defined(__cplusplus) /* If this is a C++ compiler, use C linkage */
|
|
extern "C" {
|
|
#endif
|
|
@@ -30,7 +32,7 @@ extern "C" {
|
|
#define DLLExport __attribute__ ((visibility ("default")))
|
|
#else
|
|
#define DLLImport
|
|
- #define DLLExport
|
|
+ #define DLLExport
|
|
#endif
|
|
|
|
enum errors
|
|
@@ -74,7 +76,7 @@ typedef union
|
|
|
|
typedef struct
|
|
{
|
|
- int len;
|
|
+ int32_t len;
|
|
char* data;
|
|
} MQTTLenString;
|
|
|
|
@@ -94,15 +96,15 @@ int MQTTstrlen(MQTTString mqttstring);
|
|
#include "MQTTUnsubscribe.h"
|
|
#include "MQTTFormat.h"
|
|
|
|
-DLLExport int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char type, unsigned char dup, unsigned short packetid);
|
|
-DLLExport int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int buflen);
|
|
+DLLExport int MQTTSerialize_ack(unsigned char* buf, int32_t buflen, unsigned char type, unsigned char dup, unsigned short packetid);
|
|
+DLLExport int MQTTDeserialize_ack(unsigned char* packettype, unsigned char* dup, unsigned short* packetid, unsigned char* buf, int32_t buflen);
|
|
|
|
-int MQTTPacket_len(int rem_len);
|
|
+int32_t MQTTPacket_len(int32_t rem_len);
|
|
DLLExport int MQTTPacket_equals(MQTTString* a, char* b);
|
|
|
|
-DLLExport int MQTTPacket_encode(unsigned char* buf, int length);
|
|
-int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value);
|
|
-int MQTTPacket_decodeBuf(unsigned char* buf, int* value);
|
|
+DLLExport int MQTTPacket_encode(unsigned char* buf, int32_t length);
|
|
+int32_t MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value);
|
|
+int32_t MQTTPacket_decodeBuf(unsigned char* buf, int* value);
|
|
|
|
int readInt(unsigned char** pptr);
|
|
char readChar(unsigned char** pptr);
|
|
@@ -112,18 +114,18 @@ int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned cha
|
|
void writeCString(unsigned char** pptr, const char* string);
|
|
void writeMQTTString(unsigned char** pptr, MQTTString mqttstring);
|
|
|
|
-DLLExport int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int));
|
|
+DLLExport int MQTTPacket_read(unsigned char* buf, int32_t buflen, int (*getfn)(unsigned char*, int));
|
|
|
|
typedef struct {
|
|
int (*getfn)(void *, unsigned char*, int); /* must return -1 for error, 0 for call again, or the number of bytes read */
|
|
void *sck; /* pointer to whatever the system may use to identify the transport */
|
|
int multiplier;
|
|
int rem_len;
|
|
- int len;
|
|
+ int32_t len;
|
|
char state;
|
|
}MQTTTransport;
|
|
|
|
-int MQTTPacket_readnb(unsigned char* buf, int buflen, MQTTTransport *trp);
|
|
+int MQTTPacket_readnb(unsigned char* buf, int32_t buflen, MQTTTransport *trp);
|
|
|
|
#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
|
|
}
|
|
diff --git a/MQTTPacket/src/MQTTPublish.h b/MQTTPacket/src/MQTTPublish.h
|
|
index ebe479d..678acc0 100644
|
|
--- a/MQTTPacket/src/MQTTPublish.h
|
|
+++ b/MQTTPacket/src/MQTTPublish.h
|
|
@@ -19,20 +19,20 @@
|
|
#define MQTTPUBLISH_H_
|
|
|
|
#if !defined(DLLImport)
|
|
- #define DLLImport
|
|
+ #define DLLImport
|
|
#endif
|
|
#if !defined(DLLExport)
|
|
#define DLLExport
|
|
#endif
|
|
|
|
-DLLExport int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid,
|
|
+DLLExport int32_t MQTTSerialize_publish(unsigned char* buf, int32_t buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid,
|
|
MQTTString topicName, unsigned char* payload, int payloadlen);
|
|
|
|
DLLExport int MQTTDeserialize_publish(unsigned char* dup, int* qos, unsigned char* retained, unsigned short* packetid, MQTTString* topicName,
|
|
- unsigned char** payload, int* payloadlen, unsigned char* buf, int len);
|
|
+ unsigned char** payload, int* payloadlen, unsigned char* buf, int32_t len);
|
|
|
|
-DLLExport int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid);
|
|
-DLLExport int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid);
|
|
-DLLExport int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid);
|
|
+DLLExport int MQTTSerialize_puback(unsigned char* buf, int32_t buflen, unsigned short packetid);
|
|
+DLLExport int MQTTSerialize_pubrel(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid);
|
|
+DLLExport int MQTTSerialize_pubcomp(unsigned char* buf, int32_t buflen, unsigned short packetid);
|
|
|
|
#endif /* MQTTPUBLISH_H_ */
|
|
diff --git a/MQTTPacket/src/MQTTSerializePublish.c b/MQTTPacket/src/MQTTSerializePublish.c
|
|
index 77a58b5..fe2fbeb 100644
|
|
--- a/MQTTPacket/src/MQTTSerializePublish.c
|
|
+++ b/MQTTPacket/src/MQTTSerializePublish.c
|
|
@@ -24,13 +24,13 @@
|
|
/**
|
|
* Determines the length of the MQTT publish packet that would be produced using the supplied parameters
|
|
* @param qos the MQTT QoS of the publish (packetid is omitted for QoS 0)
|
|
- * @param topicName the topic name to be used in the publish
|
|
+ * @param topicName the topic name to be used in the publish
|
|
* @param payloadlen the length of the payload to be sent
|
|
* @return the length of buffer needed to contain the serialized version of the packet
|
|
*/
|
|
-int MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen)
|
|
+int32_t MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen)
|
|
{
|
|
- int len = 0;
|
|
+ int32_t len = 0;
|
|
|
|
len += 2 + MQTTstrlen(topicName) + payloadlen;
|
|
if (qos > 0)
|
|
@@ -52,12 +52,12 @@ int MQTTSerialize_publishLength(int qos, MQTTString topicName, int payloadlen)
|
|
* @param payloadlen integer - the length of the MQTT payload
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTSerialize_publish(unsigned char* buf, int buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid,
|
|
+int32_t MQTTSerialize_publish(unsigned char* buf, int32_t buflen, unsigned char dup, int qos, unsigned char retained, unsigned short packetid,
|
|
MQTTString topicName, unsigned char* payload, int payloadlen)
|
|
{
|
|
unsigned char *ptr = buf;
|
|
MQTTHeader header = {0};
|
|
- int rem_len = 0;
|
|
+ int32_t rem_len = 0;
|
|
int rc = 0;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -101,7 +101,7 @@ exit:
|
|
* @param packetid the MQTT packet identifier
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_ack(unsigned char* buf, int buflen, unsigned char packettype, unsigned char dup, unsigned short packetid)
|
|
+int MQTTSerialize_ack(unsigned char* buf, int32_t buflen, unsigned char packettype, unsigned char dup, unsigned short packetid)
|
|
{
|
|
MQTTHeader header = {0};
|
|
int rc = 0;
|
|
@@ -134,7 +134,7 @@ exit:
|
|
* @param packetid integer - the MQTT packet identifier
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid)
|
|
+int MQTTSerialize_puback(unsigned char* buf, int32_t buflen, unsigned short packetid)
|
|
{
|
|
return MQTTSerialize_ack(buf, buflen, PUBACK, 0, packetid);
|
|
}
|
|
@@ -148,7 +148,7 @@ int MQTTSerialize_puback(unsigned char* buf, int buflen, unsigned short packetid
|
|
* @param packetid integer - the MQTT packet identifier
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid)
|
|
+int MQTTSerialize_pubrel(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid)
|
|
{
|
|
return MQTTSerialize_ack(buf, buflen, PUBREL, dup, packetid);
|
|
}
|
|
@@ -161,7 +161,7 @@ int MQTTSerialize_pubrel(unsigned char* buf, int buflen, unsigned char dup, unsi
|
|
* @param packetid integer - the MQTT packet identifier
|
|
* @return serialized length, or error if 0
|
|
*/
|
|
-int MQTTSerialize_pubcomp(unsigned char* buf, int buflen, unsigned short packetid)
|
|
+int MQTTSerialize_pubcomp(unsigned char* buf, int32_t buflen, unsigned short packetid)
|
|
{
|
|
return MQTTSerialize_ack(buf, buflen, PUBCOMP, 0, packetid);
|
|
}
|
|
diff --git a/MQTTPacket/src/MQTTSubscribe.h b/MQTTPacket/src/MQTTSubscribe.h
|
|
index aa91826..80c5734 100644
|
|
--- a/MQTTPacket/src/MQTTSubscribe.h
|
|
+++ b/MQTTPacket/src/MQTTSubscribe.h
|
|
@@ -19,21 +19,21 @@
|
|
#define MQTTSUBSCRIBE_H_
|
|
|
|
#if !defined(DLLImport)
|
|
- #define DLLImport
|
|
+ #define DLLImport
|
|
#endif
|
|
#if !defined(DLLExport)
|
|
#define DLLExport
|
|
#endif
|
|
|
|
-DLLExport int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid,
|
|
+DLLExport int MQTTSerialize_subscribe(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid,
|
|
int count, MQTTString topicFilters[], int requestedQoSs[]);
|
|
|
|
DLLExport int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid,
|
|
- int maxcount, int* count, MQTTString topicFilters[], int requestedQoSs[], unsigned char* buf, int len);
|
|
+ int maxcount, int* count, MQTTString topicFilters[], int requestedQoSs[], unsigned char* buf, int32_t len);
|
|
|
|
-DLLExport int MQTTSerialize_suback(unsigned char* buf, int buflen, unsigned short packetid, int count, int* grantedQoSs);
|
|
+DLLExport int MQTTSerialize_suback(unsigned char* buf, int32_t buflen, unsigned short packetid, int count, int* grantedQoSs);
|
|
|
|
-DLLExport int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int len);
|
|
+DLLExport int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int32_t len);
|
|
|
|
|
|
#endif /* MQTTSUBSCRIBE_H_ */
|
|
diff --git a/MQTTPacket/src/MQTTSubscribeClient.c b/MQTTPacket/src/MQTTSubscribeClient.c
|
|
index 57a0613..e890f14 100644
|
|
--- a/MQTTPacket/src/MQTTSubscribeClient.c
|
|
+++ b/MQTTPacket/src/MQTTSubscribeClient.c
|
|
@@ -28,7 +28,7 @@
|
|
int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[])
|
|
{
|
|
int i;
|
|
- int len = 2; /* packetid */
|
|
+ int32_t len = 2; /* packetid */
|
|
|
|
for (i = 0; i < count; ++i)
|
|
len += 2 + MQTTstrlen(topicFilters[i]) + 1; /* length + topic + req_qos */
|
|
@@ -47,12 +47,12 @@ int MQTTSerialize_subscribeLength(int count, MQTTString topicFilters[])
|
|
* @param requestedQoSs - array of requested QoS
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTSerialize_subscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid, int count,
|
|
+int MQTTSerialize_subscribe(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid, int count,
|
|
MQTTString topicFilters[], int requestedQoSs[])
|
|
{
|
|
unsigned char *ptr = buf;
|
|
MQTTHeader header = {0};
|
|
- int rem_len = 0;
|
|
+ int32_t rem_len = 0;
|
|
int rc = 0;
|
|
int i = 0;
|
|
|
|
@@ -97,12 +97,12 @@ exit:
|
|
* @param buflen the length in bytes of the data in the supplied buffer
|
|
* @return error code. 1 is success, 0 is failure
|
|
*/
|
|
-int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int buflen)
|
|
+int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, int grantedQoSs[], unsigned char* buf, int32_t buflen)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
int mylen;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -131,7 +131,7 @@ int MQTTDeserialize_suback(unsigned short* packetid, int maxcount, int* count, i
|
|
rc = 1;
|
|
exit:
|
|
FUNC_EXIT_RC(rc);
|
|
- return rc;
|
|
+ return (int) rc;
|
|
}
|
|
|
|
|
|
diff --git a/MQTTPacket/src/MQTTSubscribeServer.c b/MQTTPacket/src/MQTTSubscribeServer.c
|
|
index 5579645..9553d8d 100644
|
|
--- a/MQTTPacket/src/MQTTSubscribeServer.c
|
|
+++ b/MQTTPacket/src/MQTTSubscribeServer.c
|
|
@@ -33,12 +33,12 @@
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid, int maxcount, int* count, MQTTString topicFilters[],
|
|
- int requestedQoSs[], unsigned char* buf, int buflen)
|
|
+ int requestedQoSs[], unsigned char* buf, int32_t buflen)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = -1;
|
|
+ int32_t rc = -1;
|
|
int mylen = 0;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -66,7 +66,7 @@ int MQTTDeserialize_subscribe(unsigned char* dup, unsigned short* packetid, int
|
|
rc = 1;
|
|
exit:
|
|
FUNC_EXIT_RC(rc);
|
|
- return rc;
|
|
+ return (int) rc;
|
|
}
|
|
|
|
|
|
@@ -79,7 +79,7 @@ exit:
|
|
* @param grantedQoSs - array of granted QoS
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTSerialize_suback(unsigned char* buf, int buflen, unsigned short packetid, int count, int* grantedQoSs)
|
|
+int MQTTSerialize_suback(unsigned char* buf, int32_t buflen, unsigned short packetid, int count, int* grantedQoSs)
|
|
{
|
|
MQTTHeader header = {0};
|
|
int rc = -1;
|
|
diff --git a/MQTTPacket/src/MQTTUnsubscribe.h b/MQTTPacket/src/MQTTUnsubscribe.h
|
|
index 355ca9a..cf45e0c 100644
|
|
--- a/MQTTPacket/src/MQTTUnsubscribe.h
|
|
+++ b/MQTTPacket/src/MQTTUnsubscribe.h
|
|
@@ -19,20 +19,20 @@
|
|
#define MQTTUNSUBSCRIBE_H_
|
|
|
|
#if !defined(DLLImport)
|
|
- #define DLLImport
|
|
+ #define DLLImport
|
|
#endif
|
|
#if !defined(DLLExport)
|
|
#define DLLExport
|
|
#endif
|
|
|
|
-DLLExport int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid,
|
|
+DLLExport int32_t MQTTSerialize_unsubscribe(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid,
|
|
int count, MQTTString topicFilters[]);
|
|
|
|
-DLLExport int MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int max_count, int* count, MQTTString topicFilters[],
|
|
- unsigned char* buf, int len);
|
|
+DLLExport int32_t MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int max_count, int* count, MQTTString topicFilters[],
|
|
+ unsigned char* buf, int32_t len);
|
|
|
|
-DLLExport int MQTTSerialize_unsuback(unsigned char* buf, int buflen, unsigned short packetid);
|
|
+DLLExport int MQTTSerialize_unsuback(unsigned char* buf, int32_t buflen, unsigned short packetid);
|
|
|
|
-DLLExport int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int len);
|
|
+DLLExport int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int32_t len);
|
|
|
|
#endif /* MQTTUNSUBSCRIBE_H_ */
|
|
diff --git a/MQTTPacket/src/MQTTUnsubscribeClient.c b/MQTTPacket/src/MQTTUnsubscribeClient.c
|
|
index e7ec530..8c92419 100644
|
|
--- a/MQTTPacket/src/MQTTUnsubscribeClient.c
|
|
+++ b/MQTTPacket/src/MQTTUnsubscribeClient.c
|
|
@@ -25,10 +25,10 @@
|
|
* @param topicFilters the array of topic filter strings to be used in the publish
|
|
* @return the length of buffer needed to contain the serialized version of the packet
|
|
*/
|
|
-int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[])
|
|
+int32_t MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[])
|
|
{
|
|
int i;
|
|
- int len = 2; /* packetid */
|
|
+ int32_t len = 2; /* packetid */
|
|
|
|
for (i = 0; i < count; ++i)
|
|
len += 2 + MQTTstrlen(topicFilters[i]); /* length + topic*/
|
|
@@ -46,12 +46,12 @@ int MQTTSerialize_unsubscribeLength(int count, MQTTString topicFilters[])
|
|
* @param topicFilters - array of topic filter names
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTSerialize_unsubscribe(unsigned char* buf, int buflen, unsigned char dup, unsigned short packetid,
|
|
+int32_t MQTTSerialize_unsubscribe(unsigned char* buf, int32_t buflen, unsigned char dup, unsigned short packetid,
|
|
int count, MQTTString topicFilters[])
|
|
{
|
|
unsigned char *ptr = buf;
|
|
MQTTHeader header = {0};
|
|
- int rem_len = 0;
|
|
+ int32_t rem_len = 0;
|
|
int rc = -1;
|
|
int i = 0;
|
|
|
|
@@ -89,7 +89,7 @@ exit:
|
|
* @param buflen the length in bytes of the data in the supplied buffer
|
|
* @return error code. 1 is success, 0 is failure
|
|
*/
|
|
-int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int buflen)
|
|
+int MQTTDeserialize_unsuback(unsigned short* packetid, unsigned char* buf, int32_t buflen)
|
|
{
|
|
unsigned char type = 0;
|
|
unsigned char dup = 0;
|
|
diff --git a/MQTTPacket/src/MQTTUnsubscribeServer.c b/MQTTPacket/src/MQTTUnsubscribeServer.c
|
|
index 42b6102..e740cea 100644
|
|
--- a/MQTTPacket/src/MQTTUnsubscribeServer.c
|
|
+++ b/MQTTPacket/src/MQTTUnsubscribeServer.c
|
|
@@ -31,13 +31,13 @@
|
|
* @param buflen the length in bytes of the data in the supplied buffer
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int maxcount, int* count, MQTTString topicFilters[],
|
|
- unsigned char* buf, int len)
|
|
+int32_t MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, int maxcount, int* count, MQTTString topicFilters[],
|
|
+ unsigned char* buf, int32_t len)
|
|
{
|
|
MQTTHeader header = {0};
|
|
unsigned char* curdata = buf;
|
|
unsigned char* enddata = NULL;
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
int mylen = 0;
|
|
|
|
FUNC_ENTRY;
|
|
@@ -62,7 +62,7 @@ int MQTTDeserialize_unsubscribe(unsigned char* dup, unsigned short* packetid, in
|
|
rc = 1;
|
|
exit:
|
|
FUNC_EXIT_RC(rc);
|
|
- return rc;
|
|
+ return (int) rc;
|
|
}
|
|
|
|
|
|
@@ -73,7 +73,7 @@ exit:
|
|
* @param packetid integer - the MQTT packet identifier
|
|
* @return the length of the serialized data. <= 0 indicates error
|
|
*/
|
|
-int MQTTSerialize_unsuback(unsigned char* buf, int buflen, unsigned short packetid)
|
|
+int MQTTSerialize_unsuback(unsigned char* buf, int32_t buflen, unsigned short packetid)
|
|
{
|
|
MQTTHeader header = {0};
|
|
int rc = 0;
|
|
diff --git a/MQTTPacket/test/test1.c b/MQTTPacket/test/test1.c
|
|
index 4614ff7..e4187a2 100644
|
|
--- a/MQTTPacket/test/test1.c
|
|
+++ b/MQTTPacket/test/test1.c
|
|
@@ -365,7 +365,7 @@ int test1(struct Options options)
|
|
|
|
int test2(struct Options options)
|
|
{
|
|
- int rc = 0;
|
|
+ int32_t rc = 0;
|
|
unsigned char buf[100];
|
|
int buflen = sizeof(buf);
|
|
|
|
--
|
|
2.38.1
|
|
|