From 72ebde2cb4d291302d25fc470ddf3bb6492fe3d5 Mon Sep 17 00:00:00 2001
From: Don Seiler <don.seiler@breakthroughfuel.com>
Date: Wed, 20 Jun 2018 13:46:50 -0500
Subject: [PATCH 1/3] Add application_name to Port struct

---
 src/include/libpq/libpq-be.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h
index 7698cd1f88..088ef346a8 100644
--- a/src/include/libpq/libpq-be.h
+++ b/src/include/libpq/libpq-be.h
@@ -135,6 +135,7 @@ typedef struct Port
 	 */
 	char	   *database_name;
 	char	   *user_name;
+	char	   *application_name;
 	char	   *cmdline_options;
 	List	   *guc_options;
 
-- 
2.15.2 (Apple Git-101.1)


From 19b1f01fe06c7962fe209e1451461d92dcb37be1 Mon Sep 17 00:00:00 2001
From: Don Seiler <don.seiler@breakthroughfuel.com>
Date: Wed, 20 Jun 2018 13:47:37 -0500
Subject: [PATCH 2/3] Set port->application_name when processing startup packet

---
 src/backend/postmaster/postmaster.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index a4b53b33cd..8e75c80728 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -2094,6 +2094,10 @@ retry1:
 											pstrdup(nameptr));
 				port->guc_options = lappend(port->guc_options,
 											pstrdup(valptr));
+
+				/* Copy application_name to port as well */
+				if (strcmp(nameptr, "application_name") == 0)
+					port->application_name = pstrdup(valptr);
 			}
 			offset = valoffset + strlen(valptr) + 1;
 		}
-- 
2.15.2 (Apple Git-101.1)


From ff69a00e575393f47e31f37f356a381a9821752f Mon Sep 17 00:00:00 2001
From: Don Seiler <don.seiler@breakthroughfuel.com>
Date: Wed, 20 Jun 2018 13:48:01 -0500
Subject: [PATCH 3/3] Include port->application_name on connection authorized
 log message

---
 src/backend/utils/init/postinit.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 09e0df290d..86db7630d5 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -266,8 +266,8 @@ PerformAuthentication(Port *port)
 #ifdef USE_SSL
 			if (port->ssl_in_use)
 				ereport(LOG,
-						(errmsg("connection authorized: user=%s database=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)",
-								port->user_name, port->database_name,
+						(errmsg("connection authorized: user=%s database=%s application=%s SSL enabled (protocol=%s, cipher=%s, bits=%d, compression=%s)",
+								port->user_name, port->database_name, port->application_name
 								be_tls_get_version(port),
 								be_tls_get_cipher(port),
 								be_tls_get_cipher_bits(port),
@@ -275,8 +275,8 @@ PerformAuthentication(Port *port)
 			else
 #endif
 				ereport(LOG,
-						(errmsg("connection authorized: user=%s database=%s",
-								port->user_name, port->database_name)));
+						(errmsg("connection authorized: user=%s database=%s application=%s",
+								port->user_name, port->database_name, port->application_name)));
 		}
 	}
 
-- 
2.15.2 (Apple Git-101.1)

