Thu Nov 28 17:17:11 CET 2002 Jochen Eisinger <c0ffee@penguin-breeder.org>
authorJochen Eisinger <coffee@silcnet.org>
Thu, 28 Nov 2002 21:01:47 +0000 (21:01 +0000)
committerJochen Eisinger <coffee@silcnet.org>
Thu, 28 Nov 2002 21:01:47 +0000 (21:01 +0000)
* Do reverse lookups for server when /connecting. Affected files
  irssi/silc.conf, irssi/src/core/servers.c, irssi/src/core/network.c,
  irssi/src/core/net-nonblock.*

apps/irssi/src/core/network.c

index f6d9682966353cc13ae65bda661ae9b886a714f0..d9b93ebb5f0c476b6d14f0c59083209ae69949cc 100644 (file)
@@ -469,18 +469,18 @@ int net_gethostbyaddr(IPADDR *ip, char **name)
        struct addrinfo req, *ai;
        int host_error;
        char hostname[NI_MAXHOST];
+       char ipname[MAX_IP_LEN];
 #else
        struct hostent *hp;
 #endif
-       char ipname[MAX_IP_LEN];
 
        g_return_val_if_fail(ip != NULL, -1);
        g_return_val_if_fail(name != NULL, -1);
 
-       net_ip2host(ip, ipname);
-
        *name = NULL;
 #ifdef HAVE_IPV6
+       net_ip2host(ip, ipname);
+
        memset(&req, 0, sizeof(struct addrinfo));
        req.ai_socktype = SOCK_STREAM;
        req.ai_flags = AI_CANONNAME;
@@ -500,7 +500,8 @@ int net_gethostbyaddr(IPADDR *ip, char **name)
 
        freeaddrinfo(ai);
 #else
-       hp = gethostbyaddr(ipname, strlen(ipname), AF_INET);
+       if (ip->family != AF_NET) return -1;
+       hp = gethostbyaddr(&ip->ip, 4, AF_INET);
        if (hp == NULL) return -1;
 
        *name = g_strdup(hp->h_name);