Переглянути джерело

fix failover of inetclient

abhishek9686 4 місяців тому
батько
коміт
268be7229e
2 змінених файлів з 4 додано та 4 видалено
  1. 4 1
      logic/egress.go
  2. 0 3
      logic/peers.go

+ 4 - 1
logic/egress.go

@@ -100,7 +100,7 @@ func GetInetClientsFromAclPolicies(eID string) (inetClientIDs []string) {
 	return
 }
 
-func IsNodeUsingInternetGw(node *models.Node) {
+func isNodeUsingInternetGw(node *models.Node) {
 	nodeTags := maps.Clone(node.Tags)
 	nodeTags[models.TagID(node.ID.String())] = struct{}{}
 	acls, _ := ListAclsByNetwork(models.NetworkID(node.Network))
@@ -189,6 +189,9 @@ func GetNodeEgressInfo(targetNode *models.Node) {
 		NodeID: targetNode.ID.String(),
 		NetID:  targetNode.Network,
 	}
+	defer func() {
+		isNodeUsingInternetGw(targetNode)
+	}()
 	for _, e := range eli {
 		if !e.Status {
 			continue

+ 0 - 3
logic/peers.go

@@ -201,8 +201,6 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 			continue
 		}
 		GetNodeEgressInfo(&node)
-		// set inet Info
-		IsNodeUsingInternetGw(&node)
 		hostPeerUpdate = SetDefaultGw(node, hostPeerUpdate)
 		if !hostPeerUpdate.IsInternetGw {
 			hostPeerUpdate.IsInternetGw = IsInternetGw(node)
@@ -254,7 +252,6 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 				ReplaceAllowedIPs:           true,
 			}
 			GetNodeEgressInfo(&peer)
-			IsNodeUsingInternetGw(&peer)
 			_, isFailOverPeer := node.FailOverPeers[peer.ID.String()]
 			if peer.IsEgressGateway {
 				peerKey := peerHost.PublicKey.String()