X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/e1d31292a9c52afb49d6dcbb5dc140289774f8c7..b0f1ed648e2df035f8c391ccd4fcbd3410cb1af9:/src/general.c diff --git a/src/general.c b/src/general.c index cbe735a..7703254 100644 --- a/src/general.c +++ b/src/general.c @@ -38,12 +38,11 @@ /* Core diagnostic functions */ -const char *adns__sockaddr_ntoa(struct sockaddr *sa, size_t n) +const char *adns__sockaddr_ntoa(struct sockaddr *sa, size_t n, char *buf) { - static char buf[64]; int err; - err = getnameinfo(sa, n, buf, sizeof(buf), 0, 0, NI_NUMERICHOST); + err = getnameinfo(sa, n, buf, MAX_ADDRSTRLEN, 0, 0, NI_NUMERICHOST); assert(!err); return buf; } @@ -61,6 +60,7 @@ void adns__lprintf(adns_state ads, const char *fmt, ...) { void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent, int serv, adns_query qu, const char *fmt, va_list al) { + char buf[MAX_ADDRSTRLEN]; const char *bef, *aft; vbuf vb; @@ -96,7 +96,7 @@ void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent, if (serv>=0) { adns__lprintf(ads,"%sNS=%s",bef, adns__sockaddr_ntoa(&ads->servers[serv].addr.sa, - ads->servers[serv].len)); + ads->servers[serv].len, buf)); bef=", "; aft=")\n"; }