version 1.1.2.9, 2011/12/05 17:05:38
|
version 1.1.2.10, 2011/12/09 09:53:54
|
Line 32 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
Line 32 mqtt_msgCONNECT(mqtt_msg_t * __restrict buf, const cha
|
|
|
if (!buf || !csConnID) |
if (!buf || !csConnID) |
return -1; |
return -1; |
if (strlen(csConnID) > 23) { | if (strlen(csConnID) > 24) { |
mqtt_SetErr(EINVAL, "Error:: invalid argument ConnID is too long (max 23 bytes)"); |
mqtt_SetErr(EINVAL, "Error:: invalid argument ConnID is too long (max 23 bytes)"); |
return -1; |
return -1; |
} |
} |
if (csUser && strlen(csUser) > 12) { | if (csUser && strlen(csUser) > 13) { |
mqtt_SetErr(EINVAL, "Error:: invalid argument Username is too long (max 12 bytes)"); |
mqtt_SetErr(EINVAL, "Error:: invalid argument Username is too long (max 12 bytes)"); |
return -1; |
return -1; |
} |
} |
if (csPass && strlen(csPass) > 12) { | if (csPass && strlen(csPass) > 13) { |
mqtt_SetErr(EINVAL, "Error:: invalid argument Password is too long (max 12 bytes)"); |
mqtt_SetErr(EINVAL, "Error:: invalid argument Password is too long (max 12 bytes)"); |
return -1; |
return -1; |
} |
} |
Line 254 mqtt_msgDISCONNECT(mqtt_msg_t * __restrict buf)
|
Line 254 mqtt_msgDISCONNECT(mqtt_msg_t * __restrict buf)
|
* @psPass = Password for Username, only if csUser is set |
* @psPass = Password for Username, only if csUser is set |
* @passLen = Password length |
* @passLen = Password length |
* @psWillTopic = Will Topic if !=NULL Will Flags set into message |
* @psWillTopic = Will Topic if !=NULL Will Flags set into message |
* @topicLen = Will Topic length |
|
* @psWillMessage = Will Message, may be NULL |
* @psWillMessage = Will Message, may be NULL |
* @msgLen = Will Message length |
|
* return: .reserved == 1 is error or == 0 connection flags & msg ok |
* return: .reserved == 1 is error or == 0 connection flags & msg ok |
*/ |
*/ |
mqtthdr_connflgs_t |
mqtthdr_connflgs_t |
mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short *kasec, char * __restrict psConnID, int connLen, |
mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short *kasec, char * __restrict psConnID, int connLen, |
char * __restrict psUser, int userLen, char * __restrict psPass, int passLen, |
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) |
{ |
{ |
mqtthdr_connflgs_t flg = MQTT_CONNFLGS_INIT; |
mqtthdr_connflgs_t flg = MQTT_CONNFLGS_INIT; |
struct mqtthdr *hdr; |
struct mqtthdr *hdr; |
Line 329 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
Line 327 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
flg.reserved = 1; |
flg.reserved = 1; |
return flg; |
return flg; |
} else { |
} else { |
if (psWillTopic && topicLen) { | if (psWillTopic) { |
memset(psWillTopic, 0, topicLen--); | *psWillTopic = malloc(ntohs(var->var_sb.val) + 1); |
memcpy(psWillTopic, var->var_data, | if (!*psWillTopic) { |
ntohs(var->var_sb.val) > topicLen ? topicLen : ntohs(var->var_sb.val)); | LOGERR; |
| flg.reserved = 1; |
| return flg; |
| } else |
| memset(*psWillTopic, 0, ntohs(var->var_sb.val) + 1); |
| memcpy(*psWillTopic, var->var_data, ntohs(var->var_sb.val)); |
} |
} |
pos += MQTTHDR_VAR_SIZEOF(var); |
pos += MQTTHDR_VAR_SIZEOF(var); |
} |
} |
Line 344 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
Line 347 mqtt_readCONNECT(mqtt_msg_t * __restrict buf, u_short
|
flg.reserved = 1; |
flg.reserved = 1; |
return flg; |
return flg; |
} else { |
} else { |
if (psWillMessage && msgLen) { | if (psWillMessage) { |
memset(psWillMessage, 0, msgLen--); | *psWillMessage = malloc(ntohs(var->var_sb.val) + 1); |
memcpy(psWillMessage, var->var_data, | if (!*psWillMessage) { |
ntohs(var->var_sb.val) > msgLen ? msgLen : ntohs(var->var_sb.val)); | LOGERR; |
| flg.reserved = 1; |
| return flg; |
| } else |
| memset(*psWillMessage, 0, ntohs(var->var_sb.val) + 1); |
| memcpy(*psWillMessage, var->var_data, ntohs(var->var_sb.val)); |
} |
} |
pos += MQTTHDR_VAR_SIZEOF(var); |
pos += MQTTHDR_VAR_SIZEOF(var); |
} |
} |