--- libaitmqtt/src/pub.c 2022/09/14 17:37:13 1.4.4.1 +++ libaitmqtt/src/pub.c 2022/09/14 18:36:23 1.4.4.2 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: pub.c,v 1.4.4.1 2022/09/14 17:37:13 misho Exp $ +* $Id: pub.c,v 1.4.4.2 2022/09/14 18:36:23 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -195,188 +195,3 @@ mqtt_msgPUBCOMP(u_short msgID) { return _mqtt_msgPUB_(MQTT_TYPE_PUBCOMP, msgID); } - - -/* ============= decode ============ */ - -#if 0 -/* - * mqtt_readPUBLISH() Read PUBLISH message - * - * @buf = Message buffer - * @psTopic = Topic - * @topicLen = Topic length - * @msgID = MessageID - * @pData = Data buffer, may be NULL - * return: -1 error or !=-1 allocated data buffer length - */ -int -mqtt_readPUBLISH(mqtt_msg_t * __restrict buf, char * __restrict psTopic, int topicLen, - u_short *msgID, void ** __restrict pData) -{ - int len, ret; - struct mqtthdr *hdr; - mqtthdr_var_t *var; - mqtt_len_t *v; - caddr_t pos; - - if (!buf || !psTopic || !msgID) - return -1; - - hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PUBLISH, &ret, &len); - if (!hdr) - return -1; - pos = buf->msg_base + ret + 1; - var = (mqtthdr_var_t*) pos; - - /* topic */ - len -= MQTTHDR_VAR_SIZEOF(var); - if (len < 0) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return -1; - } else { - memset(psTopic, 0, topicLen--); - memcpy(psTopic, var->var_data, ntohs(var->var_sb.val) > topicLen ? - topicLen : ntohs(var->var_sb.val)); - pos += MQTTHDR_VAR_SIZEOF(var); - v = (mqtt_len_t*) pos; - } - - len -= sizeof(mqtt_len_t); - if (len < 0) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return -1; - } else { - *msgID = ntohs(v->val); - pos += sizeof(mqtt_len_t); - } - - /* data */ - if (len < 0) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return -1; - } else if (pData) { - if (!(*pData = malloc(len + 1))) { - LOGERR; - return -1; - } else - ((char*) (*pData))[len] = 0; - - memcpy(*pData, pos, len); - } - - return len; -} - -/* - * mqtt_readPUBACK() Read PUBACK message - * - * @buf = Message buffer - * return: -1 error or MessageID - */ -u_short -mqtt_readPUBACK(mqtt_msg_t * __restrict buf) -{ - int len, ret; - struct mqtthdr *hdr; - mqtt_len_t *v; - caddr_t pos; - - hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PUBACK, &ret, &len); - if (!hdr) - return (u_short) -1; - if (len < sizeof(mqtt_len_t)) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return (u_short) -1; - } else { - pos = buf->msg_base + ret + 1; - v = (mqtt_len_t*) pos; - } - - return ntohs(v->val); -} - -/* - * mqtt_readPUBREC() Read PUBREC message - * - * @buf = Message buffer - * return: -1 error or MessageID - */ -u_short -mqtt_readPUBREC(mqtt_msg_t * __restrict buf) -{ - int len, ret; - struct mqtthdr *hdr; - mqtt_len_t *v; - caddr_t pos; - - hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PUBREC, &ret, &len); - if (!hdr) - return (u_short) -1; - if (len < sizeof(mqtt_len_t)) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return (u_short) -1; - } else { - pos = buf->msg_base + ret + 1; - v = (mqtt_len_t*) pos; - } - - return ntohs(v->val); -} - -/* - * mqtt_readPUBREL() Read PUBREL message - * - * @buf = Message buffer - * return: -1 error or MessageID - */ -u_short -mqtt_readPUBREL(mqtt_msg_t * __restrict buf) -{ - int len, ret; - struct mqtthdr *hdr; - mqtt_len_t *v; - caddr_t pos; - - hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PUBREL, &ret, &len); - if (!hdr) - return (u_short) -1; - if (len < sizeof(mqtt_len_t)) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return (u_short) -1; - } else { - pos = buf->msg_base + ret + 1; - v = (mqtt_len_t*) pos; - } - - return ntohs(v->val); -} - -/* - * mqtt_readPUBCOMP() Read PUBCOMP message - * - * @buf = Message buffer - * return: -1 error or MessageID - */ -u_short -mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf) -{ - int len, ret; - struct mqtthdr *hdr; - mqtt_len_t *v; - caddr_t pos; - - hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PUBCOMP, &ret, &len); - if (!hdr) - return (u_short) -1; - if (len < sizeof(mqtt_len_t)) { - mqtt_SetErr(EINVAL, "Short message length %d", len); - return (u_short) -1; - } else { - pos = buf->msg_base + ret + 1; - v = (mqtt_len_t*) pos; - } - - return ntohs(v->val); -} -#endif