diff options
Diffstat (limited to 'internal/clients')
| -rw-r--r-- | internal/clients/baseclient.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/internal/clients/baseclient.go b/internal/clients/baseclient.go index 4a7bd84..3cd85fe 100644 --- a/internal/clients/baseclient.go +++ b/internal/clients/baseclient.go @@ -56,7 +56,7 @@ func (c *baseClient) init() { } c.sshAuthMethods, c.hostKeyCallback = client.InitSSHAuthMethods( c.Args.SSHAuthMethods, c.Args.SSHHostKeyCallback, c.Args.TrustAllHosts, - c.throttleCh, c.Args.PrivateKeyPathFile) + c.throttleCh, c.Args.SSHPrivateKeyPathFile) } func (c *baseClient) makeConnections(maker maker) { @@ -112,10 +112,19 @@ func (c *baseClient) startConnection(ctx context.Context, i int, // Retrieve status code from handler (dtail client will exit with that status) status = conn.Handler().Status() + // Do we want to retry? if !c.retry { + // No, we don't. return } + select { + case <-ctx.Done(): + // No, context is done, so no retry. + return + default: + } + // Yes, we want to retry. time.Sleep(time.Second * 2) dlog.Client.Debug(conn.Server(), "Reconnecting") conn = c.makeConnection(conn.Server(), c.sshAuthMethods, c.hostKeyCallback) |
