Use new accessor functions where sensible.

pull/2826/head
Roger A. Light 2 years ago
parent 9be12f91af
commit 068778f7d9

@ -3158,7 +3158,7 @@ libmosq_EXPORT int mosquitto_property_identifier(const mosquitto_property *prope
* Pointer to the next item in the list
* NULL, if proplist is NULL, or if there are no more items in the list.
*/
libmosq_EXPORT const mosquitto_property *mosquitto_property_next(const mosquitto_property *proplist);
libmosq_EXPORT mosquitto_property *mosquitto_property_next(const mosquitto_property *proplist);
/*

@ -77,11 +77,11 @@ int mosquitto_publish_v5(struct mosquitto *mosq, int *mid, const char *topic, in
p = outgoing_properties;
have_topic_alias = false;
while(p){
if(p->identifier == MQTT_PROP_TOPIC_ALIAS){
if(mosquitto_property_identifier(p) == MQTT_PROP_TOPIC_ALIAS){
have_topic_alias = true;
break;
}
p = p->next;
p = mosquitto_property_next(p);
}
if(have_topic_alias == false){
return MOSQ_ERR_INVAL;

@ -318,7 +318,7 @@ static int property__write(struct mosquitto__packet *packet, const mosquitto_pro
{
int rc;
rc = packet__write_varint(packet, (uint32_t)property->identifier);
rc = packet__write_varint(packet, (uint32_t)mosquitto_property_identifier(property));
if(rc) return rc;
switch(property->property_type){
@ -957,7 +957,7 @@ BROKER_EXPORT int mosquitto_property_type(const mosquitto_property *property)
}
BROKER_EXPORT const mosquitto_property *mosquitto_property_next(const mosquitto_property *proplist)
BROKER_EXPORT mosquitto_property *mosquitto_property_next(const mosquitto_property *proplist)
{
if(proplist == NULL) return NULL;
@ -1269,7 +1269,7 @@ BROKER_EXPORT int mosquitto_property_copy_all(mosquitto_property **dest, const m
return MOSQ_ERR_INVAL;
}
src = src->next;
src = mosquitto_property_next(src);
}
return MOSQ_ERR_SUCCESS;

@ -55,9 +55,9 @@ int will__set(struct mosquitto *mosq, const char *topic, int payloadlen, const v
}
p = properties;
while(p){
rc = mosquitto_property_check_command(CMD_WILL, p->identifier);
rc = mosquitto_property_check_command(CMD_WILL, mosquitto_property_identifier(p));
if(rc) return rc;
p = p->next;
p = mosquitto_property_next(p);
}
}

@ -128,7 +128,7 @@ int handle__publish(struct mosquitto *context)
base_msg->data.properties = NULL;
msg_properties_last = NULL;
while(p){
switch(p->identifier){
switch(mosquitto_property_identifier(p)){
case MQTT_PROP_CONTENT_TYPE:
case MQTT_PROP_CORRELATION_DATA:
case MQTT_PROP_PAYLOAD_FORMAT_INDICATOR:
@ -142,39 +142,39 @@ int handle__publish(struct mosquitto *context)
msg_properties_last = p;
}
if(p_prev){
p_prev->next = p->next;
p = p_prev->next;
p_prev->next = mosquitto_property_next(p);
p = mosquitto_property_next(p_prev);
}else{
properties = p->next;
properties = mosquitto_property_next(p);
p = properties;
}
msg_properties_last->next = NULL;
break;
case MQTT_PROP_TOPIC_ALIAS:
topic_alias = p->value.i16;
topic_alias = mosquitto_property_int16_value(p);
p_prev = p;
p = p->next;
p = mosquitto_property_next(p);
break;
case MQTT_PROP_MESSAGE_EXPIRY_INTERVAL:
message_expiry_interval = p->value.i32;
message_expiry_interval = mosquitto_property_int32_value(p);
p_prev = p;
p = p->next;
p = mosquitto_property_next(p);
break;
case MQTT_PROP_SUBSCRIPTION_IDENTIFIER:
if(p->value.varint == 0){
if(mosquitto_property_varint_value(p) == 0){
mosquitto_property_free_all(&properties);
db__msg_store_free(base_msg);
return MOSQ_ERR_PROTOCOL;
}
p_prev = p;
p = p->next;
p = mosquitto_property_next(p);
break;
default:
p = p->next;
p = mosquitto_property_next(p);
break;
}
}

@ -112,19 +112,19 @@ static void read_message_expiry_interval(mosquitto_property **proplist, uint32_t
p = *proplist;
while(p){
if(p->identifier == MQTT_PROP_MESSAGE_EXPIRY_INTERVAL){
*message_expiry = p->value.i32;
if(mosquitto_property_identifier(p) == MQTT_PROP_MESSAGE_EXPIRY_INTERVAL){
*message_expiry = mosquitto_property_int32_value(p);
if(p == *proplist){
*proplist = p->next;
*proplist = mosquitto_property_next(p);
}else{
previous->next = p->next;
previous->next = mosquitto_property_next(p);
}
property__free(&p);
return;
}
previous = p;
p = p->next;
p = mosquitto_property_next(p);
}
}

@ -144,10 +144,10 @@ int persist__chunk_client_msg_read_v56(FILE *db_fptr, struct P_client_msg *chunk
if(properties){
p = properties;
while(p){
if(p->identifier == MQTT_PROP_SUBSCRIPTION_IDENTIFIER){
chunk->subscription_identifier = p->value.varint;
if(mosquitto_property_identifier(p) == MQTT_PROP_SUBSCRIPTION_IDENTIFIER){
chunk->subscription_identifier = mosquitto_property_varint_value(p);
}
p = p->next;
p = mosquitto_property_next(p);
}
mosquitto_property_free_all(&properties);
}

@ -35,28 +35,37 @@ int property__process_connect(struct mosquitto *context, mosquitto_property **pr
p = *props;
while(p){
if(p->identifier == MQTT_PROP_SESSION_EXPIRY_INTERVAL){
context->session_expiry_interval = p->value.i32;
}else if(p->identifier == MQTT_PROP_RECEIVE_MAXIMUM){
if(p->value.i16 == 0){
return MOSQ_ERR_PROTOCOL;
}
switch(mosquitto_property_identifier(p)){
case MQTT_PROP_SESSION_EXPIRY_INTERVAL:
context->session_expiry_interval = mosquitto_property_int32_value(p);
break;
context->msgs_out.inflight_maximum = p->value.i16;
context->msgs_out.inflight_quota = context->msgs_out.inflight_maximum;
}else if(p->identifier == MQTT_PROP_MAXIMUM_PACKET_SIZE){
if(p->value.i32 == 0){
return MOSQ_ERR_PROTOCOL;
}
context->maximum_packet_size = p->value.i32;
}else if(p->identifier == MQTT_PROP_TOPIC_ALIAS_MAXIMUM){
if(p->value.i16 > context->listener->max_topic_alias_broker){
context->alias_max_l2r = context->listener->max_topic_alias_broker;
}else{
context->alias_max_l2r = p->value.i16;
}
case MQTT_PROP_RECEIVE_MAXIMUM:
context->msgs_out.inflight_maximum = mosquitto_property_int16_value(p);
if(context->msgs_out.inflight_maximum == 0){
return MOSQ_ERR_PROTOCOL;
}
context->msgs_out.inflight_quota = context->msgs_out.inflight_maximum;
break;
case MQTT_PROP_MAXIMUM_PACKET_SIZE:
context->maximum_packet_size = mosquitto_property_int32_value(p);
if(context->maximum_packet_size == 0){
return MOSQ_ERR_PROTOCOL;
}
break;
case MQTT_PROP_TOPIC_ALIAS_MAXIMUM:
context->alias_max_l2r = mosquitto_property_int16_value(p);
if(context->alias_max_l2r > context->listener->max_topic_alias_broker){
context->alias_max_l2r = context->listener->max_topic_alias_broker;
}
break;
default:
break;
}
p = p->next;
p = mosquitto_property_next(p);
}
return MOSQ_ERR_SUCCESS;
@ -73,7 +82,7 @@ int property__process_will(struct mosquitto *context, struct mosquitto_message_a
msg_properties = NULL;
msg_properties_last = NULL;
while(p){
switch(p->identifier){
switch(mosquitto_property_identifier(p)){
case MQTT_PROP_CONTENT_TYPE:
case MQTT_PROP_CORRELATION_DATA:
case MQTT_PROP_PAYLOAD_FORMAT_INDICATOR:
@ -92,10 +101,10 @@ int property__process_will(struct mosquitto *context, struct mosquitto_message_a
/* And remove it from *props */
if(p_prev){
p_prev->next = p->next;
p = p_prev->next;
p_prev->next = mosquitto_property_next(p);
p = mosquitto_property_next(p_prev);
}else{
*props = p->next;
*props = mosquitto_property_next(p);
p = *props;
}
msg_properties_last->next = NULL;
@ -103,16 +112,16 @@ int property__process_will(struct mosquitto *context, struct mosquitto_message_a
case MQTT_PROP_WILL_DELAY_INTERVAL:
/* Leave this in *props, to be freed */
context->will_delay_interval = p->value.i32;
context->will_delay_interval = mosquitto_property_int32_value(p);
p_prev = p;
p = p->next;
p = mosquitto_property_next(p);
break;
case MQTT_PROP_MESSAGE_EXPIRY_INTERVAL:
/* Leave this in *props, to be freed */
msg->expiry_interval = p->value.i32;
msg->expiry_interval = mosquitto_property_int32_value(p);
p_prev = p;
p = p->next;
p = mosquitto_property_next(p);
break;
default:
@ -135,14 +144,14 @@ int property__process_disconnect(struct mosquitto *context, mosquitto_property *
p = *props;
while(p){
if(p->identifier == MQTT_PROP_SESSION_EXPIRY_INTERVAL){
if(context->session_expiry_interval == 0 && p->value.i32 != 0){
if(mosquitto_property_identifier(p) == MQTT_PROP_SESSION_EXPIRY_INTERVAL){
uint32_t session_expiry_interval = mosquitto_property_int32_value(p);
if(context->session_expiry_interval == 0 && session_expiry_interval != 0){
return MOSQ_ERR_PROTOCOL;
}
context->session_expiry_interval = p->value.i32;
context->session_expiry_interval = session_expiry_interval;
}
p = p->next;
p = mosquitto_property_next(p);
}
return MOSQ_ERR_SUCCESS;
}

Loading…
Cancel
Save