Fix client CONNECT packet on MQTT v3.1.1.

pull/211/merge
Roger A. Light 11 years ago
parent 626857b20a
commit c5ee5686bd

@ -38,6 +38,7 @@ int _mosquitto_send_connect(struct mosquitto *mosq, uint16_t keepalive, bool cle
int rc; int rc;
uint8_t version; uint8_t version;
char *clientid, *username, *password; char *clientid, *username, *password;
int headerlen;
assert(mosq); assert(mosq);
assert(mosq->id); assert(mosq->id);
@ -60,8 +61,10 @@ int _mosquitto_send_connect(struct mosquitto *mosq, uint16_t keepalive, bool cle
if(mosq->protocol == mosq_p_mqtt31){ if(mosq->protocol == mosq_p_mqtt31){
version = MQTT_PROTOCOL_V31; version = MQTT_PROTOCOL_V31;
headerlen = 12;
}else if(mosq->protocol == mosq_p_mqtt311){ }else if(mosq->protocol == mosq_p_mqtt311){
version = MQTT_PROTOCOL_V311; version = MQTT_PROTOCOL_V311;
headerlen = 10;
}else{ }else{
return MOSQ_ERR_INVAL; return MOSQ_ERR_INVAL;
} }
@ -84,7 +87,7 @@ int _mosquitto_send_connect(struct mosquitto *mosq, uint16_t keepalive, bool cle
} }
packet->command = CONNECT; packet->command = CONNECT;
packet->remaining_length = 12+payloadlen; packet->remaining_length = headerlen+payloadlen;
rc = _mosquitto_packet_alloc(packet); rc = _mosquitto_packet_alloc(packet);
if(rc){ if(rc){
_mosquitto_free(packet); _mosquitto_free(packet);

Loading…
Cancel
Save