version 1.1.1.1.2.4, 2012/06/20 08:57:48
|
version 1.2.2.1, 2012/06/21 13:47:30
|
Line 67 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 67 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
const char *csWillTopic, const char *csWillMessage, |
const char *csWillTopic, const char *csWillMessage, |
u_char ClrSess, u_char WillQOS, u_char WillRetain) |
u_char ClrSess, u_char WillQOS, u_char WillRetain) |
{ |
{ |
int n, len, siz = 0; | int len, siz = 0; |
| u_int n, *l; |
struct mqtthdr *hdr; |
struct mqtthdr *hdr; |
mqtthdr_var_t *var, *cid, *topic, *wmsg, *user, *pass; |
mqtthdr_var_t *var, *cid, *topic, *wmsg, *user, *pass; |
mqtthdr_protover_t *proto; |
mqtthdr_protover_t *proto; |
Line 77 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 78 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
|
|
if (!buf || !csConnID) |
if (!buf || !csConnID) |
return -1; |
return -1; |
else |
|
data = buf->msg_base; |
|
if (strlen(csConnID) > 23) { |
if (strlen(csConnID) > 23) { |
mqtt_SetErr(EINVAL, "Invalid argument ConnID is too long (max 23 bytes)"); |
mqtt_SetErr(EINVAL, "Invalid argument ConnID is too long (max 23 bytes)"); |
return -1; |
return -1; |
Line 106 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 105 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
} |
} |
if (csWillTopic && *csWillTopic) { /* will messages */ |
if (csWillTopic && *csWillTopic) { /* will messages */ |
len += sizeof(mqtt_len_t) + strlen(csWillTopic); |
len += sizeof(mqtt_len_t) + strlen(csWillTopic); |
len += sizeof(mqtt_len_t) + csWillMessage ? strlen(csWillMessage) : 0; | len += sizeof(mqtt_len_t) + (csWillMessage ? strlen(csWillMessage) : 0); |
} |
} |
|
|
/* calculate header size */ |
/* calculate header size */ |
Line 116 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 115 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
|
|
if (mqtt_msgRealloc(buf, siz + len) == -1) |
if (mqtt_msgRealloc(buf, siz + len) == -1) |
return -1; |
return -1; |
else | else { |
| data = buf->msg_base; |
hdr = (struct mqtthdr *) data; |
hdr = (struct mqtthdr *) data; |
|
} |
|
|
/* fixed header */ |
/* fixed header */ |
MQTTHDR_MSGINIT(hdr); |
MQTTHDR_MSGINIT(hdr); |
hdr->mqtt_msg.type = MQTT_TYPE_CONNECT; |
hdr->mqtt_msg.type = MQTT_TYPE_CONNECT; |
*(u_int*) hdr->mqtt_len = n; | l = (u_int*) hdr->mqtt_len; |
| *l = n; |
data += siz; |
data += siz; |
|
|
/* variable header */ |
/* variable header */ |