summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2018-11-29 11:17:08 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2018-11-29 15:04:31 +0100
commit4b48ae4bcdbc137c80b77adc5aa614e5f4cb9f51 (patch)
treeec502443c6dd7e665a8b420d49eb5ae811de7775 /include
parentcd9a7567b0d5afd874dcd31fd22918868e9eab9e (diff)
downloadbarebox-4b48ae4bcdbc137c80b77adc5aa614e5f4cb9f51.tar.gz
barebox-4b48ae4bcdbc137c80b77adc5aa614e5f4cb9f51.tar.xz
net: dns: return error codes
The resolv() function used to return the IP address. When net_udp_new() fails we return an error code though which the callers of resolv() take as an IP address. This is wrong of course and we could return 0 in this case. Instead we return an error code and pass the resolved IP as a pointer which allows us to return proper error codes. This patch also adds error messages and error returns to the various callers of resolv() which used to just continue with a zero IP and let the user figure out what went wrong. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/net.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/include/net.h b/include/net.h
index a09cb155a8..6912a557b5 100644
--- a/include/net.h
+++ b/include/net.h
@@ -330,13 +330,11 @@ int string_to_ethaddr(const char *str, u8 enetaddr[6]);
void ethaddr_to_string(const u8 enetaddr[6], char *str);
#ifdef CONFIG_NET_RESOLV
-IPaddr_t resolv(const char *host);
+int resolv(const char *host, IPaddr_t *ip);
#else
-static inline IPaddr_t resolv(const char *host)
+static inline int resolv(const char *host, IPaddr_t *ip)
{
- IPaddr_t ip = 0;
- string_to_ip(host, &ip);
- return ip;
+ return string_to_ip(host, ip);
}
#endif