X-Git-Url: http://git.pk910.de/?p=NextIRCd.git;a=blobdiff_plain;f=src%2FIOHandler%2FIODNSLookup.c;fp=src%2FIOHandler%2FIODNSLookup.c;h=732cc0efedaef4434cd281d56c2a346c14fce113;hp=f458bf5ca033bf89e4f0eb4d264c8209a8539f3f;hb=285018f265af0f32438a5de357905963daaaa86f;hpb=20455ed400c62ab7c3f7e6e3c6422d155d98a748 diff --git a/src/IOHandler/IODNSLookup.c b/src/IOHandler/IODNSLookup.c index f458bf5..732cc0e 100644 --- a/src/IOHandler/IODNSLookup.c +++ b/src/IOHandler/IODNSLookup.c @@ -21,6 +21,23 @@ #include "IOLog.h" #include "IOSockets.h" +#ifdef WIN32 +#ifdef _WIN32_WINNT +#undef _WIN32_WINNT +#endif +#define _WIN32_WINNT 0x501 +#include +#include +#include +#else +#include +#include +#include +#include +#include +#include +#endif + #include struct _IODNSQuery *iodnsquery_first = NULL; @@ -211,6 +228,23 @@ void iodns_abort(struct IODNSQuery *descriptor) { _stop_dnsquery(query); } +int iodns_print_address(struct IODNSAddress *addr, int ipv6, const char *buffer, int length) { + int af; + void *addr; + if(ipv6) { + af = AF_INET6; + addr = (void *)(&((struct sockaddr_in6 *)sockaddr->address)->sin6_addr); + } else { + af = AF_INET; + addr = (void *)(&((struct sockaddr_in *)sockaddr->address)->sin_addr); + } + buffer = inet_ntop(af, addr, buffer, length); + if(!buffer) + return 0; + else + return strlen(buffer); +} + void iodns_free_result(struct IODNSResult *result) { struct IODNSResult *next; for(;result;result = next) {