summary refs log tree commit diff
diff options
context:
space:
mode:
authorAlexander Barton <alex@barton.de>2009-04-10 13:22:03 +0200
committerAlexander Barton <alex@barton.de>2009-04-10 13:22:03 +0200
commit54879b432b99bb22df905b8e22c3f83205ea8d60 (patch)
treef946fcdff553bd58045f67141088d51bde3cef15
parentd9355d53f8c9b6ed81e8df61f52cb8506b077d05 (diff)
downloadngircd-54879b432b99bb22df905b8e22c3f83205ea8d60.tar.gz
ngircd-54879b432b99bb22df905b8e22c3f83205ea8d60.zip
Display IPv6 addresses as "[<addr>]" when accepting connections.
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).
-rw-r--r--src/ngircd/conn.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/ngircd/conn.c b/src/ngircd/conn.c
index bd1a5bdd..5b525112 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)