diff --git a/src/seeder/dns.h b/src/seeder/dns.h --- a/src/seeder/dns.h +++ b/src/seeder/dns.h @@ -2,6 +2,7 @@ #define BITCOIN_SEEDER_DNS_H 1 #include +#include struct addr_t { int v; @@ -24,6 +25,13 @@ uint64_t nRequests; }; +// 0: ok +// -1: premature end of input, forward reference, component > 63 char, invalid +// character +// -2: insufficient space in output +int parse_name(const uint8_t **inpos, const uint8_t *inend, + const uint8_t *inbuf, char *buf, size_t bufsize); + int dnsserver(dns_opt_t *opt); #endif // BITCOIN_SEEDER_DNS_H diff --git a/src/seeder/dns.cpp b/src/seeder/dns.cpp --- a/src/seeder/dns.cpp +++ b/src/seeder/dns.cpp @@ -46,12 +46,8 @@ QTYPE_ANY = 255 } dns_type; -// 0: ok -// -1: premature end of input, forward reference, component > 63 char, invalid -// character -// -2: insufficient space in output -static int parse_name(const uint8_t **inpos, const uint8_t *inend, - const uint8_t *inbuf, char *buf, size_t bufsize) { +int parse_name(const uint8_t **inpos, const uint8_t *inend, + const uint8_t *inbuf, char *buf, size_t bufsize) { size_t bufused = 0; int init = 1; do { @@ -579,10 +575,10 @@ for (; 1; ++(opt->nRequests)) { ssize_t insize = recvmsg(listenSocket, &msg, 0); - // uint8_t *addr = (uint8_t*)&si_other.sin_addr.s_addr; + // uint8_t *addr = (uint8_t*)&si_other.sin6_addr.s6_addr; // fprintf(stdout, "DNS: Request %llu from %i.%i.%i.%i:%i of %i // bytes\n", (unsigned long long)(opt->nRequests), addr[0], addr[1], - // addr[2], addr[3], ntohs(si_other.sin_port), (int)insize); + // addr[2], addr[3], ntohs(si_other.sin6_port), (int)insize); if (insize <= 0) continue; ssize_t ret = dnshandle(opt, inbuf, insize, outbuf);