From 80d48621cdf484247f70ddd653fb4c47a640317a Mon Sep 17 00:00:00 2001 From: sdvcrx Date: Sun, 21 Jan 2024 00:04:47 +0800 Subject: [PATCH] Fix incorrect PostgreSQL connection string for Unix sockets (#28865) Fix #28864 --- 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 0b0488ce85..e200b15b2e 100644 --- a/modules/setting/database.go +++ b/modules/setting/database.go @@ -169,8 +169,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 14e0a6ac02..a742d54f8c 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",