ifaddrs
struct ifaddrs *ifa_next; /* Next item in list */
int getifaddrs(struct ifaddrs **ifap);
void freeifaddrs(struct ifaddrs *ifa);
getifaddrs(struct ifaddrs** _ifaddrs)
struct ifaddrs* previous = NULL;
freeifaddrs(struct ifaddrs* ifa)
struct ifaddrs* next = ifa->ifa_next;
_getifaddrs(int domain, char* buffer, size_t len, struct ifaddrs** previous)
struct ifaddrs* current = new(std::nothrow) ifaddrs();
struct ifaddrs *ifaddrs, *ifa;
if (getifaddrs(&ifaddrs) == -1)
for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next)
freeifaddrs(ifaddrs);