version 1.1.2.6, 2011/12/05 14:11:47
|
version 1.1.2.9, 2011/12/05 17:05:38
|
Line 275 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
Line 275 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
if (!buf || !buf->msg_base || !buf->msg_len || !psConnID || !connLen) |
if (!buf || !buf->msg_base || !buf->msg_len || !psConnID || !connLen) |
return flg; |
return flg; |
|
|
hdr = (struct mqtthdr*) buf->msg_base; | hdr = _mqtt_readHEADER(buf, MQTT_TYPE_CONNECT, &ret, &len); |
if (hdr->mqtt_msg.type != MQTT_TYPE_CONNECT) { | if (!hdr) |
mqtt_SetErr(EINVAL, "Error:: wrong command #%d", hdr->mqtt_msg.type); | |
return flg; |
return flg; |
} else |
|
len = mqtt_decodeLen(hdr->mqtt_len, &ret); |
|
if (len < 12) { |
if (len < 12) { |
mqtt_SetErr(EINVAL, "Error:: short message length %d", len); |
mqtt_SetErr(EINVAL, "Error:: short message length %d", len); |
return flg; |
return flg; |
Line 391 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
Line 388 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
} |
} |
|
|
return flg; |
return flg; |
|
} |
|
|
|
/* |
|
* mqtt_readCONNACK() Read CONNACK message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error or >-1 CONNECT message return code |
|
*/ |
|
u_char |
|
mqtt_readCONNACK(mqtt_msg_t * __restrict buf) |
|
{ |
|
int len, ret; |
|
struct mqtthdr *hdr; |
|
mqtthdr_connack_t *ack; |
|
caddr_t pos; |
|
|
|
if (!buf || !buf->msg_base || !buf->msg_len) |
|
return (u_char) -1; |
|
|
|
hdr = _mqtt_readHEADER(buf, MQTT_TYPE_CONNACK, &ret, &len); |
|
if (!hdr) |
|
return (u_char) -1; |
|
if (len < sizeof(mqtthdr_connack_t)) { |
|
mqtt_SetErr(EINVAL, "Error:: short message length %d", len); |
|
return (u_char) -1; |
|
} else { |
|
pos = buf->msg_base + ret + 1; |
|
ack = (mqtthdr_connack_t*) pos; |
|
} |
|
|
|
if (ack->retcode > MQTT_RETCODE_DENIED) { |
|
mqtt_SetErr(EINVAL, "Error:: invalid retcode %u", ack->retcode); |
|
return (u_char) -1; |
|
} |
|
|
|
return ack->retcode; |
|
} |
|
|
|
/* |
|
* mqtt_readDISCONNECT() Read DISCONNECT message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error, 0 ok, >0 undefined result |
|
*/ |
|
int |
|
mqtt_readDISCONNECT(mqtt_msg_t * __restrict buf) |
|
{ |
|
int len, ret; |
|
struct mqtthdr *hdr; |
|
|
|
hdr = _mqtt_readHEADER(buf, MQTT_TYPE_DISCONNECT, &ret, &len); |
|
if (!hdr || ret != 1) |
|
return -1; |
|
|
|
return len; |
|
} |
|
|
|
/* |
|
* mqtt_readPINGREQ() Read PINGREQ message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error, 0 ok, >0 undefined result |
|
*/ |
|
int |
|
mqtt_readPINGREQ(mqtt_msg_t * __restrict buf) |
|
{ |
|
int len, ret; |
|
struct mqtthdr *hdr; |
|
|
|
hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PINGREQ, &ret, &len); |
|
if (!hdr || ret != 1) |
|
return -1; |
|
|
|
return len; |
|
} |
|
|
|
/* |
|
* mqtt_readPINGRESP() Read PINGRESP message |
|
* |
|
* @buf = Message buffer |
|
* return: -1 error, 0 ok, >0 undefined result |
|
*/ |
|
int |
|
mqtt_readPINGRESP(mqtt_msg_t * __restrict buf) |
|
{ |
|
int len, ret; |
|
struct mqtthdr *hdr; |
|
|
|
hdr = _mqtt_readHEADER(buf, MQTT_TYPE_PINGRESP, &ret, &len); |
|
if (!hdr || ret != 1) |
|
return -1; |
|
|
|
return len; |
} |
} |