Skip to content

Commit

Permalink
Use PathEscape
Browse files Browse the repository at this point in the history
  • Loading branch information
methane committed May 19, 2023
1 parent ed7d68d commit eec4e66
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 deletions.
9 changes: 4 additions & 5 deletions dsn.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,8 +202,7 @@ func (cfg *Config) FormatDSN() string {

// /dbname
buf.WriteByte('/')
dbNameEncoded := url.QueryEscape(cfg.DBName)
buf.WriteString(dbNameEncoded)
buf.WriteString(url.PathEscape(cfg.DBName))

// [?param1=value1&...&paramN=valueN]
hasParam := false
Expand Down Expand Up @@ -366,9 +365,9 @@ func ParseDSN(dsn string) (cfg *Config, err error) {
}
}

dbName := dsn[i+1 : j]
if cfg.DBName, err = url.QueryUnescape(dbName); err != nil {
return nil, fmt.Errorf("invalid dbname '%s': %w", dbName, err)
dbname := dsn[i+1 : j]
if cfg.DBName, err = url.PathUnescape(dbname); err != nil {
return nil, fmt.Errorf("invalid dbname %q: %w", dbname, err)
}

break
Expand Down
2 changes: 1 addition & 1 deletion dsn_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ var testDSNs = []struct {
&Config{Net: "tcp", Addr: "127.0.0.1:3306", DBName: "dbname", Collation: "utf8mb4_general_ci", Loc: time.UTC, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true},
}, {
"/dbname%2Fwithslash",
&Config{Net: "tcp", Addr: "127.0.0.1:3306", DBName: "dbname/withslash", Collation: "utf8mb4_general_ci", Loc: time.UTC, MaxAllowedPacket: defaultMaxAllowedPacket, AllowNativePasswords: true, CheckConnLiveness: true},
&Config{Net: "tcp", Addr: "127.0.0.1:3306", DBName: "dbname/withslash", Collation: "utf8mb4_general_ci", Loc: time.UTC, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true},
}, {
"@/",
&Config{Net: "tcp", Addr: "127.0.0.1:3306", Collation: "utf8mb4_general_ci", Loc: time.UTC, MaxAllowedPacket: defaultMaxAllowedPacket, Logger: defaultLogger, AllowNativePasswords: true, CheckConnLiveness: true},
Expand Down

0 comments on commit eec4e66

Please sign in to comment.