repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 54879b432b99bb22df905b8e22c3f83205ea8d60:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 54879b432b99bb22df905b8e22c3f83205ea8d60
Author: Alexander Barton 
Date:   Fri Apr 10 13:22:03 2009 +0200

    Display IPv6 addresses as "[]" when accepting connections.

    With this patch ngIRCd displays IPv6 addresses as "[]:" when
    accepting new connections and later, if no successful DNS lookup could
    be made (or DNS is disabled altogether).

diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index bd1a5bddffbd00c14c02a45ec259c0a0af0dbfe6..
index ..5b5251127bde9a7464328e7f40dac4754b6787f6 100644
--- a/src/ngircd/conn.c
+++ b/src/ngircd/conn.c
@@ -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)

-----END OF PAGE-----