Browse Source

fix broken dns response parsing code that made most ipv6 lookups fail

Rich Felker 14 years ago
parent
commit
d104c1f7e2
1 changed files with 6 additions and 4 deletions
  1. 6 4
      src/network/__dns.c

+ 6 - 4
src/network/__dns.c

@@ -257,10 +257,12 @@ int __dns_count_addrs(const unsigned char *r, int cnt)
 	int found=0, res, i;
 	static const int p[2][2] = { { 4, RR_A }, { 16, RR_AAAA } };
 
-	while (cnt--) for (i=0; i<2; i++) {
-		res = __dns_get_rr(0, 0, p[i][0], -1, r, p[i][1], 0);
-		if (res < 0) return res;
-		found += res;
+	while (cnt--) {
+		for (i=0; i<2; i++) {
+			res = __dns_get_rr(0, 0, p[i][0], -1, r, p[i][1], 0);
+			if (res < 0) return res;
+			found += res;
+		}
 		r += 512;
 	}
 	return found;