diff --git a/sentinel.go b/sentinel.go index 1f906d66..4c75de90 100644 --- a/sentinel.go +++ b/sentinel.go @@ -306,8 +306,9 @@ func (c *sentinelFailover) Close() error { func (c *sentinelFailover) Pool() *pool.ConnPool { c.poolOnce.Do(func() { - c.opt.Dialer = c.dial - c.pool = newConnPool(c.opt) + opt := *c.opt + opt.Dialer = c.dial + c.pool = newConnPool(&opt) }) return c.pool } @@ -317,6 +318,9 @@ func (c *sentinelFailover) dial(ctx context.Context, network, addr string) (net. if err != nil { return nil, err } + if c.opt.Dialer != nil { + return c.opt.Dialer(ctx, network, addr) + } return net.DialTimeout("tcp", addr, c.opt.DialTimeout) }