summaryrefslogtreecommitdiff
path: root/vendor/github.com/jackc/pgx/v5/pgconn/errors.go
diff options
context:
space:
mode:
authorLibravatar dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>2024-01-15 14:02:02 +0100
committerLibravatar GitHub <noreply@github.com>2024-01-15 14:02:02 +0100
commit637a57f2deb099d4be8b369f817a886642df79a6 (patch)
tree149d45ef15407570f2bd8af6cb4d4f4f6f8c62b9 /vendor/github.com/jackc/pgx/v5/pgconn/errors.go
parent[chore]: Bump golang.org/x/net from 0.19.0 to 0.20.0 (#2533) (diff)
downloadgotosocial-637a57f2deb099d4be8b369f817a886642df79a6.tar.xz
[chore]: Bump github.com/jackc/pgx/v5 from 5.5.1 to 5.5.2 (#2532)
Bumps [github.com/jackc/pgx/v5](https://github.com/jackc/pgx) from 5.5.1 to 5.5.2. - [Changelog](https://github.com/jackc/pgx/blob/master/CHANGELOG.md) - [Commits](https://github.com/jackc/pgx/compare/v5.5.1...v5.5.2) --- updated-dependencies: - dependency-name: github.com/jackc/pgx/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/jackc/pgx/v5/pgconn/errors.go')
-rw-r--r--vendor/github.com/jackc/pgx/v5/pgconn/errors.go30
1 files changed, 18 insertions, 12 deletions
diff --git a/vendor/github.com/jackc/pgx/v5/pgconn/errors.go b/vendor/github.com/jackc/pgx/v5/pgconn/errors.go
index 3c54bbec0..c315739a9 100644
--- a/vendor/github.com/jackc/pgx/v5/pgconn/errors.go
+++ b/vendor/github.com/jackc/pgx/v5/pgconn/errors.go
@@ -57,22 +57,23 @@ func (pe *PgError) SQLState() string {
return pe.Code
}
-type connectError struct {
- config *Config
+// ConnectError is the error returned when a connection attempt fails.
+type ConnectError struct {
+ Config *Config // The configuration that was used in the connection attempt.
msg string
err error
}
-func (e *connectError) Error() string {
+func (e *ConnectError) Error() string {
sb := &strings.Builder{}
- fmt.Fprintf(sb, "failed to connect to `host=%s user=%s database=%s`: %s", e.config.Host, e.config.User, e.config.Database, e.msg)
+ fmt.Fprintf(sb, "failed to connect to `host=%s user=%s database=%s`: %s", e.Config.Host, e.Config.User, e.Config.Database, e.msg)
if e.err != nil {
fmt.Fprintf(sb, " (%s)", e.err.Error())
}
return sb.String()
}
-func (e *connectError) Unwrap() error {
+func (e *ConnectError) Unwrap() error {
return e.err
}
@@ -88,33 +89,38 @@ func (e *connLockError) Error() string {
return e.status
}
-type parseConfigError struct {
- connString string
+// ParseConfigError is the error returned when a connection string cannot be parsed.
+type ParseConfigError struct {
+ ConnString string // The connection string that could not be parsed.
msg string
err error
}
-func (e *parseConfigError) Error() string {
- connString := redactPW(e.connString)
+func (e *ParseConfigError) Error() string {
+ // Now that ParseConfigError is public and ConnString is available to the developer, perhaps it would be better only
+ // return a static string. That would ensure that the error message cannot leak a password. The ConnString field would
+ // allow access to the original string if desired and Unwrap would allow access to the underlying error.
+ connString := redactPW(e.ConnString)
if e.err == nil {
return fmt.Sprintf("cannot parse `%s`: %s", connString, e.msg)
}
return fmt.Sprintf("cannot parse `%s`: %s (%s)", connString, e.msg, e.err.Error())
}
-func (e *parseConfigError) Unwrap() error {
+func (e *ParseConfigError) Unwrap() error {
return e.err
}
func normalizeTimeoutError(ctx context.Context, err error) error {
- if err, ok := err.(net.Error); ok && err.Timeout() {
+ var netErr net.Error
+ if errors.As(err, &netErr) && netErr.Timeout() {
if ctx.Err() == context.Canceled {
// Since the timeout was caused by a context cancellation, the actual error is context.Canceled not the timeout error.
return context.Canceled
} else if ctx.Err() == context.DeadlineExceeded {
return &errTimeout{err: ctx.Err()}
} else {
- return &errTimeout{err: err}
+ return &errTimeout{err: netErr}
}
}
return err