--- mqtt/src/Attic/conn.c 2011/12/05 16:55:40 1.1.2.8 +++ mqtt/src/Attic/conn.c 2011/12/05 17:05:38 1.1.2.9 @@ -425,3 +425,60 @@ mqtt_readCONNACK(mqtt_msg_t * __restrict buf) 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; +}