--- mqtt/inc/Attic/aitmqtt.h 2011/12/06 10:33:37 1.1.1.1.2.29 +++ mqtt/inc/Attic/aitmqtt.h 2011/12/09 11:46:48 1.1.1.1.2.33 @@ -108,14 +108,17 @@ typedef struct { typedef unsigned char mqtthdr_protover_t; -typedef struct { - unsigned char reserved:1, - clean_sess:1, - will_flg:1, - will_qos:2, - will_retain:1, - password:1, - username:1; +typedef union { + struct { + unsigned char reserved:1, + clean_sess:1, + will_flg:1, + will_qos:2, + will_retain:1, + password:1, + username:1; + }; + unsigned char flags; } __packed mqtthdr_connflgs_t; typedef struct { @@ -382,16 +385,14 @@ int mqtt_msgUNSUBACK(mqtt_msg_t * __restrict buf, unsi * @userLen = Username length * @psPass = Password for Username, only if csUser is set * @passLen = Password length - * @psWillTopic = Will Topic if !=NULL Will Flags set into message - * @topicLen = Will Topic length - * @psWillMessage = Will Message, may be NULL - * @msgLen = Will Message length + * @psWillTopic = Will Topic if !=NULL Will Flags set into message and must be free() + * @psWillMessage = Will Message, may be NULL if !NULL must be free() after use! * return: .reserved == 1 is error or == 0 connection flags & msg ok */ -mqtthdr_connflgs_t mqtt_readCONNECT(mqtt_msg_t * __restrict buf, unsigned short *kasec, +mqtthdr_connack_t mqtt_readCONNECT(mqtt_msg_t * __restrict buf, unsigned short *kasec, char * __restrict psConnID, int connLen, char * __restrict psUser, int userLen, char * __restrict psPass, int passLen, - char * __restrict psWillTopic, int topicLen, char * __restrict psWillMessage, int msgLen); + char ** __restrict psWillTopic, char ** __restrict psWillMessage); /* * mqtt_readCONNACK() Read CONNACK message * @@ -472,6 +473,25 @@ u_short mqtt_readPUBCOMP(mqtt_msg_t * __restrict buf); * return: NULL error or !=NULL MQTT fixed header */ struct mqtthdr *mqtt_readSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, + mqtt_subscr_t **subscr); +/* + * mqtt_readSUBACK() Read SUBACK message + * + * @buf = Message buffer + * @msgID = MessageID + * @subqos = Subscribes QoS, must be free after use with free() + * return: -1 error or >-1 readed subscribes QoS elements + */ +int mqtt_readSUBACK(mqtt_msg_t * __restrict buf, u_short *msgID, unsigned char **subqos); +/* + * mqtt_readUNSUBSCRIBE() Read UNSUBSCRIBE message + * + * @buf = Message buffer + * @msgID = MessageID + * @subscr = Subscriptions, must be free after use with mqtt_subFree() + * return: NULL error or !=NULL MQTT fixed header + */ +struct mqtthdr *mqtt_readUNSUBSCRIBE(mqtt_msg_t * __restrict buf, unsigned short *msgID, mqtt_subscr_t **subscr); /* * mqtt_readUNSUBACK() Read UNSUBACK message