--- mqtt/inc/Attic/aitmqtt.h 2011/11/22 15:25:19 1.1.1.1.2.21 +++ mqtt/inc/Attic/aitmqtt.h 2011/12/05 14:11:47 1.1.1.1.2.24 @@ -95,9 +95,9 @@ typedef union { } mqtt_v_t; typedef struct { - mqtt_v_t sub_sb; - char *sub_data; - unsigned char sub_qos; + unsigned char sub_ret; + struct __sbuf sub_topic; + struct __sbuf sub_value; } mqtt_subscr_t; typedef struct { @@ -178,11 +178,11 @@ inline unsigned int mqtt_encodeLen(unsigned int num); /* * mqtt_decodeLen() Decode length from MQTT packet * - * @len = length + * @len = length from MQTT header * @n = sizeof bytes, if !=NULL * return: -1 error, >-1 length of message */ -inline unsigned int mqtt_decodeLen(unsigned int len, char *n); +inline unsigned int mqtt_decodeLen(void * __restrict len, int * __restrict n); /* * mqtt_sizeLen Return sizeof len field * @@ -362,6 +362,31 @@ int mqtt_msgUNSUBACK(mqtt_msg_t * __restrict buf, unsi /*** RECEIVER FUNCTIONS ***/ + +/* + * mqtt_readCONNECT() Read elements from CONNECT message + * + * @buf = Message buffer + * @kasec = Keep Alive in seconds for current connection + * @psConnID = ConnectID + * @connLen = ConnectID length + * @psUser = Username if !=NULL + * @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 + * return: .reserved == 1 is error or == 0 connection flags & msg ok + */ +mqtthdr_connflgs_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); + + +/*** ENGINE FUNCTIONS ***/ /* * mqttInitCallbacks() Init callback array for dispatcher