mirror of https://github.com/ARMmbed/mbed-os.git
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 headerpull/6847/head
parent
c4424ff0a1
commit
31b8f73de7
|
|
@ -27,6 +27,7 @@
|
||||||
#include "EventQueue.h"
|
#include "EventQueue.h"
|
||||||
#include "OnboardNetworkStack.h"
|
#include "OnboardNetworkStack.h"
|
||||||
#include "Kernel.h"
|
#include "Kernel.h"
|
||||||
|
#include "PlatformMutex.h"
|
||||||
|
|
||||||
#define CLASS_IN 1
|
#define CLASS_IN 1
|
||||||
|
|
||||||
|
|
@ -76,9 +77,6 @@ struct DNS_QUERY {
|
||||||
uint8_t count;
|
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 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);
|
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 int dns_unique_id = 1;
|
||||||
static DNS_QUERY *dns_query_queue[DNS_QUERY_QUEUE_SIZE];
|
static DNS_QUERY *dns_query_queue[DNS_QUERY_QUEUE_SIZE];
|
||||||
// Protects cache shared between blocking and asynchronous calls
|
// 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
|
// Protects from several threads running asynchronous DNS
|
||||||
static rtos::Mutex dns_mutex;
|
static PlatformMutex dns_mutex;
|
||||||
static nsapi_dns_call_in_t dns_call_in = 0;
|
static call_in_callback_cb_t dns_call_in = 0;
|
||||||
|
|
||||||
// DNS server configuration
|
// DNS server configuration
|
||||||
extern "C" nsapi_error_t nsapi_dns_add_server(nsapi_addr_t addr)
|
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);
|
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;
|
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);
|
nsapi_dns_query_async_resp(query, status, addresses);
|
||||||
|
|
||||||
if (addresses) {
|
delete[] addresses;
|
||||||
delete[] addresses;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
dns_mutex.unlock();
|
dns_mutex.unlock();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
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
|
/** Add a domain name server to list of servers to query
|
||||||
*
|
*
|
||||||
* @param addr Destination for the host address
|
* @param addr Destination for the host address
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue