--- mqtt/src/Attic/aitmqtt.c 2011/12/05 10:37:17 1.1.1.1.2.13 +++ mqtt/src/Attic/aitmqtt.c 2011/12/05 16:55:40 1.1.1.1.2.14 @@ -39,6 +39,28 @@ mqtt_SetErr(int eno, char *estr, ...) va_end(lst); } +#pragma GCC visibility push(hidden) +// _mqtt_readHEADER() read fixed header from MQTT message +inline struct mqtthdr * +_mqtt_readHEADER(mqtt_msg_t * __restrict buf, u_char cmd, int *bytes, int *len) +{ + struct mqtthdr *hdr; + + if (!buf || !buf->msg_base || !buf->msg_len) + return NULL; + + hdr = (struct mqtthdr*) buf->msg_base; + if (hdr->mqtt_msg.type != cmd) { + mqtt_SetErr(EINVAL, "Error:: wrong command #%d should be %d", + hdr->mqtt_msg.type, cmd); + return NULL; + } + + *len = mqtt_decodeLen(hdr->mqtt_len, bytes); + return hdr; +} +#pragma GCC visibility pop + // ---------------------------------------------------------- /*