mirror of https://github.com/jackc/pgx.git
don't print url when url.Parse returns an error
parent
3563a2b048
commit
f007d84675
|
@ -467,14 +467,17 @@ func parseEnvSettings() map[string]string {
|
||||||
func parseURLSettings(connString string) (map[string]string, error) {
|
func parseURLSettings(connString string) (map[string]string, error) {
|
||||||
settings := make(map[string]string)
|
settings := make(map[string]string)
|
||||||
|
|
||||||
url, err := url.Parse(connString)
|
parsedURL, err := url.Parse(connString)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
if urlErr := new(url.Error); errors.As(err, &urlErr) {
|
||||||
|
return nil, urlErr.Err
|
||||||
|
}
|
||||||
|
return nil, errors.New("failed to parse URL")
|
||||||
}
|
}
|
||||||
|
|
||||||
if url.User != nil {
|
if parsedURL.User != nil {
|
||||||
settings["user"] = url.User.Username()
|
settings["user"] = parsedURL.User.Username()
|
||||||
if password, present := url.User.Password(); present {
|
if password, present := parsedURL.User.Password(); present {
|
||||||
settings["password"] = password
|
settings["password"] = password
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -482,7 +485,7 @@ func parseURLSettings(connString string) (map[string]string, error) {
|
||||||
// Handle multiple host:port's in url.Host by splitting them into host,host,host and port,port,port.
|
// Handle multiple host:port's in url.Host by splitting them into host,host,host and port,port,port.
|
||||||
var hosts []string
|
var hosts []string
|
||||||
var ports []string
|
var ports []string
|
||||||
for _, host := range strings.Split(url.Host, ",") {
|
for _, host := range strings.Split(parsedURL.Host, ",") {
|
||||||
if host == "" {
|
if host == "" {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
@ -508,7 +511,7 @@ func parseURLSettings(connString string) (map[string]string, error) {
|
||||||
settings["port"] = strings.Join(ports, ",")
|
settings["port"] = strings.Join(ports, ",")
|
||||||
}
|
}
|
||||||
|
|
||||||
database := strings.TrimLeft(url.Path, "/")
|
database := strings.TrimLeft(parsedURL.Path, "/")
|
||||||
if database != "" {
|
if database != "" {
|
||||||
settings["database"] = database
|
settings["database"] = database
|
||||||
}
|
}
|
||||||
|
@ -517,7 +520,7 @@ func parseURLSettings(connString string) (map[string]string, error) {
|
||||||
"dbname": "database",
|
"dbname": "database",
|
||||||
}
|
}
|
||||||
|
|
||||||
for k, v := range url.Query() {
|
for k, v := range parsedURL.Query() {
|
||||||
if k2, present := nameMap[k]; present {
|
if k2, present := nameMap[k]; present {
|
||||||
k = k2
|
k = k2
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue