Diff for /mqtt/src/Attic/sub.c between versions 1.1.2.4 and 1.1.2.5

version 1.1.2.4, 2011/11/21 16:28:05 version 1.1.2.5, 2011/11/22 10:33:39
Line 3 Line 3
   
 /* ------------------------------------------------------------------- */  /* ------------------------------------------------------------------- */
   
   /*
    * mqtt_msgSUBSCRIBE() Create SUBSCRIBE message
    *
    * @buf = Message buffer
    * @Topics = MQTT subscription topics
    * @msgID = MessageID
    * @Dup = Duplicate message
    * @QOS = QoS
    * return: -1 error or >-1 message size for send
    */
 int  int
mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, const char *csTopic, u_short msgID, mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, mqtt_subscr_t * __restrict Topics, 
                u_char Dup, u_char QOS)                u_short msgID, u_char Dup, u_char QOS)
 {  {
         int siz = 0;          int siz = 0;
         struct mqtthdr *hdr;          struct mqtthdr *hdr;
         mqtthdr_var_t *topic;          mqtthdr_var_t *topic;
         mqtt_v_t *mid;          mqtt_v_t *mid;
           mqtt_subscr_t *t;
           u_char *qos;
   
        if (!buf || !csTopic)        if (!buf || !Topics)
                 return -1;                  return -1;
         if (QOS > MQTT_QOS_EXACTLY) {          if (QOS > MQTT_QOS_EXACTLY) {
                 mqtt_SetErr(EINVAL, "Error:: invalid QoS parameter");                  mqtt_SetErr(EINVAL, "Error:: invalid QoS parameter");
Line 36  mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, const c Line 48  mqtt_msgSUBSCRIBE(mqtt_msg_t * __restrict buf, const c
         mid->val = htons(msgID);          mid->val = htons(msgID);
         siz += sizeof(mqtt_v_t);          siz += sizeof(mqtt_v_t);
   
        topic = (mqtthdr_var_t*) (buf->msg_base + siz);        /* payload with subscriptions */
        topic->var_sb.val = htons(strlen(csTopic));
        memcpy(topic->var_data, csTopic, ntohs(topic->var_sb.val));        for (t = Topics; t && t->sub_data; t++) {
        siz += MQTTHDR_VAR_SIZEOF(topic);                topic = (mqtthdr_var_t*) (buf->msg_base + siz);
                 topic->var_sb.val = t->sub_sb.val;
                 memcpy(topic->var_data, t->sub_data, ntohs(topic->var_sb.val));
                 siz += MQTTHDR_VAR_SIZEOF(topic);
                 qos = (buf->msg_base + siz);
                 *qos = t->sub_qos;
                 siz++;
         }
   
         /* fixed header */          /* fixed header */
   

Removed from v.1.1.2.4  
changed lines
  Added in v.1.1.2.5


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