Annotation of mqtt/src/sub.c, revision 1.1.2.3

1.1.2.1   misho       1: #include "global.h"
                      2: 
                      3: 
                      4: /* ------------------------------------------------------------------- */
                      5: 
1.1.2.2   misho       6: int
                      7: mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, const char *csTopic, u_short msgID, 
1.1.2.3 ! misho       8:                u_char Dup, u_char QOS)
1.1.2.2   misho       9: {
1.1.2.3 ! misho      10:        int siz = 0;
        !            11: #if 0
        !            12:        struct mqtthdr *hdr;
        !            13:        mqtthdr_var_t *topic;
        !            14:        mqtt_v_t *mid;
        !            15: 
        !            16:        if (!buf || !csTopic)
        !            17:                return -1;
        !            18:        if (QOS > MQTT_QOS_EXACTLY) {
        !            19:                mqtt_SetErr(EINVAL, "Error:: invalid QoS parameter");
        !            20:                return -1;
        !            21:        }
        !            22:        if (!msgID && QOS != MQTT_QOS_ONCE) {
        !            23:                mqtt_SetErr(EINVAL, "Error:: invalid MessageID parameter must be >0");
        !            24:                return -1;
        !            25:        }
        !            26: 
        !            27:        if (mqtt_msgRealloc(buf, MQTTMSG_MAX) == -1)
        !            28:                return -1;
        !            29:        else {
        !            30:                hdr = (struct mqtthdr *) (buf->msg_base + siz);
        !            31:                siz += sizeof(struct mqtthdr);
        !            32:        }
        !            33: 
        !            34:        /* variable header */
        !            35: 
        !            36:        topic = (mqtthdr_var_t*) (buf->msg_base + siz);
        !            37:        topic->var_sb.val = htons(strlen(csTopic));
        !            38:        memcpy(topic->var_data, csTopic, ntohs(topic->var_sb.val));
        !            39:        siz += MQTTHDR_VAR_SIZEOF(topic);
        !            40: 
        !            41:        mid = (mqtt_v_t*) (buf->msg_base + siz);
        !            42:        mid->val = htons(msgID);
        !            43:        siz += sizeof(mqtt_v_t);
        !            44: 
        !            45:        /* fixed header */
        !            46: 
        !            47:        hdr->mqtt_msg.type = MQTT_TYPE_PUBLISH;
        !            48:        hdr->mqtt_msg.qos = QOS;
        !            49:        hdr->mqtt_msg.dup = Dup ? 1 : 0;
        !            50:        hdr->mqtt_msg.retain = Retain ? 1 : 0;
        !            51:        *hdr->mqtt_len = mqtt_encodeLen(siz - sizeof(struct mqtthdr));
        !            52: 
        !            53:        mqtt_msgRealloc(buf, siz);
        !            54: #endif
        !            55:        return siz;
1.1.2.2   misho      56: }

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