-
- if (!inet_ntop(ai->ai_family, ai->ai_addr, address, address_len))
- return FALSE;
+
+ if (ai->ai_family == AF_INET) {
+ if (!inet_ntop(ai->ai_family,
+ &((struct sockaddr_in *)ai->ai_addr)->sin_addr,
+ address, address_len))
+ return FALSE;
+ } else {
+ if (!inet_ntop(ai->ai_family,
+ &((struct sockaddr_in6 *)ai->ai_addr)->sin6_addr,
+ address, address_len))
+ return FALSE;
+ }