]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Display IPv6 addresses as "[<addr>]" when accepting connections.
authorAlexander Barton <alex@barton.de>
Fri, 10 Apr 2009 11:22:03 +0000 (13:22 +0200)
committerAlexander Barton <alex@barton.de>
Fri, 10 Apr 2009 11:22:03 +0000 (13:22 +0200)
With this patch ngIRCd displays IPv6 addresses as "[<addr>]:<port>" when
accepting new connections and later, if no successful DNS lookup could
be made (or DNS is disabled altogether).

src/ngircd/conn.c

index bd1a5bddffbd00c14c02a45ec259c0a0af0dbfe6..5b5251127bde9a7464328e7f40dac4754b6787f6 100644 (file)
@@ -1261,14 +1261,21 @@ New_Connection( int Sock )
        My_Connections[new_sock].addr = new_addr;
        My_Connections[new_sock].client = c;
 
-       Log( LOG_INFO, "Accepted connection %d from %s:%d on socket %d.", new_sock,
-                       ip_str, ng_ipaddr_getport(&new_addr), Sock);
-
-       /* Hostnamen ermitteln */
-       strlcpy(My_Connections[new_sock].host, ip_str, sizeof(My_Connections[new_sock].host));
+       /* Set initial hostname to IP address. This becomes overwritten when
+        * the DNS lookup is enabled and succeeds, but is used otherwise. */
+       if (ng_ipaddr_af(&new_addr) != AF_INET)
+               snprintf(My_Connections[new_sock].host,
+                        sizeof(My_Connections[new_sock].host), "[%s]", ip_str);
+       else
+               strlcpy(My_Connections[new_sock].host, ip_str,
+                       sizeof(My_Connections[new_sock].host));
 
        Client_SetHostname(c, My_Connections[new_sock].host);
 
+       Log(LOG_INFO, "Accepted connection %d from %s:%d on socket %d.",
+           new_sock, My_Connections[new_sock].host,
+           ng_ipaddr_getport(&new_addr), Sock);
+
        identsock = new_sock;
 #ifdef IDENTAUTH
        if (Conf_NoIdent)