diff --git a/lib/mosquitto_internal.h b/lib/mosquitto_internal.h index dff9c333..76b7cfa8 100644 --- a/lib/mosquitto_internal.h +++ b/lib/mosquitto_internal.h @@ -123,7 +123,6 @@ struct _mosquitto_packet{ uint32_t pos; uint16_t mid; uint8_t command; - uint8_t have_remaining; uint8_t remaining_count; }; @@ -154,12 +153,11 @@ struct mosquitto { char *username; char *password; uint16_t keepalive; - bool clean_session; + uint16_t last_mid; enum mosquitto_client_state state; time_t last_msg_in; time_t last_msg_out; time_t ping_t; - uint16_t last_mid; struct _mosquitto_packet in_packet; struct _mosquitto_packet *current_out_packet; struct _mosquitto_packet *out_packet; @@ -192,6 +190,7 @@ struct mosquitto { pthread_mutex_t out_message_mutex; pthread_t thread_id; #endif + bool clean_session; #ifdef WITH_BROKER bool is_dropping; bool is_bridge; diff --git a/lib/net_mosq.c b/lib/net_mosq.c index 5246db2a..34c1edbe 100644 --- a/lib/net_mosq.c +++ b/lib/net_mosq.c @@ -133,7 +133,6 @@ void _mosquitto_packet_cleanup(struct _mosquitto_packet *packet) /* Free data and reset values */ packet->command = 0; - packet->have_remaining = 0; packet->remaining_count = 0; packet->remaining_mult = 1; packet->remaining_length = 0; @@ -936,7 +935,7 @@ int _mosquitto_packet_read(struct mosquitto *mosq) } } } - if(!mosq->in_packet.have_remaining){ + if(mosq->in_packet.remaining_count == 0){ do{ read_length = _mosquitto_net_read(mosq, &byte, 1); if(read_length == 1){ @@ -974,7 +973,6 @@ int _mosquitto_packet_read(struct mosquitto *mosq) if(!mosq->in_packet.payload) return MOSQ_ERR_NOMEM; mosq->in_packet.to_process = mosq->in_packet.remaining_length; } - mosq->in_packet.have_remaining = 1; } while(mosq->in_packet.to_process>0){ read_length = _mosquitto_net_read(mosq, &(mosq->in_packet.payload[mosq->in_packet.pos]), mosq->in_packet.to_process); diff --git a/src/websockets.c b/src/websockets.c index 3634c415..ea39da80 100644 --- a/src/websockets.c +++ b/src/websockets.c @@ -240,7 +240,7 @@ static int callback_mqtt(struct libwebsocket_context *context, return -1; } } - if(!mosq->in_packet.have_remaining){ + if(mosq->in_packet.remaining_count == 0){ do{ if(pos == len){ return 0; @@ -267,7 +267,6 @@ static int callback_mqtt(struct libwebsocket_context *context, } mosq->in_packet.to_process = mosq->in_packet.remaining_length; } - mosq->in_packet.have_remaining = 1; } while(mosq->in_packet.to_process>0){ if(len - pos >= mosq->in_packet.to_process){