Fix incorrect PostgreSQL connection string for Unix sockets (#28865) (#28870)

Backport #28865 by @sdvcrx

Fix #28864

Co-authored-by: sdvcrx <memory.silentvoyage@gmail.com>
This commit is contained in:
Giteabot 2024-01-22 00:06:34 +08:00 committed by GitHub
parent b7e32b2382
commit 8c7bda8755
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 2 deletions

View file

@ -168,8 +168,8 @@ func getPostgreSQLConnectionString(dbHost, dbUser, dbPasswd, dbName, dbsslMode s
RawQuery: dbParam, RawQuery: dbParam,
} }
query := connURL.Query() query := connURL.Query()
if strings.HasPrefix(dbHost, "/") { // looks like a unix socket if strings.HasPrefix(host, "/") { // looks like a unix socket
query.Add("host", dbHost) query.Add("host", host)
connURL.Host = ":" + port connURL.Host = ":" + port
} }
query.Set("sslmode", dbsslMode) query.Set("sslmode", dbsslMode)

View file

@ -77,6 +77,14 @@ func Test_getPostgreSQLConnectionString(t *testing.T) {
SSLMode: "false", 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", 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", Host: "localhost",
User: "pgsqlusername", User: "pgsqlusername",