--- mqtt/inc/Attic/aitmqtt.h 2011/12/09 09:53:54 1.1.1.1.2.31 +++ 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,11 +385,11 @@ 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 - * @psWillMessage = Will Message, may be NULL + * @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, char ** __restrict psWillMessage);