فهرست منبع

when inet gw is peer ignore other allowedIps

abhishek9686 1 سال پیش
والد
کامیت
6410083834
1فایلهای تغییر یافته به همراه10 افزوده شده و 8 حذف شده
  1. 10 8
      logic/peers.go

+ 10 - 8
logic/peers.go

@@ -377,7 +377,15 @@ func GetPeerListenPort(host *models.Host) int {
 // GetAllowedIPs - calculates the wireguard allowedip field for a peer of a node based on the peer and node settings
 func GetAllowedIPs(node, peer *models.Node, metrics *models.Metrics) []net.IPNet {
 	var allowedips []net.IPNet
-	allowedips = getNodeAllowedIPs(peer, node)
+	if peer.IsInternetGateway {
+		if node.InternetGwID == peer.ID.String() {
+			allowedips = append(allowedips, GetAllowedIpForInetNodeClient(node, peer)...)
+			return allowedips
+		} else {
+			allowedips = append(allowedips, GetAllowedIpForInetPeerClient(peer)...)
+		}
+	}
+	allowedips = append(allowedips, getNodeAllowedIPs(peer, node)...)
 
 	// handle ingress gateway peers
 	if peer.IsIngressGateway {
@@ -392,13 +400,7 @@ func GetAllowedIPs(node, peer *models.Node, metrics *models.Metrics) []net.IPNet
 	if node.IsRelayed && node.RelayedBy == peer.ID.String() {
 		allowedips = append(allowedips, GetAllowedIpsForRelayed(node, peer)...)
 	}
-	if peer.IsInternetGateway {
-		if node.InternetGwID == peer.ID.String() {
-			allowedips = append(allowedips, GetAllowedIpForInetNodeClient(node, peer)...)
-		} else {
-			allowedips = append(allowedips, GetAllowedIpForInetPeerClient(peer)...)
-		}
-	}
+
 	return allowedips
 }