Skip to content
Snippets Groups Projects
Commit 073a2083 authored by ale's avatar ale
Browse files

Update go-common dependency

parent 973a591b
No related branches found
No related tags found
No related merge requests found
......@@ -7,11 +7,30 @@ import (
"net/url"
"time"
"git.autistici.org/ai3/go-common/clientutil"
"github.com/cenkalti/backoff"
"gopkg.in/ldap.v2"
)
// Parameters that define the exponential backoff algorithm used.
var (
ExponentialBackOffInitialInterval = 100 * time.Millisecond
ExponentialBackOffMultiplier = 1.4142
)
// newExponentialBackOff creates a backoff.ExponentialBackOff object
// with our own default values.
func newExponentialBackOff() *backoff.ExponentialBackOff {
b := backoff.NewExponentialBackOff()
b.InitialInterval = ExponentialBackOffInitialInterval
b.Multiplier = ExponentialBackOffMultiplier
// Set MaxElapsedTime to 0 because we expect the overall
// timeout to be dictated by the request Context.
b.MaxElapsedTime = 0
return b
}
// ConnectionPool provides a goroutine-safe pool of long-lived LDAP
// connections that will reconnect on errors.
type ConnectionPool struct {
......@@ -129,14 +148,14 @@ func NewConnectionPool(uri, bindDN, bindPw string, cacheSize int) (*ConnectionPo
}
func (p *ConnectionPool) doRequest(ctx context.Context, fn func(*ldap.Conn) error) error {
return clientutil.Retry(func() error {
return backoff.Retry(func() error {
conn, err := p.Get(ctx)
if err != nil {
// Here conn is nil, so we don't need to Release it.
if isTemporaryLDAPError(err) {
return clientutil.TempError(err)
return err
}
return err
return backoff.Permanent(err)
}
if deadline, ok := ctx.Deadline(); ok {
......@@ -144,13 +163,12 @@ func (p *ConnectionPool) doRequest(ctx context.Context, fn func(*ldap.Conn) erro
}
err = fn(conn)
if err != nil && isTemporaryLDAPError(err) {
p.Release(conn, err)
return clientutil.TempError(err)
}
p.Release(conn, err)
if err != nil && !isTemporaryLDAPError(err) {
err = backoff.Permanent(err)
}
return err
}, backoff.WithContext(clientutil.NewExponentialBackOff(), ctx))
}, backoff.WithContext(newExponentialBackOff(), ctx))
}
// Search performs the given search request. It will retry the request
......
......@@ -5,44 +5,44 @@
{
"checksumSHA1": "raJx5BjBbVQG0ylGSjPpi+JvqjU=",
"path": "git.autistici.org/ai3/go-common",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "49MChcx9D+/+pCyl/F469TcQcK4=",
"path": "git.autistici.org/ai3/go-common/clientutil",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "udgeRdy83f6tJmhoKXFxCfwOIZw=",
"checksumSHA1": "kQbBWZqrXc95wodlrOKEshQVaBo=",
"path": "git.autistici.org/ai3/go-common/ldap",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "7VBLbwaK1m/jwsk8sLsh4iD9T/s=",
"path": "git.autistici.org/ai3/go-common/serverutil",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "T2vf4xzKRqoIjfXlofMgudKA8rA=",
"path": "git.autistici.org/ai3/go-common/unix",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "OY/kamdVCtqr00dhc+STq7ApbmA=",
"path": "git.autistici.org/ai3/go-common/userenckey",
"revision": "193e29e61c81e6bb5548bfe89bba05836d06b61f",
"revisionTime": "2018-08-16T21:47:58Z"
"revision": "39b1908a9e399db1a0ceebb0fe4f3d3c35298357",
"revisionTime": "2018-08-17T06:38:25Z"
},
{
"checksumSHA1": "QHzKyLU57jphYBzuhl4ELbCwVX0=",
"path": "git.autistici.org/id/go-sso",
"revision": "dc62a1d65832c8a3f73e7a0cffb78ad0b4d3d8fc",
"revisionTime": "2018-02-18T15:46:43Z"
"revision": "a7ddc7fb9c9053ad8c239e6e968a6f73bb181021",
"revisionTime": "2018-08-17T07:29:35Z"
},
{
"checksumSHA1": "spyv5/YFBjYyZLZa1U2LBfDR8PM=",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment