discoverSentinels read the addr field incorrectly

Signed-off-by: monkey <golang@88.com>
This commit is contained in:
monkey 2021-03-12 23:20:58 +08:00
parent 573638ff0c
commit c25daee5e6
1 changed files with 14 additions and 7 deletions

View File

@ -666,10 +666,18 @@ func (c *sentinelFailover) discoverSentinels(ctx context.Context) {
} }
for _, sentinel := range sentinels { for _, sentinel := range sentinels {
vals := sentinel.([]interface{}) vals := sentinel.([]interface{})
var ip, port string
for i := 0; i < len(vals); i += 2 { for i := 0; i < len(vals); i += 2 {
key := vals[i].(string) key := vals[i].(string)
if key == "name" { switch key {
sentinelAddr := vals[i+1].(string) case "ip":
ip = vals[i+1].(string)
case "port":
port = vals[i+1].(string)
}
}
if ip != "" && port != "" {
sentinelAddr := net.JoinHostPort(ip, port)
if !contains(c.sentinelAddrs, sentinelAddr) { if !contains(c.sentinelAddrs, sentinelAddr) {
internal.Logger.Printf(ctx, "sentinel: discovered new sentinel=%q for master=%q", internal.Logger.Printf(ctx, "sentinel: discovered new sentinel=%q for master=%q",
sentinelAddr, c.opt.MasterName) sentinelAddr, c.opt.MasterName)
@ -678,7 +686,6 @@ func (c *sentinelFailover) discoverSentinels(ctx context.Context) {
} }
} }
} }
}
func (c *sentinelFailover) listen(pubsub *PubSub) { func (c *sentinelFailover) listen(pubsub *PubSub) {
ctx := context.TODO() ctx := context.TODO()