Diff for /libaitmqtt/src/pub.c between versions 1.4.4.1 and 1.4.4.2

version 1.4.4.1, 2022/09/14 17:37:13 version 1.4.4.2, 2022/09/14 18:36:23
Line 195  mqtt_msgPUBCOMP(u_short msgID) Line 195  mqtt_msgPUBCOMP(u_short msgID)
 {  {
         return _mqtt_msgPUB_(MQTT_TYPE_PUBCOMP, 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  

Removed from v.1.4.4.1  
changed lines
  Added in v.1.4.4.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>