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 "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();
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue