2
0

Use golang.org/x/xerrors

This commit is contained in:
Jack Christensen
2019-04-20 12:57:52 -05:00
parent 39e6ff5766
commit cd629965e6
5 changed files with 18 additions and 16 deletions
+3 -3
View File
@@ -17,13 +17,13 @@ import (
"crypto/rand"
"crypto/sha256"
"encoding/base64"
"errors"
"fmt"
"strconv"
"github.com/jackc/pgproto3/v2"
"golang.org/x/crypto/pbkdf2"
"golang.org/x/text/secure/precis"
errors "golang.org/x/xerrors"
)
const clientNonceLen = 18
@@ -181,12 +181,12 @@ func (sc *scramClient) recvServerFirstMessage(serverFirstMessage []byte) error {
var err error
sc.salt, err = base64.StdEncoding.DecodeString(string(saltStr))
if err != nil {
return fmt.Errorf("invalid SCRAM salt received from server: %v", err)
return errors.Errorf("invalid SCRAM salt received from server: %w", err)
}
sc.iterations, err = strconv.Atoi(string(iterationsStr))
if err != nil || sc.iterations <= 0 {
return fmt.Errorf("invalid SCRAM iteration count received from server: %s", iterationsStr)
return errors.Errorf("invalid SCRAM iteration count received from server: %w", err)
}
if !bytes.HasPrefix(sc.clientAndServerNonce, sc.clientNonce) {
+7 -7
View File
@@ -18,7 +18,7 @@ import (
"time"
"github.com/jackc/pgpassfile"
"github.com/pkg/errors"
errors "golang.org/x/xerrors"
)
type AfterConnectFunc func(ctx context.Context, pgconn *PgConn) error
@@ -195,7 +195,7 @@ func ParseConfig(connString string) (*Config, error) {
port, err := parsePort(portStr)
if err != nil {
return nil, fmt.Errorf("invalid port: %v", settings["port"])
return nil, errors.Errorf("invalid port: %w", err)
}
var tlsConfigs []*tls.Config
@@ -240,7 +240,7 @@ func ParseConfig(connString string) (*Config, error) {
if settings["target_session_attrs"] == "read-write" {
config.AfterConnectFunc = AfterConnectTargetSessionAttrsReadWrite
} else if settings["target_session_attrs"] != "any" {
return nil, fmt.Errorf("unknown target_session_attrs value %v", settings["target_session_attrs"])
return nil, errors.Errorf("unknown target_session_attrs value: %v", settings["target_session_attrs"])
}
return config, nil
@@ -409,11 +409,11 @@ func configTLS(settings map[string]string) ([]*tls.Config, error) {
caPath := sslrootcert
caCert, err := ioutil.ReadFile(caPath)
if err != nil {
return nil, errors.Wrapf(err, "unable to read CA file %q", caPath)
return nil, errors.Errorf("unable to read CA file: %w", err)
}
if !caCertPool.AppendCertsFromPEM(caCert) {
return nil, errors.Wrap(err, "unable to add CA to cert pool")
return nil, errors.Errorf("unable to add CA to cert pool: %w", err)
}
tlsConfig.RootCAs = caCertPool
@@ -421,13 +421,13 @@ func configTLS(settings map[string]string) ([]*tls.Config, error) {
}
if (sslcert != "" && sslkey == "") || (sslcert == "" && sslkey != "") {
return nil, fmt.Errorf(`both "sslcert" and "sslkey" are required`)
return nil, errors.New(`both "sslcert" and "sslkey" are required`)
}
if sslcert != "" && sslkey != "" {
cert, err := tls.LoadX509KeyPair(sslcert, sslkey)
if err != nil {
return nil, errors.Wrap(err, "unable to read cert")
return nil, errors.Errorf("unable to read cert: %w", err)
}
tlsConfig.Certificates = []tls.Certificate{cert}
+2 -1
View File
@@ -5,10 +5,11 @@ go 1.12
require (
github.com/jackc/pgio v1.0.0
github.com/jackc/pgpassfile v1.0.0
github.com/jackc/pgproto3 v1.1.0
github.com/jackc/pgproto3 v1.1.0 // indirect
github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190419041544-9b6a681f50bf
github.com/pkg/errors v0.8.1
github.com/stretchr/testify v1.3.0
golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a
golang.org/x/text v0.3.0
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373
)
+2
View File
@@ -22,3 +22,5 @@ golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaE
golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373 h1:PPwnA7z1Pjf7XYaBP9GL1VAMZmcIWyFz7QCMSIIa3Bg=
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
+4 -5
View File
@@ -7,8 +7,6 @@ import (
"crypto/tls"
"encoding/binary"
"encoding/hex"
"errors"
"fmt"
"io"
"math"
"net"
@@ -18,6 +16,7 @@ import (
"github.com/jackc/pgio"
"github.com/jackc/pgproto3/v2"
errors "golang.org/x/xerrors"
)
const (
@@ -232,7 +231,7 @@ func connect(ctx context.Context, config *Config, fallbackConfig *FallbackConfig
err := config.AfterConnectFunc(ctx, pgConn)
if err != nil {
pgConn.conn.Close()
return nil, fmt.Errorf("AfterConnectFunc: %v", err)
return nil, errors.Errorf("AfterConnectFunc: %v", err)
}
}
return pgConn, nil
@@ -601,7 +600,7 @@ func (pgConn *PgConn) CancelRequest(ctx context.Context) error {
_, err = cancelConn.Read(buf)
if err != io.EOF {
return fmt.Errorf("Server failed to close connection after cancel query request: %v", preferContextOverNetTimeoutError(ctx, err))
return errors.Errorf("Server failed to close connection after cancel query request: %w", preferContextOverNetTimeoutError(ctx, err))
}
return nil
@@ -757,7 +756,7 @@ func (pgConn *PgConn) execExtendedPrefix(ctx context.Context, paramValues [][]by
result := &pgConn.resultReader
if len(paramValues) > math.MaxUint16 {
result.concludeCommand(nil, fmt.Errorf("extended protocol limited to %v parameters", math.MaxUint16))
result.concludeCommand(nil, errors.Errorf("extended protocol limited to %v parameters", math.MaxUint16))
result.closed = true
pgConn.unlock()
return result