Changed mutexes, delete and DNS call in callback set

- Changed mutexes to platform mutexes
- Removed not needed null check from delete
- Changed nsapi_dns_call_in_set() to use call_in_callback_cb_t and
added prototype to header
pull/6847/head
Mika Leppänen 2018-05-15 13:39:25 +03:00 committed by Kevin Bracey
parent c4424ff0a1
commit 31b8f73de7
2 changed files with 16 additions and 10 deletions

View File

@ -27,6 +27,7 @@
#include "EventQueue.h"
#include "OnboardNetworkStack.h"
#include "Kernel.h"
#include "PlatformMutex.h"
#define CLASS_IN 1
@ -76,9 +77,6 @@ struct DNS_QUERY {
uint8_t count;
};
typedef nsapi_error_t (*nsapi_dns_call_t)(mbed::Callback<void()> func);
typedef nsapi_error_t (*nsapi_dns_call_in_t)(int delay, mbed::Callback<void()> func);
static void nsapi_dns_cache_add(const char *host, nsapi_addr_t *address, uint32_t ttl);
static nsapi_size_or_error_t nsapi_dns_cache_find(const char *host, nsapi_version_t version, nsapi_addr_t *address);
@ -107,10 +105,10 @@ static uint16_t dns_message_id = 1;
static int dns_unique_id = 1;
static DNS_QUERY *dns_query_queue[DNS_QUERY_QUEUE_SIZE];
// Protects cache shared between blocking and asynchronous calls
static rtos::Mutex dns_cache_mutex;
static PlatformMutex dns_cache_mutex;
// Protects from several threads running asynchronous DNS
static rtos::Mutex dns_mutex;
static nsapi_dns_call_in_t dns_call_in = 0;
static PlatformMutex dns_mutex;
static call_in_callback_cb_t dns_call_in = 0;
// DNS server configuration
extern "C" nsapi_error_t nsapi_dns_add_server(nsapi_addr_t addr)
@ -558,7 +556,7 @@ nsapi_value_or_error_t nsapi_dns_query_async(NetworkStack *stack, const char *ho
return nsapi_dns_query_multiple_async(stack, host, callback, 0, call_in_cb, version);
}
void nsapi_dns_call_in_set(nsapi_dns_call_in_t callback)
void nsapi_dns_call_in_set(call_in_callback_cb_t callback)
{
dns_call_in = callback;
}
@ -1069,9 +1067,7 @@ static void nsapi_dns_query_async_response(void *ptr)
nsapi_dns_query_async_resp(query, status, addresses);
if (addresses) {
delete[] addresses;
}
delete[] addresses;
} else {
dns_mutex.unlock();
}

View File

@ -188,6 +188,16 @@ nsapi_size_or_error_t nsapi_dns_query_multiple(S *stack, const char *host,
*/
nsapi_error_t nsapi_dns_query_async_cancel(nsapi_error_t id);
/** Set a call in callback
*
* Can be used to provide an application specific call in callback to
* DNS resolver. When callback is set it is used instead of stack
* specific call in callbacks.
*
* @param callback Callback
*/
void nsapi_dns_call_in_set(call_in_callback_cb_t callback);
/** Add a domain name server to list of servers to query
*
* @param addr Destination for the host address