My Modify MQTTPacket Packet size 100 -> 400
Fork of MQTTPacket by
Revision 4:c502573c6016, committed 2014-04-11
- Comitter:
- Ian Craggs
- Date:
- Fri Apr 11 23:44:15 2014 +0100
- Parent:
- 3:4a4f8699f935
- Child:
- 5:eea71419676a
- Commit message:
- Pings and other fixes
Changed in this revision
--- a/MQTTConnect.h Thu Apr 10 22:54:14 2014 +0000 +++ b/MQTTConnect.h Fri Apr 11 23:44:15 2014 +0100 @@ -82,7 +82,8 @@ char struct_id[4]; /** The version number of this structure. Must be 0 */ int struct_version; - /** Version of MQTT to be used. 3 = 3.1 4 = 3.1.1 */ + /** Version of MQTT to be used. 3 = 3.1 4 = 3.1.1 + */ int MQTTVersion; MQTTString clientID; int keepAliveInterval; @@ -103,5 +104,6 @@ int MQTTDeserialize_connack(int* connack_rc, char* buf, int buflen); int MQTTSerialize_disconnect(char* buf, int buflen); +int MQTTSerialize_pingreq(char* buf, int buflen); #endif /* MQTTCONNECT_H_ */
--- a/MQTTConnectClient.c Thu Apr 10 22:54:14 2014 +0000
+++ b/MQTTConnectClient.c Fri Apr 11 23:44:15 2014 +0100
@@ -157,13 +157,15 @@
}
+
/**
- * Serializes a disconnect packet into the supplied buffer, ready for writing to a socket
+ * Serializes a 0-length packet into the supplied buffer, ready for writing to a socket
* @param buf the buffer into which the packet will be serialized
* @param buflen the length in bytes of the supplied buffer, to avoid overruns
+ * @param type the message type
* @return serialized length, or error if 0
*/
-int MQTTSerialize_disconnect(char* buf, int buflen)
+int MQTTSerialize_zero(char* buf, int buflen, int type)
{
MQTTHeader header;
int rc = -1;
@@ -176,7 +178,7 @@
goto exit;
}
header.byte = 0;
- header.bits.type = DISCONNECT;
+ header.bits.type = type;
writeChar(&ptr, header.byte); /* write header */
ptr += MQTTPacket_encode(ptr, 0); /* write remaining length */
@@ -185,3 +187,27 @@
FUNC_EXIT_RC(rc);
return rc;
}
+
+
+/**
+ * Serializes a disconnect packet into the supplied buffer, ready for writing to a socket
+ * @param buf the buffer into which the packet will be serialized
+ * @param buflen the length in bytes of the supplied buffer, to avoid overruns
+ * @return serialized length, or error if 0
+ */
+int MQTTSerialize_disconnect(char* buf, int buflen)
+{
+ return MQTTSerialize_zero(buf, buflen, DISCONNECT);
+}
+
+
+/**
+ * Serializes a disconnect packet into the supplied buffer, ready for writing to a socket
+ * @param buf the buffer into which the packet will be serialized
+ * @param buflen the length in bytes of the supplied buffer, to avoid overruns
+ * @return serialized length, or error if 0
+ */
+int MQTTSerialize_pingreq(char* buf, int buflen)
+{
+ return MQTTSerialize_zero(buf, buflen, PINGREQ);
+}
--- a/MQTTPacket.c Thu Apr 10 22:54:14 2014 +0000
+++ b/MQTTPacket.c Fri Apr 11 23:44:15 2014 +0100
@@ -174,7 +174,7 @@
* @param pptr pointer to the output buffer - incremented by the number of bytes used & returned
* @param string the C string to write
*/
-void writeCString(char** pptr, char* string)
+void writeCString(char** pptr, const char* string)
{
int len = strlen(string);
writeInt(pptr, len);
--- a/MQTTPacket.h Thu Apr 10 22:54:14 2014 +0000 +++ b/MQTTPacket.h Fri Apr 11 23:44:15 2014 +0100 @@ -81,6 +81,7 @@ #include "MQTTSubscribe.h" #include "MQTTUnsubscribe.h" +int MQTTSerialize_ack(char* buf, int buflen, int type, int dup, int packetid); int MQTTDeserialize_ack(int* type, int* dup, int* packetid, char* buf, int buflen); int MQTTPacket_len(int rem_len); @@ -94,11 +95,9 @@ void writeChar(char** pptr, char c); void writeInt(char** pptr, int anInt); int readMQTTLenString(MQTTString* mqttstring, char** pptr, char* enddata); -void writeCString(char** pptr, char* string); +void writeCString(char** pptr, const char* string); void writeMQTTString(char** pptr, MQTTString mqttstring); -int MQTTPacket_read(char* buf, int buflen, int (*getfn)(char*, int)); - #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ } #endif
