X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/39f45e7e0051167558b7efd0266462ec5f998999..c244361afe1cda10845960d6176e9b7a8dfa70a9:/src/general.c diff --git a/src/general.c b/src/general.c index 4404b31..facc0b5 100644 --- a/src/general.c +++ b/src/general.c @@ -32,11 +32,22 @@ #include #include #include +#include #include "internal.h" /* Core diagnostic functions */ +const char *adns__sockaddr_ntoa(struct sockaddr *sa, size_t n) +{ + static char buf[64]; + int err; + + err = getnameinfo(sa, n, buf, sizeof(buf), 0, 0, NI_NUMERICHOST); + assert(!err); + return buf; +} + void adns__vlprintf(adns_state ads, const char *fmt, va_list al) { ads->logfn(ads,ads->logfndata,fmt,al); } @@ -83,7 +94,9 @@ void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent, } if (serv>=0) { - adns__lprintf(ads,"%sNS=%s",bef,inet_ntoa(ads->servers[serv].addr)); + adns__lprintf(ads,"%sNS=%s",bef, + adns__sockaddr_ntoa(&ads->servers[serv].addr.sa, + ads->servers[serv].len)); bef=", "; aft=")\n"; }