MQTTPacket
Fork of MQTTPacket by
Diff: MQTTPacket.c
- Revision:
- 14:c2052aee81de
- Parent:
- 8:b97b9873af52
- Child:
- 17:c5bd28cc139a
--- a/MQTTPacket.c Fri Aug 01 13:08:46 2014 +0100 +++ b/MQTTPacket.c Fri Aug 01 15:34:04 2014 +0100 @@ -25,7 +25,7 @@ * @param length the length to be encoded * @return the number of bytes written to buffer */ -int MQTTPacket_encode(char* buf, int length) +int MQTTPacket_encode(unsigned char* buf, int length) { int rc = 0; @@ -50,9 +50,9 @@ * @param value the decoded length returned * @return the number of bytes read from the socket */ -int MQTTPacket_decode(int (*getcharfn)(char*, int), int* value) +int MQTTPacket_decode(int (*getcharfn)(unsigned char*, int), int* value) { - char c; + unsigned char c; int multiplier = 1; int len = 0; #define MAX_NO_OF_REMAINING_LENGTH_BYTES 4 @@ -97,9 +97,9 @@ } -static char* bufptr; +static unsigned char* bufptr; -int bufchar(char* c, int count) +int bufchar(unsigned char* c, int count) { int i; @@ -109,7 +109,7 @@ } -int MQTTPacket_decodeBuf(char* buf, int* value) +int MQTTPacket_decodeBuf(unsigned char* buf, int* value) { bufptr = buf; return MQTTPacket_decode(bufchar, value); @@ -121,10 +121,10 @@ * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned * @return the integer value calculated */ -int readInt(char** pptr) +int readInt(unsigned char** pptr) { - char* ptr = *pptr; - int len = 256*((unsigned char)(*ptr)) + (unsigned char)(*(ptr+1)); + unsigned char* ptr = *pptr; + int len = 256*(*ptr) + (*(ptr+1)); *pptr += 2; return len; } @@ -135,7 +135,7 @@ * @param pptr pointer to the input buffer - incremented by the number of bytes used & returned * @return the character read */ -char readChar(char** pptr) +char readChar(unsigned char** pptr) { char c = **pptr; (*pptr)++; @@ -148,7 +148,7 @@ * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned * @param c the character to write */ -void writeChar(char** pptr, char c) +void writeChar(unsigned char** pptr, char c) { **pptr = c; (*pptr)++; @@ -160,11 +160,11 @@ * @param pptr pointer to the output buffer - incremented by the number of bytes used & returned * @param anInt the integer to write */ -void writeInt(char** pptr, int anInt) +void writeInt(unsigned char** pptr, int anInt) { - **pptr = (char)(anInt / 256); + **pptr = (unsigned char)(anInt / 256); (*pptr)++; - **pptr = (char)(anInt % 256); + **pptr = (unsigned char)(anInt % 256); (*pptr)++; } @@ -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, const char* string) +void writeCString(unsigned char** pptr, const char* string) { int len = strlen(string); writeInt(pptr, len); @@ -190,7 +190,7 @@ } -void writeMQTTString(char** pptr, MQTTString mqttstring) +void writeMQTTString(unsigned char** pptr, MQTTString mqttstring) { if (mqttstring.lenstring.len > 0) { @@ -211,7 +211,7 @@ * @param enddata pointer to the end of the data: do not read beyond * @return 1 if successful, 0 if not */ -int readMQTTLenString(MQTTString* mqttstring, char** pptr, char* enddata) +int readMQTTLenString(MQTTString* mqttstring, unsigned char** pptr, unsigned char* enddata) { int rc = 0; @@ -222,7 +222,7 @@ mqttstring->lenstring.len = readInt(pptr); /* increments pptr to point past length */ if (&(*pptr)[mqttstring->lenstring.len] <= enddata) { - mqttstring->lenstring.data = *pptr; + mqttstring->lenstring.data = (char*)*pptr; *pptr += mqttstring->lenstring.len; rc = 1; } @@ -285,7 +285,7 @@ * @param getfn pointer to a function which will read any number of bytes from the needed source * @return integer MQTT packet type, or -1 on error */ -int MQTTPacket_read(char* buf, int buflen, int (*getfn)(char*, int)) +int MQTTPacket_read(unsigned char* buf, int buflen, int (*getfn)(unsigned char*, int)) { int rc = -1; MQTTHeader header;