X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcnet.c;h=60c5c77e3ccaf0b2a3e230e8d680668a554136e6;hp=272e7e300f306738495159bad4af86abf1f3a0e4;hb=487b9263317ab859b530cdda115984a970ca04eb;hpb=1f2c8b88c8afe13c4ba4598fddc9f3f230b606a3 diff --git a/lib/silcutil/silcnet.c b/lib/silcutil/silcnet.c index 272e7e30..60c5c77e 100644 --- a/lib/silcutil/silcnet.c +++ b/lib/silcutil/silcnet.c @@ -158,9 +158,18 @@ bool silc_net_gethostbyname(const char *name, char *address, if (getnameinfo(ai->ai_addr, ai->ai_addrlen, hbuf, sizeof(hbuf), NULL, 0, NI_NUMERICHOST)) return FALSE; - - 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; + } freeaddrinfo(ai); #else