Fixed silc_net_gethostbyaddr.
[silc.git] / lib / silcutil / silcnet.c
index 07207030c044be91c64b6a814bc604bc1b681080..c25637c08021c4966430656984ec6ece6ea6406f 100644 (file)
@@ -246,8 +246,12 @@ bool silc_net_gethostbyaddr(const char *addr, char *name, SilcUInt32 name_len)
   freeaddrinfo(ai);
 #else
   struct hostent *hp;
+  unsigned char a[16];
 
-  hp = gethostbyaddr(addr, strlen(addr), AF_INET);
+  if (!silc_net_addr2bin(addr, a, sizeof(a)))
+    return FALSE;
+
+  hp = gethostbyaddr(a, 4, AF_INET);
   if (!hp)
     return FALSE;
   if (name_len < strlen(hp->h_name))
@@ -309,6 +313,7 @@ bool silc_net_check_host_by_sock(int sock, char **hostname, char **ip)
     return FALSE;
 #else
   struct sockaddr_in remote;
+  char *host_ip;
 
   *hostname = NULL;
   *ip = NULL;
@@ -381,6 +386,7 @@ bool silc_net_check_local_by_sock(int sock, char **hostname, char **ip)
     return FALSE;
 #else
   struct sockaddr_in local;
+  char *host_ip;
 
   *hostname = NULL;
   *ip = NULL;