From f1cb756c38982a3b4690b6860da77e3473215c50 Mon Sep 17 00:00:00 2001
From: Tatsuo Ishii <ishii@postgresql.org>
Date: Sat, 20 May 2000 13:10:54 +0000
Subject: [PATCH] Add KEEPALIVE option to the socket of backend. This will
 automatically terminate the backend that has no frontend anymore.

---
 src/backend/libpq/pqcomm.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index b761d34f415..7d2f7eb7d68 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -29,7 +29,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *	$Id: pqcomm.c,v 1.89 2000/04/14 00:51:58 tgl Exp $
+ *	$Id: pqcomm.c,v 1.90 2000/05/20 13:10:54 ishii Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -375,7 +375,13 @@ StreamConnection(int server_fd, Port *port)
 		if (setsockopt(port->sock, pe->p_proto, TCP_NODELAY,
 					   &on, sizeof(on)) < 0)
 		{
-			perror("postmaster: StreamConnection: setsockopt");
+			perror("postmaster: StreamConnection: setsockopt(TCP_NODELAY)");
+			return STATUS_ERROR;
+		}
+		if (setsockopt(port->sock, SOL_SOCKET, SO_KEEPALIVE,
+					   &on, sizeof(on)) < 0)
+		{
+			perror("postmaster: StreamConnection: setsockopt(SO_KEEPALIVE)");
 			return STATUS_ERROR;
 		}
 	}
-- 
GitLab