From a3b04f2d0ab2a4d6fd97c8ec08322fd4595ff209 Mon Sep 17 00:00:00 2001 From: Euripedes Rocha Date: Fri, 30 Jun 2023 10:17:32 +0200 Subject: [PATCH] fix: LOG format strings Fix log format strings and remove no-format warning configuration. --- CMakeLists.txt | 1 - lib/include/mqtt_client_priv.h | 8 ++++++ lib/mqtt5_msg.c | 6 ++--- lib/mqtt_outbox.c | 4 +-- mqtt_client.c | 49 ++++++++++++++++++---------------- 5 files changed, 39 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a6629f..8f86e9d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,4 +12,3 @@ idf_component_register(SRCS "${srcs}" PRIV_REQUIRES esp_timer http_parser esp_hw_support heap KCONFIG ${CMAKE_CURRENT_LIST_DIR}/Kconfig ) -target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format") diff --git a/lib/include/mqtt_client_priv.h b/lib/include/mqtt_client_priv.h index 5a7c16c..593f3d7 100644 --- a/lib/include/mqtt_client_priv.h +++ b/lib/include/mqtt_client_priv.h @@ -39,6 +39,14 @@ extern "C" { #endif +#if CONFIG_NEWLIB_NANO_FORMAT +#define NEWLIB_NANO_COMPAT_FORMAT PRIu32 +#define NEWLIB_NANO_COMPAT_CAST(size_t_var) (uint32_t)size_t_var +#else +#define NEWLIB_NANO_COMPAT_FORMAT "zu" +#define NEWLIB_NANO_COMPAT_CAST(size_t_var) size_t_var +#endif + #ifdef MQTT_DISABLE_API_LOCKS # define MQTT_API_LOCK(c) # define MQTT_API_UNLOCK(c) diff --git a/lib/mqtt5_msg.c b/lib/mqtt5_msg.c index b6a483f..fc04f71 100644 --- a/lib/mqtt5_msg.c +++ b/lib/mqtt5_msg.c @@ -339,7 +339,7 @@ char *mqtt5_get_publish_property_payload(uint8_t *buffer, size_t buffer_length, continue; case MQTT5_PROPERTY_MESSAGE_EXPIRY_INTERVAL: MQTT5_CONVERT_ONE_BYTE_TO_FOUR(resp_property->message_expiry_interval, property[property_offset ++], property[property_offset ++], property[property_offset ++], property[property_offset ++]) - ESP_LOGD(TAG, "MQTT5_PROPERTY_MESSAGE_EXPIRY_INTERVAL %d", resp_property->message_expiry_interval); + ESP_LOGD(TAG, "MQTT5_PROPERTY_MESSAGE_EXPIRY_INTERVAL %"PRIu32, resp_property->message_expiry_interval); continue; case MQTT5_PROPERTY_TOPIC_ALIAS: MQTT5_CONVERT_ONE_BYTE_TO_TWO(resp_property->topic_alias, property[property_offset ++], property[property_offset ++]) @@ -603,7 +603,7 @@ esp_err_t mqtt5_msg_parse_connack_property(uint8_t *buffer, size_t buffer_len, m switch (property_id) { case MQTT5_PROPERTY_SESSION_EXPIRY_INTERVAL: MQTT5_CONVERT_ONE_BYTE_TO_FOUR(connection_property->session_expiry_interval, property[property_offset ++], property[property_offset ++], property[property_offset ++], property[property_offset ++]) - ESP_LOGD(TAG, "MQTT5_PROPERTY_SESSION_EXPIRY_INTERVAL %d", connection_property->session_expiry_interval); + ESP_LOGD(TAG, "MQTT5_PROPERTY_SESSION_EXPIRY_INTERVAL %"PRIu32, connection_property->session_expiry_interval); continue; case MQTT5_PROPERTY_RECEIVE_MAXIMUM: MQTT5_CONVERT_ONE_BYTE_TO_TWO(resp_property->receive_maximum, property[property_offset ++], property[property_offset ++]) @@ -619,7 +619,7 @@ esp_err_t mqtt5_msg_parse_connack_property(uint8_t *buffer, size_t buffer_len, m continue; case MQTT5_PROPERTY_MAXIMUM_PACKET_SIZE: MQTT5_CONVERT_ONE_BYTE_TO_FOUR(resp_property->maximum_packet_size, property[property_offset ++], property[property_offset ++], property[property_offset ++], property[property_offset ++]) - ESP_LOGD(TAG, "MQTT5_PROPERTY_MAXIMUM_PACKET_SIZE %d", resp_property->maximum_packet_size); + ESP_LOGD(TAG, "MQTT5_PROPERTY_MAXIMUM_PACKET_SIZE %"PRIu32, resp_property->maximum_packet_size); continue; case MQTT5_PROPERTY_ASSIGNED_CLIENT_IDENTIFIER: MQTT5_CONVERT_ONE_BYTE_TO_TWO(len, property[property_offset ++], property[property_offset ++]) diff --git a/lib/mqtt_outbox.c b/lib/mqtt_outbox.c index aea2f6f..879ad35 100644 --- a/lib/mqtt_outbox.c +++ b/lib/mqtt_outbox.c @@ -60,7 +60,7 @@ outbox_item_handle_t outbox_enqueue(outbox_handle_t outbox, outbox_message_handl } STAILQ_INSERT_TAIL(outbox->list, item, next); outbox->size += item->len; - ESP_LOGD(TAG, "ENQUEUE msgid=%d, msg_type=%d, len=%d, size=%d", message->msg_id, message->msg_type, message->len + message->remaining_len, outbox_get_size(outbox)); + ESP_LOGD(TAG, "ENQUEUE msgid=%d, msg_type=%d, len=%d, size=%"PRIu64, message->msg_id, message->msg_type, message->len + message->remaining_len, outbox_get_size(outbox)); return item; } @@ -125,7 +125,7 @@ esp_err_t outbox_delete(outbox_handle_t outbox, int msg_id, int msg_type) outbox->size -= item->len; free(item->buffer); free(item); - ESP_LOGD(TAG, "DELETED msgid=%d, msg_type=%d, remain size=%d", msg_id, msg_type, outbox_get_size(outbox)); + ESP_LOGD(TAG, "DELETED msgid=%d, msg_type=%d, remain size=%"PRIu64, msg_id, msg_type, outbox_get_size(outbox)); return ESP_OK; } diff --git a/mqtt_client.c b/mqtt_client.c index 52ae7dd..77bdf9c 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -999,7 +999,7 @@ static esp_err_t esp_mqtt_dispatch_event(esp_mqtt_client_handle_t client) client->event.protocol_ver = client->mqtt_state.connection.information.protocol_ver; esp_err_t ret = ESP_FAIL; - #ifdef MQTT_SUPPORTED_FEATURE_EVENT_LOOP +#ifdef MQTT_SUPPORTED_FEATURE_EVENT_LOOP esp_event_post_to(client->config->event_loop_handle, MQTT_EVENTS, client->event.event_id, &client->event, sizeof(client->event), portMAX_DELAY); ret = esp_event_loop_run(client->config->event_loop_handle, 0); #else @@ -1037,7 +1037,7 @@ static esp_err_t deliver_publish(esp_mqtt_client_handle_t client) ESP_LOGE(TAG, "%s: mqtt_get_publish_topic() failed", __func__); return ESP_FAIL; } - ESP_LOGD(TAG, "%s: msg_topic_len=%"PRIu32, __func__, msg_topic_len); + ESP_LOGD(TAG, "%s: msg_topic_len=%"NEWLIB_NANO_COMPAT_FORMAT, __func__, NEWLIB_NANO_COMPAT_CAST(msg_topic_len)); // get payload msg_data = mqtt_get_publish_data(msg_buf, &msg_data_len); @@ -1059,8 +1059,9 @@ static esp_err_t deliver_publish(esp_mqtt_client_handle_t client) client->event.dup = mqtt_get_dup(msg_buf); client->event.total_data_len = msg_data_len + msg_total_len - msg_read_len; post_data_event: - ESP_LOGD(TAG, "Get data len= %"PRIu32", topic len=%"PRIu32", total_data: %d offset: %"PRIu32, msg_data_len, msg_topic_len, - client->event.total_data_len, msg_data_offset); + ESP_LOGD(TAG, "Get data len= %"NEWLIB_NANO_COMPAT_FORMAT", topic len=%"NEWLIB_NANO_COMPAT_FORMAT", total_data: %d offset: %"NEWLIB_NANO_COMPAT_FORMAT, + NEWLIB_NANO_COMPAT_CAST(msg_data_len), NEWLIB_NANO_COMPAT_CAST(msg_topic_len), + client->event.total_data_len, NEWLIB_NANO_COMPAT_CAST(msg_data_offset)); client->event.event_id = MQTT_EVENT_DATA; client->event.data = msg_data_len > 0 ? msg_data : NULL; client->event.data_len = msg_data_len; @@ -1149,16 +1150,16 @@ static outbox_item_handle_t mqtt_enqueue(esp_mqtt_client_handle_t client, uint8_ { ESP_LOGD(TAG, "mqtt_enqueue id: %d, type=%d successful", client->mqtt_state.pending_msg_id, client->mqtt_state.pending_msg_type); - outbox_message_t msg = { 0 }; - msg.data = client->mqtt_state.connection.outbound_message.data; - msg.len = client->mqtt_state.connection.outbound_message.length; - msg.msg_id = client->mqtt_state.pending_msg_id; - msg.msg_type = client->mqtt_state.pending_msg_type; - msg.msg_qos = client->mqtt_state.pending_publish_qos; - msg.remaining_data = remaining_data; - msg.remaining_len = remaining_len; - //Copy to queue buffer - return outbox_enqueue(client->outbox, &msg, platform_tick_get_ms()); + outbox_message_t msg = { 0 }; + msg.data = client->mqtt_state.connection.outbound_message.data; + msg.len = client->mqtt_state.connection.outbound_message.length; + msg.msg_id = client->mqtt_state.pending_msg_id; + msg.msg_type = client->mqtt_state.pending_msg_type; + msg.msg_qos = client->mqtt_state.pending_publish_qos; + msg.remaining_data = remaining_data; + msg.remaining_len = remaining_len; + //Copy to queue buffer + return outbox_enqueue(client->outbox, &msg, platform_tick_get_ms()); } @@ -1218,7 +1219,7 @@ static int mqtt_message_receive(esp_mqtt_client_handle_t client, int read_poll_t } while ((client->mqtt_state.in_buffer_read_len < 6) && (*(buf - 1) & 0x80)); } total_len = mqtt_get_total_length(client->mqtt_state.in_buffer, client->mqtt_state.in_buffer_read_len, &fixed_header_len); - ESP_LOGD(TAG, "%s: total message length: %d (already read: %"PRIu32")", __func__, total_len, client->mqtt_state.in_buffer_read_len); + ESP_LOGD(TAG, "%s: total message length: %d (already read: %"NEWLIB_NANO_COMPAT_FORMAT")", __func__, total_len, NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len)); client->mqtt_state.message_length = total_len; if (client->mqtt_state.in_buffer_length < total_len) { if (mqtt_get_type(client->mqtt_state.in_buffer) == MQTT_MSG_TYPE_PUBLISH) { @@ -1236,8 +1237,8 @@ static int mqtt_message_receive(esp_mqtt_client_handle_t client, int read_poll_t client->mqtt_state.in_buffer_read_len += read_len; buf += read_len; if (client->mqtt_state.in_buffer_read_len < fixed_header_len + 2) { - ESP_LOGD(TAG, "%s: transport_read(): message reading left in progress :: total message length: %d (already read: %"PRIu32")", - __func__, total_len, client->mqtt_state.in_buffer_read_len); + ESP_LOGD(TAG, "%s: transport_read(): message reading left in progress :: total message length: %d (already read: %"NEWLIB_NANO_COMPAT_FORMAT")", + __func__, total_len, NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len)); return 0; } } @@ -1266,12 +1267,13 @@ static int mqtt_message_receive(esp_mqtt_client_handle_t client, int read_poll_t } client->mqtt_state.in_buffer_read_len += read_len; if (client->mqtt_state.in_buffer_read_len < total_len) { - ESP_LOGD(TAG, "%s: transport_read(): message reading left in progress :: total message length: %d (already read: %"PRIu32")", - __func__, total_len, client->mqtt_state.in_buffer_read_len); + ESP_LOGD(TAG, "%s: transport_read(): message reading left in progress :: total message length: %d (already read: %"NEWLIB_NANO_COMPAT_FORMAT")", + __func__, total_len, NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len)); return 0; } } - ESP_LOGD(TAG, "%s: transport_read():%"PRIu32" %"PRIu32, __func__, client->mqtt_state.in_buffer_read_len, client->mqtt_state.message_length); + ESP_LOGD(TAG, "%s: transport_read():%"NEWLIB_NANO_COMPAT_FORMAT" %"NEWLIB_NANO_COMPAT_FORMAT, __func__, + NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len), NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.message_length)); return 1; err: esp_mqtt_client_dispatch_transport_error(client); @@ -1313,7 +1315,8 @@ static esp_err_t mqtt_process_receive(esp_mqtt_client_handle_t client) #ifdef MQTT_PROTOCOL_5 esp_mqtt5_parse_suback(client); #endif - ESP_LOGD(TAG, "deliver_suback, message_length_read=%"PRIu32", message_length=%"PRIu32, client->mqtt_state.in_buffer_read_len, client->mqtt_state.message_length); + ESP_LOGD(TAG, "deliver_suback, message_length_read=%"NEWLIB_NANO_COMPAT_FORMAT", message_length=%"NEWLIB_NANO_COMPAT_FORMAT, + NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len), NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.message_length)); if (deliver_suback(client) != ESP_OK) { ESP_LOGE(TAG, "Failed to deliver suback message id=%d", msg_id); return ESP_FAIL; @@ -1331,7 +1334,7 @@ static esp_err_t mqtt_process_receive(esp_mqtt_client_handle_t client) } break; case MQTT_MSG_TYPE_PUBLISH: - ESP_LOGD(TAG, "deliver_publish, message_length_read=%"PRIu32", message_length=%"PRIu32, client->mqtt_state.in_buffer_read_len, client->mqtt_state.message_length); + ESP_LOGD(TAG, "deliver_publish, message_length_read=%"NEWLIB_NANO_COMPAT_FORMAT", message_length=%"NEWLIB_NANO_COMPAT_FORMAT, NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.in_buffer_read_len), NEWLIB_NANO_COMPAT_CAST(client->mqtt_state.message_length)); if (deliver_publish(client) != ESP_OK) { ESP_LOGE(TAG, "Failed to deliver publish message id=%d", msg_id); return ESP_FAIL; @@ -1830,7 +1833,7 @@ int esp_mqtt_client_subscribe_multiple(esp_mqtt_client_handle_t client, } if (client->config->outbox_limit > 0 && outbox_get_size(client->outbox) > client->config->outbox_limit) { - return -2; + return -2; } MQTT_API_LOCK(client); if (client->state != MQTT_STATE_CONNECTED) {