From df3d45aaf878957487ebbc5e46ba7385e7d8b131 Mon Sep 17 00:00:00 2001 From: Johnson Xu Date: Mon, 27 Sep 2021 11:21:30 -0400 Subject: [PATCH 1/2] remove unused addr --- tunnel/conn.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tunnel/conn.go b/tunnel/conn.go index cc60e58..b6d1374 100644 --- a/tunnel/conn.go +++ b/tunnel/conn.go @@ -47,7 +47,7 @@ func (tc *Conn) SetReadDeadline(t time.Time) error { return nil } func (tc *Conn) SetWriteDeadline(t time.Time) error { return nil } // ServerConn (re-)tries and returns a tunnel connection. -func ServerConn(ctx context.Context, ts *Server, addr string, target *Target) (*Conn, error) { +func ServerConn(ctx context.Context, ts *Server, target *Target) (*Conn, error) { bo := backoff.NewExponentialBackOff() bo.MaxElapsedTime = 0 // Retry Subscribe indefinitely. bo.InitialInterval = RetryBaseDelay From 6dc044debb6ba08011293d7bbcabd23b9f82c5b8 Mon Sep 17 00:00:00 2001 From: Johnson Xu Date: Mon, 27 Sep 2021 14:31:02 -0400 Subject: [PATCH 2/2] remove unncessary retry --- tunnel/conn.go | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/tunnel/conn.go b/tunnel/conn.go index b6d1374..8d36c33 100644 --- a/tunnel/conn.go +++ b/tunnel/conn.go @@ -46,31 +46,13 @@ func (tc *Conn) SetReadDeadline(t time.Time) error { return nil } // SetWriteDeadline is trivial implementation, in order to match interface net.Conn. func (tc *Conn) SetWriteDeadline(t time.Time) error { return nil } -// ServerConn (re-)tries and returns a tunnel connection. +// ServerConn returns a tunnel connection. func ServerConn(ctx context.Context, ts *Server, target *Target) (*Conn, error) { - bo := backoff.NewExponentialBackOff() - bo.MaxElapsedTime = 0 // Retry Subscribe indefinitely. - bo.InitialInterval = RetryBaseDelay - bo.MaxInterval = RetryMaxDelay - bo.RandomizationFactor = RetryRandomization - - for { - session, err := ts.NewSession(ctx, ServerSession{Target: *target}) - if err == nil { - return &Conn{session}, nil - } - duration := bo.NextBackOff() - log.Printf("Failed to get tunnel connection: %v.\nRetrying in %s.", err, duration) - time.Sleep(duration) - - select { - case <-ctx.Done(): - return nil, ctx.Err() - default: - } - + session, err := ts.NewSession(ctx, ServerSession{Target: *target}) + if err == nil { + return &Conn{session}, nil } - + return nil, err } func registerTunnelClient(ctx context.Context, addr string, cert string, l *Listener,