From 280ccd1053b58fdd7bd45bcac7ef7295b1fcfc07 Mon Sep 17 00:00:00 2001 From: Arto Kinnunen Date: Tue, 12 Dec 2017 10:41:08 +0200 Subject: [PATCH] Squashed 'features/nanostack/FEATURE_NANOSTACK/coap-service/' changes from 29bfb78..d0a2597 d0a2597 Fix IAR compilation error with NUCLEO_F401RE (#86) 674a465 Delete transaction if message is non-confirmable (#83) git-subtree-dir: features/nanostack/FEATURE_NANOSTACK/coap-service git-subtree-split: d0a25979f8143334c86e422fd358f895bde2ad87 --- .../coap-service/source/coap_message_handler.c | 1 + .../coap-service/source/coap_service_api.c | 4 ++-- .../source/include/coap_security_handler.h | 11 +++++++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_message_handler.c b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_message_handler.c index 63ef701194..3d6c91a031 100644 --- a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_message_handler.c +++ b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_message_handler.c @@ -337,6 +337,7 @@ uint16_t coap_message_handler_request_send(coap_msg_handler_t *handle, int8_t se transaction_ptr->options = options; memcpy(transaction_ptr->remote_address, destination_addr, 16); transaction_ptr->remote_port = destination_port; + transaction_ptr->req_msg_type = msg_type; memset(&request, 0, sizeof(request)); dst_addr.addr_ptr = (uint8_t *) destination_addr; // Cast away const and trust that nsdl doesn't modify... dst_addr.addr_len = 16; diff --git a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_service_api.c b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_service_api.c index 91f2e3ef58..9adcee212a 100644 --- a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_service_api.c +++ b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/coap_service_api.c @@ -188,7 +188,7 @@ static uint8_t coap_tx_function(uint8_t *data_ptr, uint16_t data_len, sn_nsdl_ad memcpy(transaction_ptr->data_ptr, data_ptr, data_len); transaction_ptr->data_len = data_len; } - } else if ((ret_val == -1) || (transaction_ptr->resp_cb == NULL)) { + } else if ((ret_val == -1) || (!transaction_ptr->resp_cb && transaction_ptr->req_msg_type == COAP_MSG_TYPE_NON_CONFIRMABLE)) { transaction_delete(transaction_ptr); } @@ -300,7 +300,7 @@ static void sec_done_cb(int8_t socket_id, uint8_t address[static 16], uint16_t p ns_dyn_mem_free(transaction_ptr->data_ptr); transaction_ptr->data_ptr = NULL; transaction_ptr->data_len = 0; - if (transaction_ptr->resp_cb == NULL) { + if (!transaction_ptr->resp_cb && transaction_ptr->req_msg_type == COAP_MSG_TYPE_NON_CONFIRMABLE) { transaction_delete(transaction_ptr); } } diff --git a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/include/coap_security_handler.h b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/include/coap_security_handler.h index 2c20f8a49a..0a4d948a78 100644 --- a/features/nanostack/FEATURE_NANOSTACK/coap-service/source/include/coap_security_handler.h +++ b/features/nanostack/FEATURE_NANOSTACK/coap-service/source/include/coap_security_handler.h @@ -20,11 +20,18 @@ #include "ns_types.h" #ifdef NS_USE_EXTERNAL_MBED_TLS +#if !defined(MBEDTLS_CONFIG_FILE) +#include "mbedtls/config.h" +#else +#include MBEDTLS_CONFIG_FILE +#endif + +#if defined(MBEDTLS_SSL_TLS_C) #include "mbedtls/ssl.h" -#ifdef MBEDTLS_SSL_TLS_C #define COAP_SECURITY_AVAILABLE #endif -#endif + +#endif /* NS_USE_EXTERNAL_MBED_TLS */ #define COOKIE_SIMPLE_LEN 8 typedef struct simple_cookie {