diff options
Diffstat (limited to 'networking/udhcp/files.c')
-rw-r--r-- | networking/udhcp/files.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/networking/udhcp/files.c b/networking/udhcp/files.c index c3ab17de4..e35f50a17 100644 --- a/networking/udhcp/files.c +++ b/networking/udhcp/files.c | |||
@@ -21,15 +21,14 @@ | |||
21 | /* on these functions, make sure you datatype matches */ | 21 | /* on these functions, make sure you datatype matches */ |
22 | static int read_ip(const char *line, void *arg) | 22 | static int read_ip(const char *line, void *arg) |
23 | { | 23 | { |
24 | struct in_addr *addr = arg; | 24 | len_and_sockaddr *lsa; |
25 | struct hostent *host; | 25 | int retval = 0; |
26 | int retval = 1; | 26 | |
27 | 27 | lsa = host_and_af2sockaddr(line, 0, AF_INET); | |
28 | if (!inet_aton(line, addr)) { | 28 | if (lsa) { |
29 | host = gethostbyname(line); | 29 | *(struct in_addr*)arg = lsa->sin.sin_addr; |
30 | if (host) | 30 | free(lsa); |
31 | addr->s_addr = *((unsigned long *) host->h_addr_list[0]); | 31 | retval = 1; |
32 | else retval = 0; | ||
33 | } | 32 | } |
34 | return retval; | 33 | return retval; |
35 | } | 34 | } |