Base class for DNS provider. More...
#include <DNS.h>
Public Types | |
typedef mbed::Callback< void(nsapi_value_or_error_t result, SocketAddress *address)> | hostbyname_cb_t |
Hostname translation callback for gethostbyname_async. More... | |
Public Member Functions | |
virtual nsapi_error_t | gethostbyname (const char *host, SocketAddress *address, nsapi_version_t version=NSAPI_UNSPEC, const char *interface_name=NULL)=0 |
Translate a hostname to an IP address with specific version using network interface name. More... | |
virtual nsapi_value_or_error_t | getaddrinfo (const char *hostname, SocketAddress *hints, SocketAddress **res, const char *interface_name=NULL)=0 |
Translate a hostname to the multiple IP addresses with specific version using network interface name. More... | |
virtual nsapi_value_or_error_t | gethostbyname_async (const char *host, hostbyname_cb_t callback, nsapi_version_t version=NSAPI_UNSPEC, const char *interface_name=NULL)=0 |
Translate a hostname to an IP address (asynchronous) More... | |
virtual nsapi_value_or_error_t | getaddrinfo_async (const char *hostname, SocketAddress *hints, hostbyname_cb_t callback, const char *interface_name=NULL)=0 |
Translate a hostname to the multiple IP addresses (asynchronous) More... | |
virtual nsapi_error_t | gethostbyname_async_cancel (int id)=0 |
Cancel asynchronous hostname translation. More... | |
virtual nsapi_error_t | add_dns_server (const SocketAddress &address, const char *interface_name=NULL)=0 |
Add a domain name server to list of servers to query. More... | |
typedef mbed::Callback<void (nsapi_value_or_error_t result, SocketAddress *address)> hostbyname_cb_t |
Hostname translation callback for gethostbyname_async.
The callback is called after DNS resolution completes, or a failure occurs.
Callback should not take more than 10ms to execute, otherwise it might prevent underlying thread processing. A portable user of the callback should not make calls to network operations due to stack size limitations. The callback should not perform expensive operations such as socket recv/send calls or blocking operations.
result | Negative error code on failure or value that represents the number of DNS records |
address | On success, destination for the host SocketAddress. |
|
pure virtual |
Add a domain name server to list of servers to query.
address | DNS server host address. |
interface_name | Network interface name |
Implemented in NetworkInterface, LWIP, and NetworkStack.
|
pure virtual |
Translate a hostname to the multiple IP addresses with specific version using network interface name.
The hostname may be either a domain name or an IP address. If the hostname is an IP address, no network transactions will be performed.
If no stack-specific DNS resolution is provided, the hostname will be resolve using a UDP socket on the stack.
hostname | Hostname to resolve. |
hints | Pointer to a SocketAddress with query parameters. |
res | Pointer to a SocketAddress array to store the result.. |
interface_name | Network interface name |
Implemented in NetworkInterface, and NetworkStack.
|
pure virtual |
Translate a hostname to the multiple IP addresses (asynchronous)
The hostname may be either a domain name or an IP address. If the hostname is an IP address, no network transactions will be performed.
If no stack-specific DNS resolution is provided, the hostname will be resolved using a UDP socket on the stack.
The call is non-blocking. Result of the DNS operation is returned by the callback. If this function returns failure, callback will not be called. In case that IP addresses are found from DNS cache, callback will be called before function returns.
hostname | Hostname to resolve. |
hints | Pointer to a SocketAddress with query parameters. |
callback | Callback that is called to return the result. |
interface_name | Network interface name |
Implemented in NetworkInterface, and NetworkStack.
|
pure virtual |
Translate a hostname to an IP address with specific version using network interface name.
The hostname may be either a domain name or an IP address. If the hostname is an IP address, no network transactions will be performed.
If no stack-specific DNS resolution is provided, the hostname will be resolve using a UDP socket on the stack.
host | Hostname to resolve. |
address | Pointer to a SocketAddress to store the result. |
version | IP version of address to resolve, NSAPI_UNSPEC indicates version is chosen by the stack (defaults to NSAPI_UNSPEC). |
interface_name | Network interface name |
Implemented in NetworkInterface, NetworkStack, Nanostack, UBLOX_AT_CellularStack, and RM1000_AT_CellularStack.
|
pure virtual |
Translate a hostname to an IP address (asynchronous)
The hostname may be either a domain name or an IP address. If the hostname is an IP address, no network transactions will be performed.
If no stack-specific DNS resolution is provided, the hostname will be resolved using a UDP socket on the stack.
The call is non-blocking. The result of the DNS operation is returned by the callback. If this function returns failure, the callback will not be called. If it is successful, (the IP address was found from the DNS cache), the callback will be called before the function returns.
host | Hostname to resolve. |
callback | Callback that is called to return the result. |
version | IP version of address to resolve. NSAPI_UNSPEC indicates that the version is chosen by the stack (defaults to NSAPI_UNSPEC). |
interface_name | Network interface name |
Implemented in NetworkInterface, NetworkStack, and Nanostack.
|
pure virtual |
Cancel asynchronous hostname translation.
When translation is canceled, callback is not called.
id | Unique ID of the hostname translation operation returned by gethostbyname_async. |
Implemented in NetworkInterface, and NetworkStack.