{
char hostname[256];
struct hostent *dest;
+ char *h;
if (gethostname(hostname, sizeof(hostname)))
return NULL;
if (!dest)
return strdup(hostname);
+ h = strdup(dest->h_name);
+ dest = gethostbyaddr((char *)dest->h_addr_list[0],
+ sizeof(struct in_addr), AF_INET);
+ if (!dest)
+ return h;
+
+ silc_free(h);
return strdup(dest->h_name);
}
if (!dest)
return NULL;
- SILC_GET32_LSB(ip.s_addr, dest->h_addr_list[0]);
+ memcpy(&ip.s_addr, dest->h_addr_list[0], 4);
ips = inet_ntoa(ip);
return strdup(ips);