[MINOR] startup: print the proxy socket which caused an error

Add the address and port to the error message of the proxy socket that caused
the error. This can be helpful when several listening addresses are used in a
proxy.

Edit: since we now also support unix sockets (which already report their
      path), better move the address reporting to proto_tcp.c by analogy.
      -Willy
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index b2e4a8a..3757d56 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -559,8 +559,22 @@
 	fd_insert(fd);
 
  tcp_return:
-	if (msg && errlen)
-		strlcpy2(errmsg, msg, errlen);
+	if (msg && errlen) {
+		char pn[INET6_ADDRSTRLEN];
+
+		if (listener->addr.ss_family == AF_INET) {
+			inet_ntop(AF_INET,
+				  (const void *)&((struct sockaddr_in *)&listener->addr)->sin_addr,
+				  pn, sizeof(pn));
+			snprintf(errmsg, errlen, "%s [%s:%d]", msg, pn, ntohs(((struct sockaddr_in *)&listener->addr)->sin_port));
+		}
+		else {
+			inet_ntop(AF_INET6,
+				  (const void *)&((struct sockaddr_in6 *)(&listener->addr))->sin6_addr,
+				  pn, sizeof(pn));
+			snprintf(errmsg, errlen, "%s [%s:%d]", msg, pn, ntohs(((struct sockaddr_in6 *)&listener->addr)->sin6_port));
+		}
+	}
 	return err;
 
  tcp_close_return: