diff --git a/dns.c b/dns.c index a07c8e3..98537a3 100644 --- a/dns.c +++ b/dns.c @@ -185,7 +185,7 @@ dns_ping(int dns_fd) printf("No reply on chunk, resending\n"); dns_send_chunk(dns_fd); } else { - dns_write(dns_fd, dns_fd, "\0", 1); + dns_write(dns_fd, dns_fd, "", 1); } } diff --git a/dnsd.c b/dnsd.c index d8c2d38..0b40fc9 100644 --- a/dnsd.c +++ b/dnsd.c @@ -285,6 +285,10 @@ dnsd_read(int fd, char *buf, int buflen) packetlen++; } dnsd_respond(fd, id, from); + if (lastblock && packetlen == 0) { + // Skipping ping packet + return 0; + } if (lastblock) { datalen = MIN(packetlen, buflen); memcpy(buf, activepacket, datalen);