version 1.1.2.2, 2011/11/21 12:47:15
|
version 1.1.2.5, 2011/11/22 14:13:04
|
Line 21 int
|
Line 21 int
|
mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const char *csConnID, |
mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const char *csConnID, |
const char *csUser, const char *csPass, |
const char *csUser, const char *csPass, |
const char *csWillTopic, const char *csWillMessage, |
const char *csWillTopic, const char *csWillMessage, |
char ClrSess, char WillQOS, char WillRetain) | u_char ClrSess, u_char WillQOS, u_char WillRetain) |
{ |
{ |
int siz = 0; |
int siz = 0; |
struct mqtthdr *hdr; |
struct mqtthdr *hdr; |
Line 44 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 44 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
mqtt_SetErr(EINVAL, "Error:: invalid argument Password is too long (max 12 bytes)"); |
mqtt_SetErr(EINVAL, "Error:: invalid argument Password is too long (max 12 bytes)"); |
return -1; |
return -1; |
} |
} |
if (WillQOS < MQTT_QOS_ONCE && WillQOS > MQTT_QOS_EXACTLY) { | if (WillQOS > MQTT_QOS_EXACTLY) { |
mqtt_SetErr(EINVAL, "Error:: invalid argument WillQOS - unknown QOS value"); |
mqtt_SetErr(EINVAL, "Error:: invalid argument WillQOS - unknown QOS value"); |
return -1; |
return -1; |
} |
} |
Line 65 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 65 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
} |
} |
|
|
/* fixed header */ |
/* fixed header */ |
|
MQTTHDR_MSGINIT(hdr); |
hdr->mqtt_msg.type = MQTT_TYPE_CONNECT; |
hdr->mqtt_msg.type = MQTT_TYPE_CONNECT; |
*hdr->mqtt_len = 0; |
*hdr->mqtt_len = 0; |
|
|
Line 132 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 133 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
} |
} |
} |
} |
|
|
*hdr->mqtt_len = mqtt_encodeLen(siz - 2); | *hdr->mqtt_len = mqtt_encodeLen(siz - sizeof(struct mqtthdr)); |
mqtt_msgRealloc(buf, siz); |
mqtt_msgRealloc(buf, siz); |
return siz; |
return siz; |
} |
} |
Line 168 mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, u_char re
|
Line 169 mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, u_char re
|
} |
} |
|
|
/* fixed header */ |
/* fixed header */ |
|
MQTTHDR_MSGINIT(hdr); |
hdr->mqtt_msg.type = MQTT_TYPE_CONNACK; |
hdr->mqtt_msg.type = MQTT_TYPE_CONNACK; |
*hdr->mqtt_len = sizeof(mqtthdr_connack_t); |
*hdr->mqtt_len = sizeof(mqtthdr_connack_t); |
|
|
Line 176 mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, u_char re
|
Line 178 mqtt_msgCONNACK(mqtt_msg_t * __restrict buf, u_char re
|
ack->retcode = retcode; |
ack->retcode = retcode; |
|
|
return siz; |
return siz; |
|
} |
|
|
|
static int |
|
_mqtt_msgSIMPLE_(mqtt_msg_t * __restrict buf, u_char cmd) |
|
{ |
|
int siz = 0; |
|
struct mqtthdr *hdr; |
|
|
|
if (!buf) |
|
return -1; |
|
|
|
if (mqtt_msgRealloc(buf, sizeof(struct mqtthdr)) == -1) |
|
return -1; |
|
else { |
|
hdr = (struct mqtthdr *) (buf->msg_base + siz); |
|
siz += sizeof(struct mqtthdr); |
|
} |
|
|
|
/* fixed header */ |
|
MQTTHDR_MSGINIT(hdr); |
|
hdr->mqtt_msg.type = cmd; |
|
*hdr->mqtt_len = 0; |
|
|
|
return siz; |
|
} |
|
|
|
/* |
|
* mqtt_msgPINGREQ() Create PINGREQ message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error or >-1 message size for send |
|
*/ |
|
int |
|
mqtt_msgPINGREQ(mqtt_msg_t * __restrict buf) |
|
{ |
|
return _mqtt_msgSIMPLE_(buf, MQTT_TYPE_PINGREQ); |
|
} |
|
|
|
/* |
|
* mqtt_msgPINGRESP() Create PINGRESP message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error or >-1 message size for send |
|
*/ |
|
int |
|
mqtt_msgPINGRESP(mqtt_msg_t * __restrict buf) |
|
{ |
|
return _mqtt_msgSIMPLE_(buf, MQTT_TYPE_PINGRESP); |
|
} |
|
|
|
/* |
|
* mqtt_msgDISCONNECT() Create DISCONNECT message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error or >-1 message size for send |
|
*/ |
|
int |
|
mqtt_msgDISCONNECT(mqtt_msg_t * __restrict buf) |
|
{ |
|
return _mqtt_msgSIMPLE_(buf, MQTT_TYPE_DISCONNECT); |
} |
} |