diff --git a/features/FEATURE_COMMON_PAL/mbed-coap/CHANGELOG.md b/features/FEATURE_COMMON_PAL/mbed-coap/CHANGELOG.md index 7995a1d87a8..15d9feb4ffb 100644 --- a/features/FEATURE_COMMON_PAL/mbed-coap/CHANGELOG.md +++ b/features/FEATURE_COMMON_PAL/mbed-coap/CHANGELOG.md @@ -1,5 +1,13 @@ # Change Log +## [v4.0.9](https://github.com/ARMmbed/mbed-coap/releases/tag/v4.0.9) + +-[Full Changelog](https://github.com/ARMmbed/mbed-coap/compare/v4.0.8...v4.0.9) + + **Closed issues:** + - IOTCLT-1899 Maximum COAP message resending buffer size limited to 255 bytes + - IOTCLT-1888 Problem with blockwise transfers that are even increments of block_size + ## [v4.0.8](https://github.com/ARMmbed/mbed-coap/releases/tag/v4.0.8) -[Full Changelog](https://github.com/ARMmbed/mbed-coap/compare/v4.0.4...v4.0.8) diff --git a/features/FEATURE_COMMON_PAL/mbed-coap/module.json b/features/FEATURE_COMMON_PAL/mbed-coap/module.json index df17fbba504..ec1ee8fb243 100644 --- a/features/FEATURE_COMMON_PAL/mbed-coap/module.json +++ b/features/FEATURE_COMMON_PAL/mbed-coap/module.json @@ -1,6 +1,6 @@ { "name": "mbed-coap", - "version": "4.0.8", + "version": "4.0.9", "description": "COAP library", "keywords": [ "coap", diff --git a/features/FEATURE_COMMON_PAL/mbed-coap/source/include/sn_coap_protocol_internal.h b/features/FEATURE_COMMON_PAL/mbed-coap/source/include/sn_coap_protocol_internal.h index 3a603d3dfa4..19f057f2789 100644 --- a/features/FEATURE_COMMON_PAL/mbed-coap/source/include/sn_coap_protocol_internal.h +++ b/features/FEATURE_COMMON_PAL/mbed-coap/source/include/sn_coap_protocol_internal.h @@ -225,7 +225,7 @@ struct coap_s { uint32_t system_time; /* System time seconds */ uint16_t sn_coap_block_data_size; uint8_t sn_coap_resending_queue_msgs; - uint8_t sn_coap_resending_queue_bytes; + uint32_t sn_coap_resending_queue_bytes; uint8_t sn_coap_resending_count; uint8_t sn_coap_resending_intervall; uint8_t sn_coap_duplication_buffer_size; diff --git a/features/FEATURE_COMMON_PAL/mbed-coap/source/sn_coap_protocol.c b/features/FEATURE_COMMON_PAL/mbed-coap/source/sn_coap_protocol.c index aed99fb242b..a0660e6ee42 100644 --- a/features/FEATURE_COMMON_PAL/mbed-coap/source/sn_coap_protocol.c +++ b/features/FEATURE_COMMON_PAL/mbed-coap/source/sn_coap_protocol.c @@ -2027,7 +2027,7 @@ static sn_coap_hdr_s *sn_coap_handle_blockwise_message(struct coap_s *handle, sn original_payload_len = stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len; original_payload_ptr = stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_ptr; - if ((block_size * (block_number + 1)) > stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len) { + if ((block_size * (block_number + 1)) >= stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len) { src_coap_blockwise_ack_msg_ptr->payload_len = stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len - (block_size * block_number); src_coap_blockwise_ack_msg_ptr->payload_ptr = stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_ptr + (block_size * block_number); } @@ -2080,7 +2080,7 @@ static sn_coap_hdr_s *sn_coap_handle_blockwise_message(struct coap_s *handle, sn stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len = original_payload_len; stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_ptr = original_payload_ptr; - if ((block_size * (block_number + 1)) > stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len) { + if ((block_size * (block_number + 1)) >= stored_blockwise_msg_temp_ptr->coap_msg_ptr->payload_len) { sn_coap_protocol_linked_list_blockwise_msg_remove(handle, stored_blockwise_msg_temp_ptr); }