Home / RL-ARM User's Guide (MDK v4)
Starting DNS
Start the DNS Resolver by calling the function get_host_by_name(). DNS
Requests are routed to the DNS Server IP address of an active network
interface. If you are using a PPP or SLIP interface and no ethernet
interface, you must enable the Use default gateway on remote
network option in the configuration.
You must also specify a callback function, which is
called from the DNS Client when a DNS event occurs.
static void dns_cbfunc (U8 event, U8 *ip) {
switch (event) {
case DNS_EVT_SUCCESS:
printf("IP Address: %d.%d.%d.%d\n",ip[0],ip[1],ip[2],ip[3]);
break;
case DNS_EVT_NONAME:
printf("Host name does not exist.\n");
break;
case DNS_EVT_TIMEOUT:
printf("DNS Resolver Timeout expired, Host IP not resolved.\n");
break;
case DNS_EVT_ERROR:
printf("DNS Resolver Error, check the host name, labels, etc.\n");
break;
}
}
When the required host is found in the local DNS Cache, the
callback function is called immediately with the result code
DNS_EVT_SUCCESS and provides the IP address of the host to the
function. In this case, no actual DNS request packet is sent to the
remote DNS Server.
Note
-
To use an Embedded DNS Client, you must enable and
configure it in the configuration file.
-
You can also provide the IP address in a string format
to specify the host name. The DNS Client decodes it and returns the
decoded IP address to the callback function.