DNS Client Application ====================== The DNS resolver or DNS client application demonstrates how to use the DNS resolver API. The DNS API allows to recover IPv4 and IPv6 addresses. API Return Codes ================ API return codes are documented in the API (see include/iot/dns_client.h). Macro | Value | Description ------------------------------------------------------------------------ O is always success -EINVAL -22 if an invalid parameter was detected -EIO -5 network error -ENOMEM -12 memory error, perhaps related to network buffers Requirements ============ 'net_tools': https://wiki.zephyrproject.org/view/Networking-with-Qemu 'dnsmasq' application. The dnsmasq version used in this sample is: dnsmasq -v Dnsmasq version 2.76 Copyright (c) 2000-2016 Simon Kelley Building Instructions ===================== Read src/config.h, change the IP addresses according to the LAN environment. In a terminal window, type make pristine && make to build this sample. Usage ===== Run 'loop_socat.sh' and 'loop-slip-tap.sh' as indicated at: https://gerrit.zephyrproject.org/r/gitweb?p=net-tools.git;a=blob;f=README Set the IPv4 ip address: ip addr add 192.0.2.2/24 dev tap0 Open a terminal window and type: dnsmasq -i tap0 -p 5353 -d NOTE: some systems may require root privileges to run dnsmaq, use sudo or su. If dnsmasq fails to start with an error like this: dnsmasq: failed to create listening socket for port 5353: Address already in use open a terminal window and type: killall -s KILL dnsmasq For QEMU, type: make qemu Sample Output (CONFIG_NET_IPV6=n, CONFIG_NET_IPV4=y) ==================================================== To exit from QEMU enter: 'CTRL+a, x' [QEMU] CPU: qemu32 ------------------------------------------- [run_dns:127] name: not_a_real_domain_name rc: -22 ------------------------------------------- [run_dns:127] name: zephyrproject.org [run_dns:151] 140.211.169.8 ------------------------------------------- [run_dns:127] name: www.zephyrproject.org [run_dns:151] 140.211.169.8 ------------------------------------------- [run_dns:127] name: gerrit.zephyrproject.org [run_dns:151] 199.19.213.246 ------------------------------------------- [run_dns:127] name: jira.zephyrproject.org [run_dns:151] 199.19.213.246 ------------------------------------------- [run_dns:127] name: jenkins.zephyrproject.org [run_dns:151] 199.19.213.246 ------------------------------------------- [run_dns:127] name: linuxfoundation.org rc: -5 ------------------------------------------- [run_dns:127] name: www.linuxfoundation.org [run_dns:151] 140.211.169.4 ------------------------------------------- [run_dns:127] name: collabprojects.linuxfoundation.org [run_dns:151] 140.211.169.4 ------------------------------------------- [run_dns:127] name: events.linuxfoundation.org [run_dns:151] 140.211.169.4 ------------------------------------------- [run_dns:127] name: training.linuxfoundation.org [run_dns:151] 140.211.169.4 Bye! Known Issues ============ The above sample contains a rc: -22 (-EINVAL). This is the expected behavior for that domain name.