From acc7f60740ab12e2410fd3187fcb9a27995c0638 Mon Sep 17 00:00:00 2001 From: pk910 Date: Thu, 24 Jul 2014 10:38:27 +0200 Subject: [PATCH] [IOMultiplexerV2] Added iodns_print_address: inet_ntop eqivalent function for struct IODNSAddress * --- src/IOHandler/IODNSLookup.c | 34 ++++++++++++++++++++++++++++++++++ src/IOHandler/IODNSLookup.h | 2 ++ 2 files changed, 36 insertions(+) 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) { diff --git a/src/IOHandler/IODNSLookup.h b/src/IOHandler/IODNSLookup.h index 78113ee..61966d8 100644 --- a/src/IOHandler/IODNSLookup.h +++ b/src/IOHandler/IODNSLookup.h @@ -152,6 +152,8 @@ struct IODNSQuery *iodns_getaddrinfo(char *hostname, int records, iodns_callback struct IODNSQuery *iodns_getnameinfo(const struct sockaddr *addr, size_t addrlen, iodns_callback *callback, void *arg); void iodns_abort(struct IODNSQuery *query); +int iodns_print_address(struct IODNSAddress *addr, int ipv6, char *buffer, int length); + void iodns_free_result(struct IODNSResult *result); #endif -- 2.20.1