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

This commit is contained in:
Abhishek K 2025-06-25 19:17:57 +05:30 committed by GitHub
parent 2df02f747e
commit aca911712b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 1 deletions

View file

@ -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 {

View file

@ -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
}

View file

@ -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,