diff --git a/sentinel.go b/sentinel.go index fdbbf7b6..ca2e088a 100644 --- a/sentinel.go +++ b/sentinel.go @@ -219,14 +219,21 @@ func masterSlaveDialer( failover.trySwitchMaster(ctx, addr) } } - if err != nil { return nil, err } if failover.opt.Dialer != nil { return failover.opt.Dialer(ctx, network, addr) } - return net.DialTimeout("tcp", addr, failover.opt.DialTimeout) + + netDialer := &net.Dialer{ + Timeout: failover.opt.DialTimeout, + KeepAlive: 5 * time.Minute, + } + if failover.opt.TLSConfig == nil { + return netDialer.DialContext(ctx, network, addr) + } + return tls.DialWithDialer(netDialer, network, addr, failover.opt.TLSConfig) } }