Преглед изворни кода

avoid setting nil endpoint if peer using internet gw (#3529)

Abhishek K пре 2 месеци
родитељ
комит
aca911712b
3 измењених фајлова са 10 додато и 1 уклоњено
  1. 2 0
      controllers/node.go
  2. 1 1
      logic/peers.go
  3. 7 0
      mq/publishers.go

+ 2 - 0
controllers/node.go

@@ -645,6 +645,8 @@ func updateNode(w http.ResponseWriter, r *http.Request) {
 			logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
 			return
 		}
+		newNode.RelayedNodes = append(newNode.RelayedNodes, newNode.InetNodeReq.InetNodeClientIDs...)
+		newNode.RelayedNodes = logic.UniqueStrings(newNode.RelayedNodes)
 	}
 	relayUpdate := logic.RelayUpdates(&currentNode, newNode)
 	if relayUpdate && newNode.IsRelay {

+ 1 - 1
logic/peers.go

@@ -330,7 +330,7 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 					peerEndpoint = peerHost.EndpointIPv6
 				}
 			}
-			if node.IsRelay && peer.RelayedBy == node.ID.String() && !peer.IsStatic {
+			if node.IsRelay && peer.RelayedBy == node.ID.String() && peer.InternetGwID == "" && !peer.IsStatic {
 				// don't set endpoint on relayed peer
 				peerEndpoint = nil
 			}

+ 7 - 0
mq/publishers.go

@@ -113,6 +113,13 @@ func PublishSingleHostPeerUpdate(host *models.Host, allNodes []models.Node, dele
 	if err != nil {
 		return err
 	}
+	for _, nodeID := range host.Nodes {
+
+		node, err := logic.GetNodeByID(nodeID)
+		if err == nil && node.Connected && node.InternetGwID != "" {
+			replacePeers = false
+		}
+	}
 	peerUpdate.OldPeerUpdateFields = models.OldPeerUpdateFields{
 		NodePeers:         peerUpdate.NodePeers,
 		OldPeers:          peerUpdate.Peers,