Merge pull request #1985 from gravitl/GRA-1063/bug_ingress_peers

skip if ext client doesn't belong to ingress GW
This commit is contained in:
dcarns 2023-01-27 15:32:13 -05:00 committed by GitHub
commit 83a88226a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -305,7 +305,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
ServerVersion: servercfg.GetVersion(), ServerVersion: servercfg.GetVersion(),
ServerAddrs: []models.ServerAddr{}, ServerAddrs: []models.ServerAddr{},
} }
log.Println("peer update for host ", host.ID.String()) logger.Log(1, "peer update for host ", host.ID.String())
peerIndexMap := make(map[string]int) peerIndexMap := make(map[string]int)
for _, nodeID := range host.Nodes { for _, nodeID := range host.Nodes {
node, err := GetNodeByID(nodeID) node, err := GetNodeByID(nodeID)
@ -325,7 +325,7 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
} }
for _, peer := range currentPeers { for _, peer := range currentPeers {
if peer.ID == node.ID { if peer.ID == node.ID {
log.Println("peer update, skipping self") logger.Log(2, "peer update, skipping self")
//skip yourself //skip yourself
continue continue
@ -333,12 +333,12 @@ func GetPeerUpdateForHost(host *models.Host) (models.HostPeerUpdate, error) {
var peerConfig wgtypes.PeerConfig var peerConfig wgtypes.PeerConfig
peerHost, err := GetHost(peer.HostID.String()) peerHost, err := GetHost(peer.HostID.String())
if err != nil { if err != nil {
log.Println("no peer host", err) logger.Log(1, "no peer host", peer.HostID.String(), err.Error())
return models.HostPeerUpdate{}, err return models.HostPeerUpdate{}, err
} }
if !peer.Connected { if !peer.Connected || peer.Action == models.NODE_DELETE || peer.PendingDelete {
log.Println("peer update, skipping unconnected node") logger.Log(2, "peer update, skipping unconnected node", peer.ID.String())
//skip unconnected nodes //skip unconnected nodes
continue continue
} }
@ -741,7 +741,8 @@ func getExtPeers(node *models.Node) ([]wgtypes.PeerConfig, []models.IDandAddr, e
continue continue
} }
if host.PublicKey.String() == extPeer.PublicKey { if host.PublicKey.String() == extPeer.PublicKey ||
extPeer.IngressGatewayID != node.ID.String() {
continue continue
} }
@ -805,7 +806,8 @@ func getExtPeersForProxy(node *models.Node, proxyPeerConf map[string]proxy_model
continue continue
} }
if host.PublicKey.String() == extPeer.PublicKey { if host.PublicKey.String() == extPeer.PublicKey ||
extPeer.IngressGatewayID != node.ID.String() {
continue continue
} }