--- libaitmqtt/src/aitmqtt.c 2022/09/13 22:20:59 1.3.4.3 +++ libaitmqtt/src/aitmqtt.c 2022/09/15 15:04:44 1.3.4.5 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitmqtt.c,v 1.3.4.3 2022/09/13 22:20:59 misho Exp $ +* $Id: aitmqtt.c,v 1.3.4.5 2022/09/15 15:04:44 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -80,29 +80,7 @@ mqtt_SetErr(int eno, char *estr, ...) va_end(lst); } -#pragma GCC visibility push(hidden) -/* _mqtt_readHEADER() read fixed header from MQTT message */ -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 - - /* * mqtt_msgFree() Free MQTT message * @@ -115,11 +93,11 @@ mqtt_msgFree(mqtt_msg_t ** __restrict msg, int keepmsg { if (msg && *msg) { if ((*msg)->msg_base) { - free((*msg)->msg_base); + e_free((*msg)->msg_base); (*msg)->msg_base = NULL; } if (!keepmsg) { - free(*msg); + e_free(*msg); *msg = NULL; } else (*msg)->msg_len ^= (*msg)->msg_len; @@ -137,7 +115,7 @@ mqtt_msgAlloc(u_int len) { mqtt_msg_t *m = NULL; - m = malloc(sizeof(mqtt_msg_t)); + m = e_malloc(sizeof(mqtt_msg_t)); if (!m) { LOGERR; return NULL; @@ -146,10 +124,10 @@ mqtt_msgAlloc(u_int len) if (len) { m->msg_len = len; - m->msg_base = malloc(m->msg_len); + m->msg_base = e_malloc(m->msg_len); if (!m->msg_base) { LOGERR; - free(m); + e_free(m); return NULL; } else memset(m->msg_base, 0, m->msg_len); @@ -177,7 +155,7 @@ mqtt_msgRealloc(mqtt_msg_t * __restrict msg, u_int len if (len <= msg->msg_len) return len; - p = realloc(msg->msg_base, len); + p = e_realloc(msg->msg_base, len); if (!p) { LOGERR; return -1; @@ -201,7 +179,7 @@ mqtt_msgDup(mqtt_msg_t * __restrict msg) { mqtt_msg_t *m = NULL; - m = malloc(sizeof(mqtt_msg_t)); + m = e_malloc(sizeof(mqtt_msg_t)); if (!m) { LOGERR; return NULL; @@ -210,10 +188,10 @@ mqtt_msgDup(mqtt_msg_t * __restrict msg) if (msg->msg_len) { m->msg_len = msg->msg_len; - m->msg_base = malloc(m->msg_len); + m->msg_base = e_malloc(m->msg_len); if (!m->msg_base) { LOGERR; - free(m); + e_free(m); return NULL; } else memcpy(m->msg_base, msg->msg_base, m->msg_len); @@ -345,7 +323,7 @@ mqtt_strs2subs(const char **csStr, u_short strnum, u_c (!strnum || (strnum && items < strnum)) && *strs; items++, strs++); - if (!(v = malloc((items + 1) * sizeof(mqtt_subscr_t)))) { + if (!(v = e_malloc((items + 1) * sizeof(mqtt_subscr_t)))) { LOGERR; return NULL; } else @@ -353,9 +331,9 @@ mqtt_strs2subs(const char **csStr, u_short strnum, u_c for (i = 0; i < items; i++) { v[i].sub_topic.msg_len = strlen(csStr[i]); - v[i].sub_topic.msg_base = (u_char*) strdup(csStr[i]); + v[i].sub_topic.msg_base = (u_char*) e_strdup(csStr[i]); if (qoses && qoses[i] < MQTT_QOS_RESERVED) - v[i].sub_ret = qoses[i]; + v[i].sub_qos = qoses[i]; } return v; @@ -376,18 +354,18 @@ mqtt_subFree(mqtt_subscr_t ** __restrict subs) return; for (v = *subs; v->sub_topic.msg_base; v++) { - free(v->sub_topic.msg_base); + e_free(v->sub_topic.msg_base); v->sub_topic.msg_base = NULL; v->sub_topic.msg_len = 0; if (v->sub_value.msg_base) { - free(v->sub_value.msg_base); + e_free(v->sub_value.msg_base); v->sub_value.msg_base = NULL; v->sub_value.msg_len = 0; } } - free(*subs); + e_free(*subs); *subs = NULL; } @@ -402,7 +380,7 @@ mqtt_subAlloc(u_short num) { mqtt_subscr_t *s = NULL; - s = malloc((num + 1) * sizeof(mqtt_subscr_t)); + s = e_malloc((num + 1) * sizeof(mqtt_subscr_t)); if (!s) { LOGERR; return NULL; @@ -434,7 +412,7 @@ mqtt_subRealloc(mqtt_subscr_t ** __restrict subs, u_sh if (i == num) return *subs; - s = realloc(*subs, (num + 1) * sizeof(mqtt_subscr_t)); + s = e_realloc(*subs, (num + 1) * sizeof(mqtt_subscr_t)); if (!s) { LOGERR; return NULL; @@ -460,7 +438,7 @@ mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs return NULL; if (src->sub_topic.msg_base) { - dst->sub_topic.msg_base = malloc(src->sub_topic.msg_len + 1); + dst->sub_topic.msg_base = e_malloc(src->sub_topic.msg_len + 1); if (!dst->sub_topic.msg_base) { LOGERR; memset(dst, 0, sizeof(mqtt_subscr_t)); @@ -477,11 +455,11 @@ mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs } if (src->sub_value.msg_base) { - dst->sub_value.msg_base = malloc(src->sub_value.msg_len + 1); + dst->sub_value.msg_base = e_malloc(src->sub_value.msg_len + 1); if (!dst->sub_value.msg_base) { LOGERR; if (dst->sub_topic.msg_base) - free(dst->sub_topic.msg_base); + e_free(dst->sub_topic.msg_base); memset(dst, 0, sizeof(mqtt_subscr_t)); return NULL; } else { @@ -495,7 +473,7 @@ mqtt_subCopy(mqtt_subscr_t * __restrict dst, mqtt_subs dst->sub_value.msg_len = 0; } - dst->sub_ret = src->sub_ret; + dst->sub_qos = src->sub_qos; return dst; }