From 8e33fc1784cbd657a7238ab5639ee1f8f54a3ec0 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 6 Jul 2015 16:36:48 +0300 Subject: [PATCH] Call getsockopt() on the correct socket. We're interested in the buffer size of the socket that's connected to the client, not the one that's listening for new connections. It happened to work, as default buffer size is the same on both, but it was clearly not wrong. Spotted by Tom Lane --- src/backend/libpq/pqcomm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index 9f92e4efae..b27ac95217 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -773,7 +773,7 @@ StreamConnection(pgsocket server_fd, Port *port) * https://msdn.microsoft.com/en-us/library/bb736549%28v=vs.85%29.aspx */ optlen = sizeof(oldopt); - if (getsockopt(server_fd, SOL_SOCKET, SO_SNDBUF, (char *) &oldopt, + if (getsockopt(port->sock, SOL_SOCKET, SO_SNDBUF, (char *) &oldopt, &optlen) < 0) { elog(LOG, "getsockopt(SO_SNDBUF) failed: %m");