diff --git a/source/coap_message_handler.c b/source/coap_message_handler.c index 613547c8d2..843fd10b1d 100644 --- a/source/coap_message_handler.c +++ b/source/coap_message_handler.c @@ -294,7 +294,6 @@ uint16_t coap_message_handler_request_send(coap_msg_handler_t *handle, int8_t se data_len = sn_coap_builder_calc_needed_packet_data_size(&request); data_ptr = own_alloc(data_len); if(data_len > 0 && !data_ptr){ - own_free(request.content_type_ptr); transaction_delete(transaction_ptr); return 0; } @@ -303,7 +302,6 @@ uint16_t coap_message_handler_request_send(coap_msg_handler_t *handle, int8_t se handle->sn_coap_tx_callback(data_ptr, data_len, &dst_addr, transaction_ptr); // Free allocated data - own_free(request.content_type_ptr); own_free(data_ptr); if(request_response_cb == NULL){ //No response expected @@ -373,26 +371,19 @@ int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_ti static void coap_service_build_content_format(sn_coap_hdr_s *header, sn_coap_content_format_e format) { - if (format == COAP_CT_NONE) { - return; - } + header->content_format = format; - /* Always alloc - CoAP library needs a non-NULL pointer to trigger writing - * of a zero-length option, and it will free the pointer later. - */ - header->content_type_ptr = own_alloc(2); - if (!header->content_type_ptr) { - return; - } - - if (format == 0) { /* text/plain */ - header->content_type_len = 0; - } else if (format <= 0xff) { - header->content_type_ptr[0] = format; - header->content_type_len = 1; - } else { - header->content_type_ptr[0] = format >> 8; - header->content_type_ptr[1] = format & 0xff; - header->content_type_len = 2; - } +// if (format == COAP_CT_NONE) { +// return; +// } +// if (format == 0) { /* text/plain */ +// header->content_type_len = 0; +// } else if (format <= 0xff) { +// header->content_type_ptr[0] = format; +// header->content_type_len = 1; +// } else { +// header->content_type_ptr[0] = format >> 8; +// header->content_type_ptr[1] = format & 0xff; +// header->content_type_len = 2; +// } } diff --git a/test/coap-service/unittest/coap_message_handler/test_coap_message_handler.c b/test/coap-service/unittest/coap_message_handler/test_coap_message_handler.c index 9210150458..bfb3c20cec 100644 --- a/test/coap-service/unittest/coap_message_handler/test_coap_message_handler.c +++ b/test/coap-service/unittest/coap_message_handler/test_coap_message_handler.c @@ -39,7 +39,7 @@ int resp_recv(int8_t service_id, uint16_t msg_id, sn_coap_hdr_s *response_ptr){ int16_t process_cb(int8_t a, sn_coap_hdr_s *b, coap_transaction_t *c) { - + return retValue; } bool test_coap_message_handler_init() @@ -140,11 +140,12 @@ bool test_coap_message_handler_coap_msg_process() memset(sn_coap_protocol_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); sn_coap_protocol_stub.expectedHeader->coap_status = COAP_STATUS_OK; sn_coap_protocol_stub.expectedHeader->msg_code = 1; - retValue = -1; + retValue = 0; if( 0 != coap_message_handler_coap_msg_process(handle, 0, buf, 22, NULL, 0, process_cb)) return false; nsdynmemlib_stub.returnCounter = 1; + retValue = -1; if( -1 != coap_message_handler_coap_msg_process(handle, 0, buf, 22, NULL, 0, process_cb)) return false; @@ -265,13 +266,13 @@ bool test_coap_message_handler_response_send() sn_coap_builder_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); memset(sn_coap_builder_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); - nsdynmemlib_stub.returnCounter = 1; + nsdynmemlib_stub.returnCounter = 0; if( -1 != coap_message_handler_response_send(handle, 2, 0, header, 1,3,NULL, 0)) return false; sn_coap_builder_stub.expectedHeader = (sn_coap_hdr_s *)malloc(sizeof(sn_coap_hdr_s)); memset(sn_coap_builder_stub.expectedHeader, 0, sizeof(sn_coap_hdr_s)); - nsdynmemlib_stub.returnCounter = 2; + nsdynmemlib_stub.returnCounter = 1; if( 0 != coap_message_handler_response_send(handle, 2, 0, header, 1,3,NULL, 0)) return false; diff --git a/test/coap-service/unittest/stub/coap_message_handler_stub.h b/test/coap-service/unittest/stub/coap_message_handler_stub.h index c8c37d142c..5cbb974160 100644 --- a/test/coap-service/unittest/stub/coap_message_handler_stub.h +++ b/test/coap-service/unittest/stub/coap_message_handler_stub.h @@ -23,6 +23,7 @@ extern "C" { #endif #include +#include #include "coap_message_handler.h" typedef struct { diff --git a/test/coap-service/unittest/stub/sn_coap_parser_stub.c b/test/coap-service/unittest/stub/sn_coap_parser_stub.c index 327b74998e..d177012671 100644 --- a/test/coap-service/unittest/stub/sn_coap_parser_stub.c +++ b/test/coap-service/unittest/stub/sn_coap_parser_stub.c @@ -34,15 +34,7 @@ void sn_coap_parser_release_allocated_coap_msg_mem(struct coap_s *handle, sn_coa free(freed_coap_msg_ptr->token_ptr); } - if (freed_coap_msg_ptr->content_type_ptr != NULL) { - free(freed_coap_msg_ptr->content_type_ptr); - } - if (freed_coap_msg_ptr->options_list_ptr != NULL) { - if (freed_coap_msg_ptr->options_list_ptr->max_age_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->max_age_ptr); - } - if (freed_coap_msg_ptr->options_list_ptr->proxy_uri_ptr != NULL) { free(freed_coap_msg_ptr->options_list_ptr->proxy_uri_ptr); } @@ -59,33 +51,14 @@ void sn_coap_parser_release_allocated_coap_msg_mem(struct coap_s *handle, sn_coa free(freed_coap_msg_ptr->options_list_ptr->location_path_ptr); } - if (freed_coap_msg_ptr->options_list_ptr->uri_port_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->uri_port_ptr); - } - if (freed_coap_msg_ptr->options_list_ptr->location_query_ptr != NULL) { free(freed_coap_msg_ptr->options_list_ptr->location_query_ptr); } - if (freed_coap_msg_ptr->options_list_ptr->observe_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->observe_ptr); - } - if (freed_coap_msg_ptr->options_list_ptr->uri_query_ptr != NULL) { free(freed_coap_msg_ptr->options_list_ptr->uri_query_ptr); } - if (freed_coap_msg_ptr->options_list_ptr->block2_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->block2_ptr); - } - - if (freed_coap_msg_ptr->options_list_ptr->block1_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->block1_ptr); - } - if (freed_coap_msg_ptr->options_list_ptr->accept_ptr != NULL) { - free(freed_coap_msg_ptr->options_list_ptr->accept_ptr); - } - free(freed_coap_msg_ptr->options_list_ptr); }