mirror of https://github.com/ARMmbed/mbed-os.git
[nsapi] Restructured nsapi_dns.h to have clear separation between C/C++
- Separated overloads based on language - Removed NSAPI_C_LINKAGE definitionpull/2497/head
parent
a3ecdf3b71
commit
4ffeec1797
|
|
@ -35,8 +35,7 @@ nsapi_addr_t dns_servers[DNS_SERVERS_SIZE] = {
|
||||||
|
|
||||||
|
|
||||||
// DNS server configuration
|
// DNS server configuration
|
||||||
NSAPI_C_LINKAGE
|
extern "C" int nsapi_dns_add_server(nsapi_addr_t addr)
|
||||||
int nsapi_dns_add_server(nsapi_addr_t addr)
|
|
||||||
{
|
{
|
||||||
memmove(&dns_servers[1], &dns_servers[0],
|
memmove(&dns_servers[1], &dns_servers[0],
|
||||||
(DNS_SERVERS_SIZE-1)*sizeof(nsapi_addr_t));
|
(DNS_SERVERS_SIZE-1)*sizeof(nsapi_addr_t));
|
||||||
|
|
@ -45,16 +44,6 @@ int nsapi_dns_add_server(nsapi_addr_t addr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nsapi_dns_add_server(const SocketAddress &address)
|
|
||||||
{
|
|
||||||
return nsapi_dns_add_server(address.get_addr());
|
|
||||||
}
|
|
||||||
|
|
||||||
int nsapi_dns_add_server(const char *address)
|
|
||||||
{
|
|
||||||
return nsapi_dns_add_server(SocketAddress(address));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// DNS packet parsing
|
// DNS packet parsing
|
||||||
static void dns_append_byte(uint8_t **p, uint8_t byte)
|
static void dns_append_byte(uint8_t **p, uint8_t byte)
|
||||||
|
|
@ -272,8 +261,7 @@ static int nsapi_dns_query_multiple(NetworkStack *stack,
|
||||||
}
|
}
|
||||||
|
|
||||||
// convenience functions for other forms of queries
|
// convenience functions for other forms of queries
|
||||||
NSAPI_C_LINKAGE
|
extern "C" int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
||||||
int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, unsigned addr_count,
|
nsapi_addr_t *addr, unsigned addr_count,
|
||||||
const char *host, nsapi_version_t version)
|
const char *host, nsapi_version_t version)
|
||||||
{
|
{
|
||||||
|
|
@ -281,14 +269,6 @@ int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
||||||
return nsapi_dns_query_multiple(nstack, addr, addr_count, host, version);
|
return nsapi_dns_query_multiple(nstack, addr, addr_count, host, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, unsigned addr_count,
|
|
||||||
const char *host)
|
|
||||||
{
|
|
||||||
NetworkStack *nstack = nsapi_create_stack(stack);
|
|
||||||
return nsapi_dns_query_multiple(nstack, addr, addr_count, host, NSAPI_IPv4);
|
|
||||||
}
|
|
||||||
|
|
||||||
int nsapi_dns_query_multiple(NetworkStack *stack,
|
int nsapi_dns_query_multiple(NetworkStack *stack,
|
||||||
SocketAddress *addresses, unsigned addr_count,
|
SocketAddress *addresses, unsigned addr_count,
|
||||||
const char *host, nsapi_version_t version)
|
const char *host, nsapi_version_t version)
|
||||||
|
|
@ -306,8 +286,7 @@ int nsapi_dns_query_multiple(NetworkStack *stack,
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
NSAPI_C_LINKAGE
|
extern "C" int nsapi_dns_query(nsapi_stack_t *stack,
|
||||||
int nsapi_dns_query(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, const char *host, nsapi_version_t version)
|
nsapi_addr_t *addr, const char *host, nsapi_version_t version)
|
||||||
{
|
{
|
||||||
NetworkStack *nstack = nsapi_create_stack(stack);
|
NetworkStack *nstack = nsapi_create_stack(stack);
|
||||||
|
|
@ -315,14 +294,6 @@ int nsapi_dns_query(nsapi_stack_t *stack,
|
||||||
return (result > 0) ? 0 : result;
|
return (result > 0) ? 0 : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
int nsapi_dns_query(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, const char *host)
|
|
||||||
{
|
|
||||||
NetworkStack *nstack = nsapi_create_stack(stack);
|
|
||||||
int result = nsapi_dns_query_multiple(nstack, addr, 1, host, NSAPI_IPv4);
|
|
||||||
return (result > 0) ? 0 : result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int nsapi_dns_query(NetworkStack *stack,
|
int nsapi_dns_query(NetworkStack *stack,
|
||||||
SocketAddress *address, const char *host, nsapi_version_t version)
|
SocketAddress *address, const char *host, nsapi_version_t version)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,48 @@
|
||||||
#define NSAPI_DNS_H
|
#define NSAPI_DNS_H
|
||||||
|
|
||||||
#include "nsapi_types.h"
|
#include "nsapi_types.h"
|
||||||
|
#ifdef __cplusplus
|
||||||
#include "network-socket/NetworkStack.h"
|
#include "network-socket/NetworkStack.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __cplusplus
|
||||||
|
|
||||||
|
|
||||||
|
/** Query a domain name server for an IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Destination for the host address
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
|
int nsapi_dns_query(nsapi_stack_t *stack, nsapi_addr_t *addr,
|
||||||
|
const char *host, nsapi_version_t version);
|
||||||
|
|
||||||
|
/** Query a domain name server for multiple IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Array for the host addresses
|
||||||
|
* @param addr_count Number of addresses allocated in the array
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve
|
||||||
|
* @return Number of addresses found on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
|
int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
||||||
|
nsapi_addr_t *addr, unsigned addr_count,
|
||||||
|
const char *host, nsapi_version_t version);
|
||||||
|
|
||||||
|
/** Add a domain name server to list of servers to query
|
||||||
|
*
|
||||||
|
* @param addr Destination for the host address
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
int nsapi_dns_add_server(nsapi_addr_t addr);
|
||||||
|
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
|
||||||
/** Query a domain name server for an IP address of a given hostname
|
/** Query a domain name server for an IP address of a given hostname
|
||||||
|
|
@ -30,24 +71,36 @@
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
*/
|
*/
|
||||||
NSAPI_C_LINKAGE
|
|
||||||
int nsapi_dns_query(nsapi_stack_t *stack, nsapi_addr_t *addr,
|
|
||||||
const char *host, nsapi_version_t version);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
int nsapi_dns_query(nsapi_stack_t *stack, nsapi_addr_t *addr,
|
|
||||||
const char *host);
|
|
||||||
int nsapi_dns_query(NetworkStack *stack, SocketAddress *addr,
|
int nsapi_dns_query(NetworkStack *stack, SocketAddress *addr,
|
||||||
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
||||||
|
|
||||||
|
/** Query a domain name server for an IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Destination for the host address
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve (defaults to NSAPI_IPv4)
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
|
extern "C" int nsapi_dns_query(nsapi_stack_t *stack, nsapi_addr_t *addr,
|
||||||
|
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
||||||
|
|
||||||
|
/** Query a domain name server for an IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Destination for the host address
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve (defaults to NSAPI_IPv4)
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
template <typename S>
|
template <typename S>
|
||||||
int nsapi_dns_query(S *stack, SocketAddress *addr,
|
int nsapi_dns_query(S *stack, SocketAddress *addr,
|
||||||
const char *host, nsapi_version_t version = NSAPI_IPv4)
|
const char *host, nsapi_version_t version = NSAPI_IPv4)
|
||||||
{
|
{
|
||||||
return nsapi_dns_query(nsapi_create_stack(stack), addr, host, version);
|
return nsapi_dns_query(nsapi_create_stack(stack), addr, host, version);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/** Query a domain name server for multiple IP address of a given hostname
|
/** Query a domain name server for multiple IP address of a given hostname
|
||||||
*
|
*
|
||||||
|
|
@ -59,19 +112,34 @@ int nsapi_dns_query(S *stack, SocketAddress *addr,
|
||||||
* @return Number of addresses found on success, negative error code on failure
|
* @return Number of addresses found on success, negative error code on failure
|
||||||
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
*/
|
*/
|
||||||
NSAPI_C_LINKAGE
|
|
||||||
int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, unsigned addr_count,
|
|
||||||
const char *host, nsapi_version_t version);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
|
||||||
int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
|
||||||
nsapi_addr_t *addr, unsigned addr_count,
|
|
||||||
const char *host);
|
|
||||||
int nsapi_dns_query_multiple(NetworkStack *stack,
|
int nsapi_dns_query_multiple(NetworkStack *stack,
|
||||||
SocketAddress *addr, unsigned addr_count,
|
SocketAddress *addr, unsigned addr_count,
|
||||||
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
||||||
|
|
||||||
|
/** Query a domain name server for multiple IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Array for the host addresses
|
||||||
|
* @param addr_count Number of addresses allocated in the array
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve (defaults to NSAPI_IPv4)
|
||||||
|
* @return Number of addresses found on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
|
extern "C" int nsapi_dns_query_multiple(nsapi_stack_t *stack,
|
||||||
|
nsapi_addr_t *addr, unsigned addr_count,
|
||||||
|
const char *host, nsapi_version_t version = NSAPI_IPv4);
|
||||||
|
|
||||||
|
/** Query a domain name server for multiple IP address of a given hostname
|
||||||
|
*
|
||||||
|
* @param stack Network stack as target for DNS query
|
||||||
|
* @param addr Array for the host addresses
|
||||||
|
* @param addr_count Number of addresses allocated in the array
|
||||||
|
* @param host Hostname to resolve
|
||||||
|
* @param version IP version to resolve (defaults to NSAPI_IPv4)
|
||||||
|
* @return Number of addresses found on success, negative error code on failure
|
||||||
|
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
||||||
|
*/
|
||||||
template <typename S>
|
template <typename S>
|
||||||
int nsapi_dns_query_multiple(S *stack,
|
int nsapi_dns_query_multiple(S *stack,
|
||||||
SocketAddress *addr, unsigned addr_count,
|
SocketAddress *addr, unsigned addr_count,
|
||||||
|
|
@ -80,24 +148,35 @@ int nsapi_dns_query_multiple(S *stack,
|
||||||
return nsapi_dns_query_multiple(nsapi_create_stack(stack),
|
return nsapi_dns_query_multiple(nsapi_create_stack(stack),
|
||||||
addr, addr_count, host, version);
|
addr, addr_count, host, version);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/** Add a domain name server to list of servers to query
|
/** Add a domain name server to list of servers to query
|
||||||
*
|
*
|
||||||
* @param stack Network stack as target for DNS query
|
|
||||||
* @param addr Destination for the host address
|
* @param addr Destination for the host address
|
||||||
* @param host Hostname to resolve
|
|
||||||
* @return 0 on success, negative error code on failure
|
* @return 0 on success, negative error code on failure
|
||||||
* NSAPI_ERROR_DNS_FAILURE indicates the host could not be found
|
|
||||||
*/
|
*/
|
||||||
NSAPI_C_LINKAGE
|
extern "C" int nsapi_dns_add_server(nsapi_addr_t addr);
|
||||||
int nsapi_dns_add_server(nsapi_addr_t addr);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
/** Add a domain name server to list of servers to query
|
||||||
int nsapi_dns_add_server(const SocketAddress &address);
|
*
|
||||||
int nsapi_dns_add_server(const char *address);
|
* @param addr Destination for the host address
|
||||||
#endif
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
static inline int nsapi_dns_add_server(const SocketAddress &address)
|
||||||
|
{
|
||||||
|
return nsapi_dns_add_server(address.get_addr());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Add a domain name server to list of servers to query
|
||||||
|
*
|
||||||
|
* @param addr Destination for the host address
|
||||||
|
* @return 0 on success, negative error code on failure
|
||||||
|
*/
|
||||||
|
static inline int nsapi_dns_add_server(const char *address)
|
||||||
|
{
|
||||||
|
return nsapi_dns_add_server(SocketAddress(address));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -148,18 +148,6 @@ typedef enum nsapi_option {
|
||||||
} nsapi_option_t;
|
} nsapi_option_t;
|
||||||
|
|
||||||
|
|
||||||
/* C linkage definition
|
|
||||||
*
|
|
||||||
* Attribute garuntees emitted function has C linkage.
|
|
||||||
* Available in both C and C++
|
|
||||||
*/
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#define NSAPI_C_LINKAGE extern "C"
|
|
||||||
#else
|
|
||||||
#define NSAPI_C_LINKAGE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/** nsapi_stack structure
|
/** nsapi_stack structure
|
||||||
*
|
*
|
||||||
* Stack structure representing a specific instance of a stack.
|
* Stack structure representing a specific instance of a stack.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue