From 8c7bda8755cc5fd1b12c5516fb60b7f63af4aecf Mon Sep 17 00:00:00 2001 From: Giteabot Date: Mon, 22 Jan 2024 00:06:34 +0800 Subject: [PATCH] Fix incorrect PostgreSQL connection string for Unix sockets (#28865) (#28870) Backport #28865 by @sdvcrx Fix #28864 Co-authored-by: sdvcrx --- modules/setting/database.go | 4 ++-- modules/setting/database_test.go | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/setting/database.go b/modules/setting/database.go index 015c918d9..23747c9d5 100644 --- a/modules/setting/database.go +++ b/modules/setting/database.go @@ -168,8 +168,8 @@ func getPostgreSQLConnectionString(dbHost, dbUser, dbPasswd, dbName, dbsslMode s RawQuery: dbParam, } query := connURL.Query() - if strings.HasPrefix(dbHost, "/") { // looks like a unix socket - query.Add("host", dbHost) + if strings.HasPrefix(host, "/") { // looks like a unix socket + query.Add("host", host) connURL.Host = ":" + port } query.Set("sslmode", dbsslMode) diff --git a/modules/setting/database_test.go b/modules/setting/database_test.go index 14e0a6ac0..a742d54f8 100644 --- a/modules/setting/database_test.go +++ b/modules/setting/database_test.go @@ -77,6 +77,14 @@ func Test_getPostgreSQLConnectionString(t *testing.T) { SSLMode: "false", Output: "postgres://testuser:space%20space%20%21%23$%25%5E%5E%25%5E%60%60%60-=%3F=@:5432/gitea?host=%2Ftmp%2Fpg.sock&sslmode=false", }, + { + Host: "/tmp/pg.sock:6432", + User: "testuser", + Passwd: "pass", + Name: "gitea", + SSLMode: "false", + Output: "postgres://testuser:pass@:6432/gitea?host=%2Ftmp%2Fpg.sock&sslmode=false", + }, { Host: "localhost", User: "pgsqlusername",