diff --git a/logic/peers.go b/logic/peers.go index 8a4fc854..51bce8cb 100644 --- a/logic/peers.go +++ b/logic/peers.go @@ -158,17 +158,20 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N } defaultUserPolicy, _ := GetDefaultPolicy(models.NetworkID(node.Network), models.UserPolicy) defaultDevicePolicy, _ := GetDefaultPolicy(models.NetworkID(node.Network), models.DevicePolicy) - if node.NetworkRange.IP != nil { - hostPeerUpdate.FwUpdate.Networks = append(hostPeerUpdate.FwUpdate.Networks, node.NetworkRange) - } - if node.NetworkRange6.IP != nil { - hostPeerUpdate.FwUpdate.Networks = append(hostPeerUpdate.FwUpdate.Networks, node.NetworkRange6) + + if defaultDevicePolicy.Enabled && defaultUserPolicy.Enabled { + if node.NetworkRange.IP != nil { + hostPeerUpdate.FwUpdate.AllowedNetworks = append(hostPeerUpdate.FwUpdate.AllowedNetworks, node.NetworkRange) + } + if node.NetworkRange6.IP != nil { + hostPeerUpdate.FwUpdate.AllowedNetworks = append(hostPeerUpdate.FwUpdate.AllowedNetworks, node.NetworkRange6) + } + + } else { + hostPeerUpdate.FwUpdate.AllowAll = false + hostPeerUpdate.FwUpdate.AclRules = GetAclRulesForNode(&node) } - if !defaultDevicePolicy.Enabled || !defaultUserPolicy.Enabled { - hostPeerUpdate.FwUpdate.AllowAll = false - } - hostPeerUpdate.FwUpdate.AclRules = GetAclRulesForNode(&node) currentPeers := GetNetworkNodesMemory(allNodes, node.Network) for _, peer := range currentPeers { peer := peer diff --git a/models/mqtt.go b/models/mqtt.go index 4a8a8c34..c5921f38 100644 --- a/models/mqtt.go +++ b/models/mqtt.go @@ -94,13 +94,13 @@ type KeyUpdate struct { // FwUpdate - struct for firewall updates type FwUpdate struct { - AllowAll bool `json:"allow_all"` - Networks []net.IPNet `json:"networks"` - IsEgressGw bool `json:"is_egress_gw"` - IsIngressGw bool `json:"is_ingress_gw"` - EgressInfo map[string]EgressInfo `json:"egress_info"` - IngressInfo map[string]IngressInfo `json:"ingress_info"` - AclRules map[string]AclRule `json:"acl_rules"` + AllowAll bool `json:"allow_all"` + AllowedNetworks []net.IPNet `json:"networks"` + IsEgressGw bool `json:"is_egress_gw"` + IsIngressGw bool `json:"is_ingress_gw"` + EgressInfo map[string]EgressInfo `json:"egress_info"` + IngressInfo map[string]IngressInfo `json:"ingress_info"` + AclRules map[string]AclRule `json:"acl_rules"` } // FailOverMeReq - struct for failover req