void resolver_init() { #if defined(USE_WIN32) && !defined(_WIN32_WCE) if(get_ipv6(TEXT("ws2_32.dll"))) /* IPv6 in Windows XP or higher */ return; if(get_ipv6(TEXT("wship6.dll"))) /* experimental IPv6 for Windows 2000 */ return; /* fall back to the built-in emulation */ #endif }
int get_source_ipv6(int protocol, struct sockaddr_in6 * address) { char buffer[HOST_NAME_MAX+1]; gethostname(buffer, HOST_NAME_MAX+1); int success = get_ipv6(buffer, protocol, address); return success; }
void set_interface(interface *inter, struct ifaddrs *ifa) { get_name(inter,ifa->ifa_name); get_status(inter,ifa); if (ifa->ifa_addr->sa_family == AF_INET) { get_ipv4(inter,ifa); get_mask(inter,ifa); } if (ifa->ifa_addr->sa_family == AF_INET6) get_ipv6(inter,ifa); if (ifa->ifa_addr->sa_family == AF_PACKET) get_hwaddr(inter,ifa); }