File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -411,7 +411,7 @@ func newClusterState(
411
411
var nodes []* clusterNode
412
412
for i , slotNode := range slot .Nodes {
413
413
addr := slotNode .Addr
414
- if ! isLoopbackOrigin && isLoopbackAddr ( addr ) {
414
+ if ! isLoopbackOrigin && useOriginAddr ( origin , addr ) {
415
415
addr = origin
416
416
}
417
417
@@ -1494,6 +1494,29 @@ func (c *ClusterClient) PSubscribe(channels ...string) *PubSub {
1494
1494
return pubsub
1495
1495
}
1496
1496
1497
+ func useOriginAddr (originAddr , nodeAddr string ) bool {
1498
+ nodeHost , nodePort , err := net .SplitHostPort (nodeAddr )
1499
+ if err != nil {
1500
+ return false
1501
+ }
1502
+
1503
+ nodeIP := net .ParseIP (nodeHost )
1504
+ if nodeIP == nil {
1505
+ return false
1506
+ }
1507
+
1508
+ if ! nodeIP .IsLoopback () {
1509
+ return false
1510
+ }
1511
+
1512
+ _ , originPort , err := net .SplitHostPort (originAddr )
1513
+ if err != nil {
1514
+ return false
1515
+ }
1516
+
1517
+ return nodePort == originPort
1518
+ }
1519
+
1497
1520
func isLoopbackAddr (addr string ) bool {
1498
1521
host , _ , err := net .SplitHostPort (addr )
1499
1522
if err != nil {
You can’t perform that action at this time.
0 commit comments