X-Git-Url: https://git.distorted.org.uk/~mdw/adns/blobdiff_plain/86ea5e62c7d3bc1e17715811b2047b7d1b06862d..c244361afe1cda10845960d6176e9b7a8dfa70a9:/src/general.c diff --git a/src/general.c b/src/general.c index da0b8d0..facc0b5 100644 --- a/src/general.c +++ b/src/general.c @@ -4,12 +4,11 @@ * - vbuf handling */ /* - * This file is - * Copyright (C) 1997-2000 Ian Jackson - * - * It is part of adns, which is - * Copyright (C) 1997-2000 Ian Jackson - * Copyright (C) 1999-2000 Tony Finch + * This file is part of adns, which is + * Copyright (C) 1997-2000,2003,2006 Ian Jackson + * Copyright (C) 1999-2000,2003,2006 Tony Finch + * Copyright (C) 1991 Massachusetts Institute of Technology + * (See the file INSTALL for full details.) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,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); } @@ -84,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"; }