formatIPAddress method
Implementation
String formatIPAddress(Pointer<SOCKADDR> addr) {
final buffer = calloc<BYTE>(64).cast<Utf8>();
try {
if (addr.ref.sa_family == AF_INET) {
final sinAddr = addr.cast<SOCKADDR_IN>().ref.sin_addr;
final sinAddrPtr = calloc<Int32>();
sinAddrPtr.value = sinAddr;
inet_ntop(AF_INET, sinAddrPtr, buffer, 64);
free(sinAddrPtr);
} else if (addr.ref.sa_family == AF_INET6) {
final sinAddr = addr.cast<SOCKADDR_IN6>().ref.sin6_addr;
final sinAddrPtr = calloc<Uint8>(16);
for (var i = 0; i < 16; i++) {
sinAddrPtr[i] = sinAddr[i];
}
inet_ntop(AF_INET6, sinAddrPtr, buffer, 64);
free(sinAddrPtr);
}
return buffer.cast<Utf8>().toDartString();
} finally {
free(buffer);
}
}