From 5aa1733024895911ef4e94ed47f81c8df15fef0a Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Thu, 28 Apr 2005 18:57:25 +0000 Subject: Cleanup error case a bit --- libc/inet/resolv.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'libc/inet') diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 752bf7fc1..6ceb07796 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -674,7 +674,7 @@ int __dns_lookup(const char *name, int type, int nscount, char **nsip, char *dns, *lookup = malloc(MAXDNAME); int variant = -1; struct sockaddr_in sa; - int local_ns, local_id; + int local_ns = -1, local_id = -1; #ifdef __UCLIBC_HAS_IPV6__ int v6; struct sockaddr_in6 sa6; @@ -689,12 +689,10 @@ int __dns_lookup(const char *name, int type, int nscount, char **nsip, /* Mess with globals while under lock */ LOCK; - local_ns = ns; + local_ns = ns % nscount; local_id = id; UNLOCK; - local_ns %= nscount; - while (retries < MAX_RETRIES) { if (fd != -1) close(fd); @@ -912,10 +910,12 @@ fail: free(packet); h_errno = NETDB_INTERNAL; /* Mess with globals while under lock */ - LOCK; - ns = local_ns; - id = local_id; - UNLOCK; + if (local_ns != -1) { + LOCK; + ns = local_ns; + id = local_id; + UNLOCK; + } return -1; } #endif -- cgit v1.2.3