X-Git-Url: http://git.pk910.de/?p=NextIRCd.git;a=blobdiff_plain;f=src%2FIOHandler%2FIODNSLookup.c;fp=src%2FIOHandler%2FIODNSLookup.c;h=e6201639fa84af990c2e4fa6cd3b3a5bf376837b;hp=f458bf5ca033bf89e4f0eb4d264c8209a8539f3f;hb=acc7f60740ab12e2410fd3187fcb9a27995c0638;hpb=df0c10ba0ce7b840d2a884df69a986e9cad19dc9 diff --git a/src/IOHandler/IODNSLookup.c b/src/IOHandler/IODNSLookup.c index f458bf5..e620163 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 *address, int ipv6, char *buffer, int length) { + int af; + void *addr; + if(ipv6) { + af = AF_INET6; + addr = (void *)(&((struct sockaddr_in6 *)address->address)->sin6_addr); + } else { + af = AF_INET; + addr = (void *)(&((struct sockaddr_in *)address->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) {