Remove IS_AF_UNIX macro?

Started by Peter Eisentrautalmost 4 years ago1 messages
#1Peter Eisentraut
peter.eisentraut@enterprisedb.com
1 attachment(s)

I noticed that in pgstatfuncs.c, the AF_UNIX macro is being used
unprotected by HAVE_UNIX_SOCKETS, apparently since 2008. So I think the
redirection through IS_AF_UNIX() is no longer necessary. (More
generally, all supported platforms are now HAVE_UNIX_SOCKETS, but even
if there were a new platform in the future, it seems plausible that it
would define the AF_UNIX symbol even without kernel support.) So maybe
we should remove the IS_AF_UNIX() macro and make the code a bit more
consistent?

Attachments:

0001-Remove-IS_AF_UNIX-macro.patchtext/plain; charset=UTF-8; name=0001-Remove-IS_AF_UNIX-macro.patchDownload
From 388be5ebd137fc409878ac74061526e6dfcecf57 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Mon, 7 Feb 2022 08:37:00 +0100
Subject: [PATCH] Remove IS_AF_UNIX macro

---
 src/backend/libpq/hba.c             |  4 ++--
 src/backend/libpq/pqcomm.c          | 24 ++++++++++++------------
 src/backend/postmaster/postmaster.c |  4 ++--
 src/include/common/ip.h             |  6 ------
 src/interfaces/libpq/fe-connect.c   | 14 +++++++-------
 5 files changed, 23 insertions(+), 29 deletions(-)

diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index a7f3def184..d84a40b726 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -2138,12 +2138,12 @@ check_hba(hbaPort *port)
 		/* Check connection type */
 		if (hba->conntype == ctLocal)
 		{
-			if (!IS_AF_UNIX(port->raddr.addr.ss_family))
+			if (port->raddr.addr.ss_family != AF_UNIX)
 				continue;
 		}
 		else
 		{
-			if (IS_AF_UNIX(port->raddr.addr.ss_family))
+			if (port->raddr.addr.ss_family == AF_UNIX)
 				continue;
 
 			/* Check SSL state */
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index f05723dc92..b96c2811a4 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -408,7 +408,7 @@ StreamServerPort(int family, const char *hostName, unsigned short portNumber,
 
 	for (addr = addrs; addr; addr = addr->ai_next)
 	{
-		if (!IS_AF_UNIX(family) && IS_AF_UNIX(addr->ai_family))
+		if (family != AF_UNIX && addr->ai_family == AF_UNIX)
 		{
 			/*
 			 * Only set up a unix domain socket when they really asked for it.
@@ -493,7 +493,7 @@ StreamServerPort(int family, const char *hostName, unsigned short portNumber,
 		 * unpredictable behavior. With no flags at all, win32 behaves as Unix
 		 * with SO_REUSEADDR.
 		 */
-		if (!IS_AF_UNIX(addr->ai_family))
+		if (addr->ai_family != AF_UNIX)
 		{
 			if ((setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,
 							(char *) &one, sizeof(one))) == -1)
@@ -545,7 +545,7 @@ StreamServerPort(int family, const char *hostName, unsigned short portNumber,
 					 errmsg("could not bind %s address \"%s\": %m",
 							familyDesc, addrDesc),
 					 saved_errno == EADDRINUSE ?
-					 (IS_AF_UNIX(addr->ai_family) ?
+					 (addr->ai_family == AF_UNIX ?
 					  errhint("Is another postmaster already running on port %d?",
 							  (int) portNumber) :
 					  errhint("Is another postmaster already running on port %d?"
@@ -763,7 +763,7 @@ StreamConnection(pgsocket server_fd, Port *port)
 	}
 
 	/* select NODELAY and KEEPALIVE options if it's a TCP connection */
-	if (!IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port->laddr.addr.ss_family != AF_UNIX)
 	{
 		int			on;
 #ifdef WIN32
@@ -1638,7 +1638,7 @@ int
 pq_getkeepalivesidle(Port *port)
 {
 #if defined(PG_TCP_KEEPALIVE_IDLE) || defined(SIO_KEEPALIVE_VALS)
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return 0;
 
 	if (port->keepalives_idle != 0)
@@ -1672,7 +1672,7 @@ pq_getkeepalivesidle(Port *port)
 int
 pq_setkeepalivesidle(int idle, Port *port)
 {
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return STATUS_OK;
 
 /* check SIO_KEEPALIVE_VALS here, not just WIN32, as some toolchains lack it */
@@ -1723,7 +1723,7 @@ int
 pq_getkeepalivesinterval(Port *port)
 {
 #if defined(TCP_KEEPINTVL) || defined(SIO_KEEPALIVE_VALS)
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return 0;
 
 	if (port->keepalives_interval != 0)
@@ -1757,7 +1757,7 @@ pq_getkeepalivesinterval(Port *port)
 int
 pq_setkeepalivesinterval(int interval, Port *port)
 {
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return STATUS_OK;
 
 #if defined(TCP_KEEPINTVL) || defined(SIO_KEEPALIVE_VALS)
@@ -1807,7 +1807,7 @@ int
 pq_getkeepalivescount(Port *port)
 {
 #ifdef TCP_KEEPCNT
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return 0;
 
 	if (port->keepalives_count != 0)
@@ -1836,7 +1836,7 @@ pq_getkeepalivescount(Port *port)
 int
 pq_setkeepalivescount(int count, Port *port)
 {
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return STATUS_OK;
 
 #ifdef TCP_KEEPCNT
@@ -1882,7 +1882,7 @@ int
 pq_gettcpusertimeout(Port *port)
 {
 #ifdef TCP_USER_TIMEOUT
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return 0;
 
 	if (port->tcp_user_timeout != 0)
@@ -1911,7 +1911,7 @@ pq_gettcpusertimeout(Port *port)
 int
 pq_settcpusertimeout(int timeout, Port *port)
 {
-	if (port == NULL || IS_AF_UNIX(port->laddr.addr.ss_family))
+	if (port == NULL || port->laddr.addr.ss_family == AF_UNIX)
 		return STATUS_OK;
 
 #ifdef TCP_USER_TIMEOUT
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index ac0ec0986a..9478e28257 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2085,7 +2085,7 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done)
 
 #ifdef USE_SSL
 		/* No SSL when disabled or on Unix sockets */
-		if (!LoadedSSL || IS_AF_UNIX(port->laddr.addr.ss_family))
+		if (!LoadedSSL || port->laddr.addr.ss_family == AF_UNIX)
 			SSLok = 'N';
 		else
 			SSLok = 'S';		/* Support for SSL */
@@ -2134,7 +2134,7 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done)
 
 #ifdef ENABLE_GSS
 		/* No GSSAPI encryption when on Unix socket */
-		if (!IS_AF_UNIX(port->laddr.addr.ss_family))
+		if (port->laddr.addr.ss_family != AF_UNIX)
 			GSSok = 'G';
 #endif
 
diff --git a/src/include/common/ip.h b/src/include/common/ip.h
index 85c8857435..8414520989 100644
--- a/src/include/common/ip.h
+++ b/src/include/common/ip.h
@@ -18,12 +18,6 @@
 #include "libpq/pqcomm.h"		/* pgrminclude ignore */
 
 
-#ifdef	HAVE_UNIX_SOCKETS
-#define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
-#else
-#define IS_AF_UNIX(fam) (0)
-#endif
-
 extern int	pg_getaddrinfo_all(const char *hostname, const char *servname,
 							   const struct addrinfo *hintp,
 							   struct addrinfo **result);
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index a6a1db3356..30d6b7b377 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -1694,7 +1694,7 @@ static void
 emitHostIdentityInfo(PGconn *conn, const char *host_addr)
 {
 #ifdef HAVE_UNIX_SOCKETS
-	if (IS_AF_UNIX(conn->raddr.addr.ss_family))
+	if (conn->raddr.addr.ss_family == AF_UNIX)
 	{
 		char		service[NI_MAXHOST];
 
@@ -1758,7 +1758,7 @@ connectFailureMessage(PGconn *conn, int errorno)
 					  SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)));
 
 #ifdef HAVE_UNIX_SOCKETS
-	if (IS_AF_UNIX(conn->raddr.addr.ss_family))
+	if (conn->raddr.addr.ss_family == AF_UNIX)
 		appendPQExpBufferStr(&conn->errorMessage,
 							 libpq_gettext("\tIs the server running locally and accepting connections on that socket?\n"));
 	else
@@ -2590,7 +2590,7 @@ PQconnectPoll(PGconn *conn)
 					 * TCP sockets, nonblock mode, close-on-exec.  Try the
 					 * next address if any of this fails.
 					 */
-					if (!IS_AF_UNIX(addr_cur->ai_family))
+					if (addr_cur->ai_family != AF_UNIX)
 					{
 						if (!connectNoDelay(conn))
 						{
@@ -2619,7 +2619,7 @@ PQconnectPoll(PGconn *conn)
 					}
 #endif							/* F_SETFD */
 
-					if (!IS_AF_UNIX(addr_cur->ai_family))
+					if (addr_cur->ai_family != AF_UNIX)
 					{
 #ifndef WIN32
 						int			on = 1;
@@ -2821,7 +2821,7 @@ PQconnectPoll(PGconn *conn)
 				 * Unix-domain socket.
 				 */
 				if (conn->requirepeer && conn->requirepeer[0] &&
-					IS_AF_UNIX(conn->raddr.addr.ss_family))
+					conn->raddr.addr.ss_family == AF_UNIX)
 				{
 #ifndef WIN32
 					char	   *remote_username;
@@ -2867,7 +2867,7 @@ PQconnectPoll(PGconn *conn)
 #endif							/* WIN32 */
 				}
 
-				if (IS_AF_UNIX(conn->raddr.addr.ss_family))
+				if (conn->raddr.addr.ss_family == AF_UNIX)
 				{
 					/* Don't request SSL or GSSAPI over Unix sockets */
 #ifdef USE_SSL
@@ -4528,7 +4528,7 @@ PQcancel(PGcancel *cancel, char *errbuf, int errbufsize)
 	 * This ensures that this function does not block indefinitely when
 	 * reasonable keepalive and timeout settings have been provided.
 	 */
-	if (!IS_AF_UNIX(cancel->raddr.addr.ss_family) &&
+	if (cancel->raddr.addr.ss_family != AF_UNIX &&
 		cancel->keepalives != 0)
 	{
 #ifndef WIN32
-- 
2.35.1