diff options
| author | Eric Andersen <andersen@codepoet.org> | 2005-04-28 18:57:25 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2005-04-28 18:57:25 +0000 | 
| commit | 5aa1733024895911ef4e94ed47f81c8df15fef0a (patch) | |
| tree | b1256f92274ba7e6a3dcbaf4dda58ad133790b6e /libc | |
| parent | a4294fd5e12eeb0ec81e06244096d4a00bae01f3 (diff) | |
Cleanup error case a bit
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/inet/resolv.c | 16 | 
1 files changed, 8 insertions, 8 deletions
| 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 | 
