Base class for DNS provider. More...
#include <DNS.h>
Public Types | |
typedef mbed::Callback< void(nsapi_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 | 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_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_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 | NSAPI_ERROR_OK on success, negative error code on failure. |
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, 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, and NetworkStack.
|
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, and NetworkStack.
|
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.