diff --git a/dns.c b/dns.c index 8c02654..184b82f 100644 --- a/dns.c +++ b/dns.c @@ -302,9 +302,9 @@ ssize_t static dnshandle(dns_opt_t *opt, const unsigned char *inbuf, size_t insi int n = 0; while (n < naddr) { int ret = 1; - if (addr->v == 4) + if (addr[n].v == 4) ret = write_record_a(&outpos, outend - auth_size, "", offset, CLASS_IN, opt->datattl, &addr[n]); - else if (addr->v == 6) + else if (addr[n].v == 6) ret = write_record_aaaa(&outpos, outend - auth_size, "", offset, CLASS_IN, opt->datattl, &addr[n]); // printf("wrote A record: %i\n", ret); if (!ret) { diff --git a/main.cpp b/main.cpp index a6e700a..c375a3c 100644 --- a/main.cpp +++ b/main.cpp @@ -220,6 +220,7 @@ extern "C" int GetIPList(void *data, addr_t* addr, int max, int ipv4, int ipv6) addr[i] = thread->cache[j]; thread->cache[j] = thread->cache[i]; thread->cache[i] = addr[i]; + i++; } return max; }