From 92345910718baa4217def15e886bba10b55ed905 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 12 Aug 2003 22:42:01 +0000 Subject: [PATCH] Include 'IPv4', 'IPv6', or 'Unix' in socket-creation failure messages, in hopes of soothing fears of those with partial IPv6 support. Still an open question whether we should report EAFNOSUPPORT errors at all, though. --- src/backend/libpq/pqcomm.c | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 72d444ad8f..6d4a4ea017 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -30,7 +30,7 @@ * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.164 2003/08/07 19:37:13 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.165 2003/08/12 22:42:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -209,7 +209,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber, int maxconn; int one = 1; int ret; - char portNumberStr[64]; + char portNumberStr[32]; + const char *familyDesc; + char familyDescBuf[64]; char *service; struct addrinfo *addrs = NULL, *addr; @@ -276,11 +278,37 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber, break; } + /* set up family name for possible error messages */ + switch (addr->ai_family) + { + case AF_INET: + familyDesc = gettext("IPv4"); + break; +#ifdef HAVE_IPV6 + case AF_INET6: + familyDesc = gettext("IPv6"); + break; +#endif +#ifdef HAVE_UNIX_SOCKETS + case AF_UNIX: + familyDesc = gettext("Unix"); + break; +#endif + default: + snprintf(familyDescBuf, sizeof(familyDescBuf), + gettext("unrecognized address family %d"), + addr->ai_family); + familyDesc = familyDescBuf; + break; + } + if ((fd = socket(addr->ai_family, SOCK_STREAM, 0)) < 0) { ereport(LOG, (errcode_for_socket_access(), - errmsg("failed to create socket: %m"))); + /* translator: %s is IPv4, IPv6, or Unix */ + errmsg("could not create %s socket: %m", + familyDesc))); continue; } @@ -323,7 +351,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber, { ereport(LOG, (errcode_for_socket_access(), - errmsg("failed to bind server socket: %m"), + /* translator: %s is IPv4, IPv6, or Unix */ + errmsg("could not bind %s socket: %m", + familyDesc), (IS_AF_UNIX(addr->ai_family)) ? errhint("Is another postmaster already running on port %d?" " If not, remove socket node \"%s\" and retry.", @@ -361,7 +391,9 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber, { ereport(LOG, (errcode_for_socket_access(), - errmsg("failed to listen on server socket: %m"))); + /* translator: %s is IPv4, IPv6, or Unix */ + errmsg("could not listen on %s socket: %m", + familyDesc))); closesocket(fd); continue; } -- 2.11.0