Merge commit '9d5a9f5a29d19b2e67402e4e452e13ce75baca7c'

* commit '9d5a9f5a29d19b2e67402e4e452e13ce75baca7c':
  Squashed 'features/nanostack/FEATURE_NANOSTACK/coap-service/' changes from e125164..d65b6b0
pull/4960/head
Arto Kinnunen 2017-08-23 15:09:48 +03:00
commit ca15df3db0
54 changed files with 330 additions and 89 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -45,6 +45,10 @@ extern "C" {
#define COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET 0x01 #define COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET 0x01
#define COAP_SERVICE_OPTIONS_SECURE 0x02 #define COAP_SERVICE_OPTIONS_SECURE 0x02
#define COAP_SERVICE_OPTIONS_EPHEMERAL_PORT 0x04 #define COAP_SERVICE_OPTIONS_EPHEMERAL_PORT 0x04
/** Coap interface selected as socket interface */
#define COAP_SERVICE_OPTIONS_SELECT_SOCKET_IF 0x08
/** Register to COAP multicast groups */
#define COAP_SERVICE_OPTIONS_MULTICAST_JOIN 0x10
/** Link-layer security bypass option is set*/ /** Link-layer security bypass option is set*/
#define COAP_SERVICE_OPTIONS_SECURE_BYPASS 0x80 #define COAP_SERVICE_OPTIONS_SECURE_BYPASS 0x80
@ -56,6 +60,10 @@ extern "C" {
#define COAP_REQUEST_OPTIONS_MULTICAST 0x04 //!< indicates that CoAP library support multicasting #define COAP_REQUEST_OPTIONS_MULTICAST 0x04 //!< indicates that CoAP library support multicasting
#define COAP_REQUEST_OPTIONS_SECURE_BYPASS 0x08 #define COAP_REQUEST_OPTIONS_SECURE_BYPASS 0x08
extern const uint8_t COAP_MULTICAST_ADDR_LINK_LOCAL[16]; //!< ff02::fd, COAP link local multicast address
extern const uint8_t COAP_MULTICAST_ADDR_ADMIN_LOCAL[16]; //!< ff03::fd, COAP admin-local multicast address
extern const uint8_t COAP_MULTICAST_ADDR_SITE_LOCAL[16]; //!> ff05::fd, COAP site-local multicast address
/** /**
* \brief Service message response receive callback. * \brief Service message response receive callback.
* *
@ -262,7 +270,45 @@ extern uint16_t coap_service_request_send(int8_t service_id, uint8_t options, co
*/ */
extern int8_t coap_service_response_send(int8_t service_id, uint8_t options, sn_coap_hdr_s *request_ptr, sn_coap_msg_code_e message_code, sn_coap_content_format_e content_type, const uint8_t *payload_ptr,uint16_t payload_len); extern int8_t coap_service_response_send(int8_t service_id, uint8_t options, sn_coap_hdr_s *request_ptr, sn_coap_msg_code_e message_code, sn_coap_content_format_e content_type, const uint8_t *payload_ptr,uint16_t payload_len);
/**
* \brief Delete CoAP request transaction
*
* Removes pending CoAP transaction from service.
*
* \param service_id Id number of the current service.
* \param msg_id Message ID number.
*
* \return -1 For failure
*- 0 For success
*/
extern int8_t coap_service_request_delete(int8_t service_id, uint16_t msg_id);
/**
* \brief Set DTLS handshake timeout values
*
* Configures the DTLS handshake timeout values.
*
* \param service_id Id number of the current service.
* \param min Initial timeout value.
* \param max Maximum value of timeout.
*
* \return -1 For failure
*- 0 For success
*/
extern int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint32_t max); extern int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint32_t max);
/**
* \brief Set CoAP duplication message buffer size
*
* Configures the CoAP duplication message buffer size.
*
* \param service_id Id number of the current service.
* \param size Buffer size (messages)
*
* \return -1 For failure
*- 0 For success
*/
extern int8_t coap_service_set_duplicate_message_buffer(int8_t service_id, uint8_t size);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# Copyright (c) 2015 ARM Limited. All rights reserved. # Copyright (c) 2015-2017 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# Licensed under the Apache License, Version 2.0 (the License); you may # Licensed under the Apache License, Version 2.0 (the License); you may
# not use this file except in compliance with the License. # not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>
@ -42,6 +42,10 @@ typedef struct internal_socket_s {
ns_list_link_t link; ns_list_link_t link;
} internal_socket_t; } internal_socket_t;
const uint8_t COAP_MULTICAST_ADDR_LINK_LOCAL[16] = { 0xff, 0x02, [15] = 0xfd }; // ff02::fd, COAP link-local multicast (rfc7390)
const uint8_t COAP_MULTICAST_ADDR_ADMIN_LOCAL[16] = { 0xff, 0x03, [15] = 0xfd }; // ff02::fd, COAP admin-local multicast (rfc7390)
const uint8_t COAP_MULTICAST_ADDR_SITE_LOCAL[16] = { 0xff, 0x05, [15] = 0xfd }; // ff05::fd, COAP site-local multicast (rfc7390)
static NS_LIST_DEFINE(socket_list, internal_socket_t, link); static NS_LIST_DEFINE(socket_list, internal_socket_t, link);
static void timer_cb(void* param); static void timer_cb(void* param);
@ -99,7 +103,6 @@ static secure_session_t *secure_session_find_by_timer_id(int8_t timer_id)
static bool is_secure_session_valid(secure_session_t *session) static bool is_secure_session_valid(secure_session_t *session)
{ {
secure_session_t *this = NULL;
ns_list_foreach(secure_session_t, cur_ptr, &secure_session_list) { ns_list_foreach(secure_session_t, cur_ptr, &secure_session_list) {
if (cur_ptr == session) { if (cur_ptr == session) {
return true; return true;
@ -222,9 +225,32 @@ static secure_session_t *secure_session_find(internal_socket_t *parent, const ui
return this; return this;
} }
static internal_socket_t *int_socket_create(uint16_t listen_port, bool use_ephemeral_port, bool is_secure, bool real_socket, bool bypassSec) static void coap_multicast_group_join_or_leave(int8_t socket_id, uint8_t opt_name, int8_t interface_id)
{
ns_ipv6_mreq_t ns_ipv6_mreq;
int8_t ret_val;
// Join or leave COAP multicast groups
ns_ipv6_mreq.ipv6mr_interface = interface_id;
memcpy(ns_ipv6_mreq.ipv6mr_multiaddr, COAP_MULTICAST_ADDR_LINK_LOCAL, 16);
ret_val = socket_setsockopt(socket_id, SOCKET_IPPROTO_IPV6, opt_name, &ns_ipv6_mreq, sizeof(ns_ipv6_mreq));
memcpy(ns_ipv6_mreq.ipv6mr_multiaddr, COAP_MULTICAST_ADDR_ADMIN_LOCAL, 16);
ret_val |= socket_setsockopt(socket_id, SOCKET_IPPROTO_IPV6, opt_name, &ns_ipv6_mreq, sizeof(ns_ipv6_mreq));
memcpy(ns_ipv6_mreq.ipv6mr_multiaddr, COAP_MULTICAST_ADDR_SITE_LOCAL, 16);
ret_val |= socket_setsockopt(socket_id, SOCKET_IPPROTO_IPV6, opt_name, &ns_ipv6_mreq, sizeof(ns_ipv6_mreq));
if (ret_val) {
tr_error("Multicast group access failed, err=%d, name=%d", ret_val, opt_name);
}
}
static internal_socket_t *int_socket_create(uint16_t listen_port, bool use_ephemeral_port, bool is_secure, bool real_socket, bool bypassSec, int8_t socket_interface_selection, bool multicast_registration)
{ {
internal_socket_t *this = ns_dyn_mem_alloc(sizeof(internal_socket_t)); internal_socket_t *this = ns_dyn_mem_alloc(sizeof(internal_socket_t));
if (!this) { if (!this) {
return NULL; return NULL;
} }
@ -266,7 +292,14 @@ static internal_socket_t *int_socket_create(uint16_t listen_port, bool use_ephem
// Set socket option to receive packet info // Set socket option to receive packet info
socket_setsockopt(this->socket, SOCKET_IPPROTO_IPV6, SOCKET_IPV6_RECVPKTINFO, &(const bool) {1}, sizeof(bool)); socket_setsockopt(this->socket, SOCKET_IPPROTO_IPV6, SOCKET_IPV6_RECVPKTINFO, &(const bool) {1}, sizeof(bool));
if (socket_interface_selection > 0) {
// Interface selection requested as socket_interface_selection set
socket_setsockopt(this->socket, SOCKET_IPPROTO_IPV6, SOCKET_INTERFACE_SELECT, &socket_interface_selection, sizeof(socket_interface_selection));
}
if (multicast_registration) {
coap_multicast_group_join_or_leave(this->socket, SOCKET_IPV6_JOIN_GROUP, socket_interface_selection);
}
} else { } else {
this->socket = virtual_socket_id_allocate(); this->socket = virtual_socket_id_allocate();
} }
@ -773,9 +806,13 @@ coap_conn_handler_t *connection_handler_create(receive_from_socket_cb *recv_from
return handler; return handler;
} }
void connection_handler_destroy(coap_conn_handler_t *handler)
void connection_handler_destroy(coap_conn_handler_t *handler, bool multicast_group_leave)
{ {
if(handler){ if(handler){
if (multicast_group_leave) {
coap_multicast_group_join_or_leave(handler->socket->socket, SOCKET_IPV6_LEAVE_GROUP, handler->socket_interface_selection);
}
int_socket_delete(handler->socket); int_socket_delete(handler->socket);
ns_dyn_mem_free(handler); ns_dyn_mem_free(handler);
} }
@ -810,7 +847,7 @@ int coap_connection_handler_open_connection(coap_conn_handler_t *handler, uint16
internal_socket_t *current = !use_ephemeral_port?int_socket_find(listen_port, is_secure, is_real_socket, bypassSec):NULL; internal_socket_t *current = !use_ephemeral_port?int_socket_find(listen_port, is_secure, is_real_socket, bypassSec):NULL;
if (!current) { if (!current) {
handler->socket = int_socket_create(listen_port, use_ephemeral_port, is_secure, is_real_socket, bypassSec); handler->socket = int_socket_create(listen_port, use_ephemeral_port, is_secure, is_real_socket, bypassSec, handler->socket_interface_selection, handler->registered_to_multicast);
if (!handler->socket) { if (!handler->socket) {
return -1; return -1;
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>
@ -57,6 +57,18 @@ static coap_transaction_t *transaction_find_server(uint16_t msg_id)
return this; return this;
} }
static coap_transaction_t *transaction_find_client(uint16_t msg_id)
{
coap_transaction_t *this = NULL;
ns_list_foreach(coap_transaction_t, cur_ptr, &request_list) {
if (cur_ptr->msg_id == msg_id && cur_ptr->client_request) {
this = cur_ptr;
break;
}
}
return this;
}
static coap_transaction_t *transaction_find_by_address(uint8_t *address_ptr, uint16_t port) static coap_transaction_t *transaction_find_by_address(uint8_t *address_ptr, uint16_t port)
{ {
coap_transaction_t *this = NULL; coap_transaction_t *this = NULL;
@ -168,6 +180,10 @@ coap_msg_handler_t *coap_message_handler_init(void *(*used_malloc_func_ptr)(uint
used_free_func_ptr(handle); used_free_func_ptr(handle);
return NULL; return NULL;
} }
/* Set default buffer size for CoAP duplicate message detection */
sn_coap_protocol_set_duplicate_buffer_size(handle->coap, DUPLICATE_MESSAGE_BUFFER_SIZE);
return handle; return handle;
} }
@ -391,6 +407,28 @@ int8_t coap_message_handler_response_send(coap_msg_handler_t *handle, int8_t ser
return 0; return 0;
} }
int8_t coap_message_handler_request_delete(coap_msg_handler_t *handle, int8_t service_id, uint16_t msg_id)
{
coap_transaction_t *transaction_ptr;
(void)service_id;
tr_debug("Service %d, delete CoAP request %d", service_id, msg_id);
if (!handle) {
tr_error("invalid params");
return -1;
}
sn_coap_protocol_delete_retransmission(handle->coap, msg_id);
transaction_ptr = transaction_find_client(msg_id);
if (!transaction_ptr) {
tr_error("response transaction not found");
return -2;
}
transaction_delete(transaction_ptr);
return 0;
}
int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time){ int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time){
if( !handle ){ if( !handle ){

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
@ -21,6 +21,7 @@
#include "net_interface.h" #include "net_interface.h"
#include "coap_service_api_internal.h" #include "coap_service_api_internal.h"
#include "coap_message_handler.h" #include "coap_message_handler.h"
#include "mbed-coap/sn_coap_protocol.h"
static int16_t coap_msg_process_callback(int8_t socket_id, sn_coap_hdr_s *coap_message, coap_transaction_t *transaction_ptr); static int16_t coap_msg_process_callback(int8_t socket_id, sn_coap_hdr_s *coap_message, coap_transaction_t *transaction_ptr);
@ -99,6 +100,27 @@ static coap_service_t *service_find_by_uri(uint8_t socket_id, uint8_t *uri_ptr,
return NULL; return NULL;
} }
static bool coap_service_can_leave_multicast_group(coap_conn_handler_t *conn_handler)
{
int mc_count = 0;
bool current_handler_joined_to_mc_group = false;
ns_list_foreach(coap_service_t, cur_ptr, &instance_list) {
if (cur_ptr->conn_handler && cur_ptr->conn_handler->registered_to_multicast) {
if (conn_handler == cur_ptr->conn_handler) {
current_handler_joined_to_mc_group = true;
}
mc_count ++;
}
}
if (mc_count == 1 && current_handler_joined_to_mc_group) {
// current handler is the only one joined to multicast group
return true;
}
return false;
}
/** /**
* Coap handling functions * Coap handling functions
@ -280,9 +302,8 @@ static int get_passwd_cb(int8_t socket_id, uint8_t address[static 16], uint16_t
int8_t coap_service_initialize(int8_t interface_id, uint16_t listen_port, uint8_t service_options, int8_t coap_service_initialize(int8_t interface_id, uint16_t listen_port, uint8_t service_options,
coap_service_security_start_cb *start_ptr, coap_service_security_done_cb *coap_security_done_cb) coap_service_security_start_cb *start_ptr, coap_service_security_done_cb *coap_security_done_cb)
{ {
(void) interface_id;
coap_service_t *this = ns_dyn_mem_alloc(sizeof(coap_service_t)); coap_service_t *this = ns_dyn_mem_alloc(sizeof(coap_service_t));
if (!this) { if (!this) {
return -1; return -1;
} }
@ -293,6 +314,7 @@ int8_t coap_service_initialize(int8_t interface_id, uint16_t listen_port, uint8_
while (service_find(id) && id < 127) { while (service_find(id) && id < 127) {
id++; id++;
} }
this->interface_id = interface_id;
this->service_id = id; this->service_id = id;
this->service_options = service_options; this->service_options = service_options;
@ -310,10 +332,18 @@ int8_t coap_service_initialize(int8_t interface_id, uint16_t listen_port, uint8_
return -1; return -1;
} }
if (0 > coap_connection_handler_open_connection(this->conn_handler, listen_port, ((this->service_options & COAP_SERVICE_OPTIONS_EPHEMERAL_PORT) == COAP_SERVICE_OPTIONS_EPHEMERAL_PORT), this->conn_handler->socket_interface_selection = 0; // zero is illegal interface ID
((this->service_options & COAP_SERVICE_OPTIONS_SECURE) == COAP_SERVICE_OPTIONS_SECURE), if (this->service_options & COAP_SERVICE_OPTIONS_SELECT_SOCKET_IF) {
((this->service_options & COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET) != COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET), this->conn_handler->socket_interface_selection = this->interface_id;
((this->service_options & COAP_SERVICE_OPTIONS_SECURE_BYPASS) == COAP_SERVICE_OPTIONS_SECURE_BYPASS))){ }
this->conn_handler->registered_to_multicast = this->service_options & COAP_SERVICE_OPTIONS_MULTICAST_JOIN;
if (0 > coap_connection_handler_open_connection(this->conn_handler, listen_port,
(this->service_options & COAP_SERVICE_OPTIONS_EPHEMERAL_PORT),
(this->service_options & COAP_SERVICE_OPTIONS_SECURE),
!(this->service_options & COAP_SERVICE_OPTIONS_VIRTUAL_SOCKET),
(this->service_options & COAP_SERVICE_OPTIONS_SECURE_BYPASS))) {
ns_dyn_mem_free(this->conn_handler); ns_dyn_mem_free(this->conn_handler);
ns_dyn_mem_free(this); ns_dyn_mem_free(this);
return -1; return -1;
@ -340,7 +370,12 @@ void coap_service_delete(int8_t service_id)
} }
if (this->conn_handler){ if (this->conn_handler){
connection_handler_destroy(this->conn_handler); bool leave_multicast_group = false;
if (coap_service_can_leave_multicast_group(this->conn_handler)) {
// This is the last handler joined to multicast group
leave_multicast_group = true;
}
connection_handler_destroy(this->conn_handler, leave_multicast_group);
} }
//TODO clear all transactions //TODO clear all transactions
@ -459,6 +494,11 @@ int8_t coap_service_response_send(int8_t service_id, uint8_t options, sn_coap_hd
return coap_message_handler_response_send(coap_service_handle, service_id, options, request_ptr, message_code, content_type, payload_ptr, payload_len); return coap_message_handler_response_send(coap_service_handle, service_id, options, request_ptr, message_code, content_type, payload_ptr, payload_len);
} }
int8_t coap_service_request_delete(int8_t service_id, uint16_t msg_id)
{
return coap_message_handler_request_delete(coap_service_handle, service_id, msg_id);
}
int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint32_t max) int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint32_t max)
{ {
coap_service_t *this = service_find(service_id); coap_service_t *this = service_find(service_id);
@ -469,6 +509,17 @@ int8_t coap_service_set_handshake_timeout(int8_t service_id, uint32_t min, uint3
return coap_connection_handler_set_timeout(this->conn_handler, min, max); return coap_connection_handler_set_timeout(this->conn_handler, min, max);
} }
int8_t coap_service_set_duplicate_message_buffer(int8_t service_id, uint8_t size)
{
(void) service_id;
if (!coap_service_handle) {
return -1;
}
return sn_coap_protocol_set_duplicate_buffer_size(coap_service_handle->coap, size);
}
uint32_t coap_service_get_internal_timer_ticks(void) uint32_t coap_service_get_internal_timer_ticks(void)
{ {
return coap_ticks; return coap_ticks;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -44,6 +44,8 @@ typedef struct coap_conn_handler_s{
send_to_socket_cb *_send_cb; send_to_socket_cb *_send_cb;
get_pw_cb *_get_password_cb; get_pw_cb *_get_password_cb;
security_done_cb *_security_done_cb; security_done_cb *_security_done_cb;
int8_t socket_interface_selection;
bool registered_to_multicast;
} coap_conn_handler_t; } coap_conn_handler_t;
coap_conn_handler_t *connection_handler_create(receive_from_socket_cb *recv_from_cb, coap_conn_handler_t *connection_handler_create(receive_from_socket_cb *recv_from_cb,
@ -51,7 +53,7 @@ coap_conn_handler_t *connection_handler_create(receive_from_socket_cb *recv_from
get_pw_cb *pw_cb, get_pw_cb *pw_cb,
security_done_cb *done_cb); security_done_cb *done_cb);
void connection_handler_destroy( coap_conn_handler_t *handler ); void connection_handler_destroy( coap_conn_handler_t *handler, bool multicast_group_leave);
void connection_handler_close_secure_connection( coap_conn_handler_t *handler, uint8_t destination_addr_ptr[static 16], uint16_t port ); void connection_handler_close_secure_connection( coap_conn_handler_t *handler, uint8_t destination_addr_ptr[static 16], uint16_t port );

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -24,6 +24,8 @@
#include "ns_list.h" #include "ns_list.h"
#define TRANSACTION_LIFETIME 180 #define TRANSACTION_LIFETIME 180
/* Default value for CoAP duplicate message buffer (0 = disabled) */
#define DUPLICATE_MESSAGE_BUFFER_SIZE 0
/** /**
* \brief Service message response receive callback. * \brief Service message response receive callback.
@ -83,6 +85,8 @@ extern uint16_t coap_message_handler_request_send(coap_msg_handler_t *handle, in
extern int8_t coap_message_handler_response_send(coap_msg_handler_t *handle, int8_t service_id, uint8_t options, sn_coap_hdr_s *request_ptr, sn_coap_msg_code_e message_code, extern int8_t coap_message_handler_response_send(coap_msg_handler_t *handle, int8_t service_id, uint8_t options, sn_coap_hdr_s *request_ptr, sn_coap_msg_code_e message_code,
sn_coap_content_format_e content_type, const uint8_t *payload_ptr, uint16_t payload_len); sn_coap_content_format_e content_type, const uint8_t *payload_ptr, uint16_t payload_len);
extern int8_t coap_message_handler_request_delete(coap_msg_handler_t *handle, int8_t service_id, uint16_t msg_id);
extern int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time); extern int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time);
extern void transaction_delete(coap_transaction_t *this); extern void transaction_delete(coap_transaction_t *this);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/TestHarness.h" #include "CppUTest/TestHarness.h"
#include "test_coap_connection_handler.h" #include "test_coap_connection_handler.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/CommandLineTestRunner.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "test_coap_connection_handler.h" #include "test_coap_connection_handler.h"
#include <string.h> #include <string.h>
@ -57,7 +57,7 @@ bool test_connection_handler_destroy()
nsdynmemlib_stub.returnCounter = 1; nsdynmemlib_stub.returnCounter = 1;
coap_conn_handler_t *handler = connection_handler_create(&receive_from_sock_cb, NULL, NULL, NULL); coap_conn_handler_t *handler = connection_handler_create(&receive_from_sock_cb, NULL, NULL, NULL);
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
return true; return true;
} }
@ -97,8 +97,8 @@ bool test_coap_connection_handler_open_connection()
if( 0 != coap_connection_handler_open_connection(handler, 23,false,false,false,false) ) if( 0 != coap_connection_handler_open_connection(handler, 23,false,false,false,false) )
return false; return false;
connection_handler_destroy(handler2); connection_handler_destroy(handler2, false);
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
return true; return true;
} }
@ -121,7 +121,7 @@ bool test_coap_connection_handler_send_data()
if( -1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true)) if( -1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true))
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
coap_security_handler_stub.sec_obj = coap_security_handler_stub_alloc(); coap_security_handler_stub.sec_obj = coap_security_handler_stub_alloc();
@ -137,7 +137,7 @@ bool test_coap_connection_handler_send_data()
if( -1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true)) if( -1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true))
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
free(coap_security_handler_stub.sec_obj); free(coap_security_handler_stub.sec_obj);
coap_security_handler_stub.sec_obj = NULL; coap_security_handler_stub.sec_obj = NULL;
@ -152,7 +152,7 @@ bool test_coap_connection_handler_send_data()
if( 1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true)) if( 1 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true))
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler ,false);
nsdynmemlib_stub.returnCounter = 1; nsdynmemlib_stub.returnCounter = 1;
handler = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, NULL, NULL); handler = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, NULL, NULL);
@ -163,7 +163,7 @@ bool test_coap_connection_handler_send_data()
socket_api_stub.int8_value = 7; socket_api_stub.int8_value = 7;
if( 7 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true)) if( 7 != coap_connection_handler_send_data(handler, &addr, ns_in6addr_any, NULL, 0, true))
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
//<-- NON SECURE HERE //<-- NON SECURE HERE
@ -209,7 +209,7 @@ bool test_coap_connection_handler_virtual_recv()
if( -1 != coap_connection_handler_virtual_recv(handler,buf, 12, &buf, 1) ) if( -1 != coap_connection_handler_virtual_recv(handler,buf, 12, &buf, 1) )
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
nsdynmemlib_stub.returnCounter = 1; nsdynmemlib_stub.returnCounter = 1;
coap_conn_handler_t *handler2 = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, &get_passwd_cb, &sec_done_cb); coap_conn_handler_t *handler2 = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, &get_passwd_cb, &sec_done_cb);
@ -235,7 +235,7 @@ bool test_coap_connection_handler_virtual_recv()
if( 0 != coap_connection_handler_virtual_recv(handler2,buf, 12, &buf, 1) ) if( 0 != coap_connection_handler_virtual_recv(handler2,buf, 12, &buf, 1) )
return false; return false;
connection_handler_destroy(handler2); connection_handler_destroy(handler2, false);
free(coap_security_handler_stub.sec_obj); free(coap_security_handler_stub.sec_obj);
coap_security_handler_stub.sec_obj = NULL; coap_security_handler_stub.sec_obj = NULL;
@ -250,7 +250,7 @@ bool test_coap_connection_handler_virtual_recv()
if( 0 != coap_connection_handler_virtual_recv(handler3,buf, 12, &buf, 1) ) if( 0 != coap_connection_handler_virtual_recv(handler3,buf, 12, &buf, 1) )
return false; return false;
connection_handler_destroy(handler3); connection_handler_destroy(handler3, false);
return true; return true;
} }
@ -273,7 +273,7 @@ bool test_coap_connection_handler_socket_belongs_to()
if( false != coap_connection_handler_socket_belongs_to(handler, 3) ) if( false != coap_connection_handler_socket_belongs_to(handler, 3) )
return false; return false;
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
nsdynmemlib_stub.returnCounter = 0; nsdynmemlib_stub.returnCounter = 0;
return true; return true;
@ -326,7 +326,7 @@ bool test_timer_callbacks()
coap_security_handler_stub.int_value = 0; coap_security_handler_stub.int_value = 0;
} }
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
free(coap_security_handler_stub.sec_obj); free(coap_security_handler_stub.sec_obj);
coap_security_handler_stub.sec_obj = NULL; coap_security_handler_stub.sec_obj = NULL;
return true; return true;
@ -364,7 +364,7 @@ bool test_socket_api_callbacks()
socket_api_stub.recv_cb(sckt_data); socket_api_stub.recv_cb(sckt_data);
} }
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
nsdynmemlib_stub.returnCounter = 1; nsdynmemlib_stub.returnCounter = 1;
coap_conn_handler_t *handler2 = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, &get_passwd_cb, &sec_done_cb); coap_conn_handler_t *handler2 = connection_handler_create(&receive_from_sock_cb, &send_to_sock_cb, &get_passwd_cb, &sec_done_cb);
@ -401,7 +401,7 @@ bool test_socket_api_callbacks()
socket_api_stub.recv_cb(sckt_data); socket_api_stub.recv_cb(sckt_data);
} }
connection_handler_destroy(handler2); connection_handler_destroy(handler2, false);
free(coap_security_handler_stub.sec_obj); free(coap_security_handler_stub.sec_obj);
coap_security_handler_stub.sec_obj = NULL; coap_security_handler_stub.sec_obj = NULL;
@ -444,7 +444,7 @@ bool test_security_callbacks()
coap_security_handler_stub.receive_cb(0, &buf, 16); coap_security_handler_stub.receive_cb(0, &buf, 16);
} }
connection_handler_destroy(handler); connection_handler_destroy(handler, false);
free(coap_security_handler_stub.sec_obj); free(coap_security_handler_stub.sec_obj);
coap_security_handler_stub.sec_obj = NULL; coap_security_handler_stub.sec_obj = NULL;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/TestHarness.h" #include "CppUTest/TestHarness.h"
#include "test_coap_message_handler.h" #include "test_coap_message_handler.h"
@ -45,8 +45,14 @@ TEST(coap_message_handler, test_coap_message_handler_response_send)
CHECK(test_coap_message_handler_response_send()); CHECK(test_coap_message_handler_response_send());
} }
TEST(coap_message_handler, test_coap_message_handler_request_delete)
{
CHECK(test_coap_message_handler_request_delete());
}
TEST(coap_message_handler, test_coap_message_handler_exec) TEST(coap_message_handler, test_coap_message_handler_exec)
{ {
CHECK(test_coap_message_handler_exec()); CHECK(test_coap_message_handler_exec());
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/CommandLineTestRunner.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "test_coap_message_handler.h" #include "test_coap_message_handler.h"
#include <string.h> #include <string.h>
@ -229,6 +229,39 @@ bool test_coap_message_handler_request_send()
return true; return true;
} }
bool test_coap_message_handler_request_delete()
{
retCounter = 1;
sn_coap_protocol_stub.expectedCoap = (struct coap_s*)malloc(sizeof(struct coap_s));
memset(sn_coap_protocol_stub.expectedCoap, 0, sizeof(struct coap_s));
coap_msg_handler_t *handle = coap_message_handler_init(&own_alloc, &own_free, &coap_tx_function);
uint8_t buf[16];
memset(&buf, 1, 16);
char uri[3];
uri[0] = "r";
uri[1] = "s";
uri[2] = "\0";
if( 0 == coap_message_handler_request_delete(NULL, 1, 1))
return false;
if( 0 == coap_message_handler_request_delete(handle, 1, 1))
return false;
sn_coap_builder_stub.expectedUint16 = 1;
nsdynmemlib_stub.returnCounter = 3;
if( 2 != coap_message_handler_request_send(handle, 3, 0, buf, 24, 1, 2, &uri, 4, NULL, 0, &resp_recv))
return false;
if( 0 != coap_message_handler_request_delete(handle, 1, 2))
return false;
free(sn_coap_protocol_stub.expectedCoap);
sn_coap_protocol_stub.expectedCoap = NULL;
coap_message_handler_destroy(handle);
return true;
}
bool test_coap_message_handler_response_send() bool test_coap_message_handler_response_send()
{ {
if( -1 != coap_message_handler_response_send(NULL, 2, 0, NULL, 1,3,NULL, 0)) if( -1 != coap_message_handler_response_send(NULL, 2, 0, NULL, 1,3,NULL, 0))

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -30,6 +30,7 @@ bool test_coap_message_handler_find_transaction();
bool test_coap_message_handler_coap_msg_process(); bool test_coap_message_handler_coap_msg_process();
bool test_coap_message_handler_request_send(); bool test_coap_message_handler_request_send();
bool test_coap_message_handler_response_send(); bool test_coap_message_handler_response_send();
bool test_coap_message_handler_request_delete();
bool test_coap_message_handler_exec(); bool test_coap_message_handler_exec();
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/TestHarness.h" #include "CppUTest/TestHarness.h"
#include "test_coap_security_handler.h" #include "test_coap_security_handler.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/CommandLineTestRunner.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "test_coap_security_handler.h" #include "test_coap_security_handler.h"
#include "coap_security_handler.h" #include "coap_security_handler.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -17,7 +17,8 @@ TEST_SRC_FILES = \
../stub/eventOS_event_stub.c \ ../stub/eventOS_event_stub.c \
../stub/coap_connection_handler_stub.c \ ../stub/coap_connection_handler_stub.c \
../stub/coap_message_handler_stub.c \ ../stub/coap_message_handler_stub.c \
../stub/common_functions_stub.c ../stub/common_functions_stub.c \
../stub/sn_coap_protocol_stub.c
include ../MakefileWorker.mk include ../MakefileWorker.mk

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/TestHarness.h" #include "CppUTest/TestHarness.h"
#include "test_coap_service_api.h" #include "test_coap_service_api.h"
@ -50,6 +50,11 @@ TEST(coap_service_api, test_coap_service_request_send)
CHECK(test_coap_service_request_send()); CHECK(test_coap_service_request_send());
} }
TEST(coap_service_api, test_coap_service_request_delete)
{
CHECK(test_coap_service_request_delete());
}
TEST(coap_service_api, test_coap_service_response_send) TEST(coap_service_api, test_coap_service_response_send)
{ {
CHECK(test_coap_service_response_send()); CHECK(test_coap_service_response_send());

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM. All rights reserved. * Copyright (c) 2015-2017 ARM. All rights reserved.
*/ */
#include "CppUTest/CommandLineTestRunner.h" #include "CppUTest/CommandLineTestRunner.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "test_coap_service_api.h" #include "test_coap_service_api.h"
#include <string.h> #include <string.h>
@ -215,6 +215,13 @@ bool test_coap_service_request_send()
return true; return true;
} }
bool test_coap_service_request_delete()
{
if( 0 != coap_service_request_delete(NULL,0))
return false;
return true;
}
bool test_coap_service_response_send() bool test_coap_service_response_send()
{ {
uint8_t buf[16]; uint8_t buf[16];

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -38,6 +38,8 @@ bool test_coap_service_unregister_uri();
bool test_coap_service_request_send(); bool test_coap_service_request_send();
bool test_coap_service_request_delete();
bool test_coap_service_response_send(); bool test_coap_service_response_send();
bool test_coap_callbacks(); bool test_coap_callbacks();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>
@ -32,7 +32,7 @@ coap_conn_handler_t *connection_handler_create(int (*recv_cb)(int8_t socket_id,
return thread_conn_handler_stub.handler_obj; return thread_conn_handler_stub.handler_obj;
} }
void connection_handler_destroy(coap_conn_handler_t *handler) void connection_handler_destroy( coap_conn_handler_t *handler, bool multicast_group_leave)
{ {
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "coap_message_handler_stub.h" #include "coap_message_handler_stub.h"
@ -60,6 +60,11 @@ int8_t coap_message_handler_response_send(coap_msg_handler_t *handle, int8_t ser
return coap_message_handler_stub.int8_value; return coap_message_handler_stub.int8_value;
} }
int8_t coap_message_handler_request_delete(coap_msg_handler_t *handle, int8_t service_id, uint16_t msg_id)
{
return 0;
}
int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time) int8_t coap_message_handler_exec(coap_msg_handler_t *handle, uint32_t current_time)
{ {
return coap_message_handler_stub.int8_value; return coap_message_handler_stub.int8_value;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2016 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include <string.h> #include <string.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2015 ARM Limited. All rights reserved. * Copyright (c) 2014-2017 ARM Limited. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* Licensed under the Apache License, Version 2.0 (the License); you may * Licensed under the Apache License, Version 2.0 (the License); you may
* not use this file except in compliance with the License. * not use this file except in compliance with the License.

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "mbedtls_stub.h" #include "mbedtls_stub.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#define NS_LIST_FN extern #define NS_LIST_FN extern

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2014-2017 ARM Limited. All Rights Reserved.
*/ */
#include "ns_types.h" #include "ns_types.h"
#include "ns_list.h" #include "ns_list.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2014-2017 ARM Limited. All Rights Reserved.
*/ */
#include "nsdynmemLIB_stub.h" #include "nsdynmemLIB_stub.h"
#include <stdint.h> #include <stdint.h>
@ -10,11 +10,19 @@
nsdynmemlib_stub_data_t nsdynmemlib_stub; nsdynmemlib_stub_data_t nsdynmemlib_stub;
#if NSDYNMEMLIB_API_VERSION < 2
typedef int16_t ns_mem_block_size_t;
typedef int16_t ns_mem_heap_size_t;
void ns_dyn_mem_init(uint8_t *heap, uint16_t h_size, void (*passed_fptr)(heap_fail_t), mem_stat_t *info_ptr) void ns_dyn_mem_init(uint8_t *heap, uint16_t h_size, void (*passed_fptr)(heap_fail_t), mem_stat_t *info_ptr)
{ {
} }
#else
void ns_dyn_mem_init(void *heap, uint16_t h_size, void (*passed_fptr)(heap_fail_t), mem_stat_t *info_ptr)
{
}
#endif
void *ns_dyn_mem_alloc(int16_t alloc_size) void *ns_dyn_mem_alloc(ns_mem_block_size_t alloc_size)
{ {
if (nsdynmemlib_stub.returnCounter > 0) if (nsdynmemlib_stub.returnCounter > 0)
{ {
@ -27,7 +35,7 @@ void *ns_dyn_mem_alloc(int16_t alloc_size)
} }
} }
void *ns_dyn_mem_temporary_alloc(int16_t alloc_size) void *ns_dyn_mem_temporary_alloc(ns_mem_block_size_t alloc_size)
{ {
if (nsdynmemlib_stub.returnCounter > 0) if (nsdynmemlib_stub.returnCounter > 0)
{ {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
@ -31,11 +31,6 @@ typedef struct {
extern nsdynmemlib_stub_data_t nsdynmemlib_stub; extern nsdynmemlib_stub_data_t nsdynmemlib_stub;
void *ns_dyn_mem_alloc(int16_t alloc_size);
void *ns_dyn_mem_temporary_alloc(int16_t alloc_size);
void ns_dyn_mem_free(void *block);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2014-2017 ARM Limited. All Rights Reserved.
*/ */
#include <stdint.h> #include <stdint.h>
#include <stdlib.h> #include <stdlib.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2011-2017 ARM Limited. All Rights Reserved.
*/ */
/** /**

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2011-2017 ARM Limited. All Rights Reserved.
*/ */
/** /**

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2011-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2011-2017 ARM Limited. All Rights Reserved.
*/ */

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
*/ */
#include "socket_api.h" #include "socket_api.h"
#include "socket_api_stub.h" #include "socket_api_stub.h"

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015 ARM Limited. All Rights Reserved. * Copyright (c) 2015-2017 ARM Limited. All Rights Reserved.
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2015 ARM Limited. All Rights Reserved. * Copyright (c) 2014-2017 ARM Limited. All Rights Reserved.
*/ */
#include "ns_types.h" #include "ns_types.h"
#include "timer_sys.h" #include "timer_sys.h"

View File

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# Copyright (c) 2015 ARM Limited. All rights reserved. # Copyright (c) 2015-2017 ARM Limited. All rights reserved.
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
# Licensed under the Apache License, Version 2.0 (the License); you may # Licensed under the Apache License, Version 2.0 (the License); you may
# not use this file except in compliance with the License. # not use this file except in compliance with the License.