mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-11 02:48:21 +00:00
util additions
This commit is contained in:
parent
42c068833c
commit
fe7c06c550
3 changed files with 38 additions and 14 deletions
|
@ -1,15 +1,17 @@
|
||||||
package util
|
package util
|
||||||
|
|
||||||
import "nfsense.net/nfsense/internal/definitions"
|
import (
|
||||||
|
"nfsense.net/nfsense/internal/definitions/object"
|
||||||
|
)
|
||||||
|
|
||||||
// ResolveBaseAddresses Resolves all groups to their base Addresses
|
// ResolveBaseAddresses Resolves all groups to their base Addresses
|
||||||
func ResolveBaseAddresses(allAddresses map[string]definitions.Address, addressNames []string) []definitions.Address {
|
func ResolveBaseAddresses(allAddresses map[string]object.Address, addressNames []string) []object.Address {
|
||||||
baseAddresses := []definitions.Address{}
|
baseAddresses := []object.Address{}
|
||||||
|
|
||||||
for _, addressName := range addressNames {
|
for _, addressName := range addressNames {
|
||||||
address := allAddresses[addressName]
|
address := allAddresses[addressName]
|
||||||
|
|
||||||
if address.Type == definitions.AddressGroup {
|
if address.Type == object.AddressGroup {
|
||||||
baseAddresses = append(baseAddresses, resolveAddressChildren(allAddresses, address)...)
|
baseAddresses = append(baseAddresses, resolveAddressChildren(allAddresses, address)...)
|
||||||
} else {
|
} else {
|
||||||
baseAddresses = append(baseAddresses, address)
|
baseAddresses = append(baseAddresses, address)
|
||||||
|
@ -20,12 +22,12 @@ func ResolveBaseAddresses(allAddresses map[string]definitions.Address, addressNa
|
||||||
return baseAddresses
|
return baseAddresses
|
||||||
}
|
}
|
||||||
|
|
||||||
func resolveAddressChildren(allAddresses map[string]definitions.Address, a definitions.Address) []definitions.Address {
|
func resolveAddressChildren(allAddresses map[string]object.Address, a object.Address) []object.Address {
|
||||||
addressList := []definitions.Address{}
|
addressList := []object.Address{}
|
||||||
for _, addressName := range *a.Children {
|
for _, addressName := range *a.Children {
|
||||||
address := allAddresses[addressName]
|
address := allAddresses[addressName]
|
||||||
|
|
||||||
if address.Type == definitions.AddressGroup {
|
if address.Type == object.AddressGroup {
|
||||||
addressList = append(addressList, resolveAddressChildren(allAddresses, address)...)
|
addressList = append(addressList, resolveAddressChildren(allAddresses, address)...)
|
||||||
} else {
|
} else {
|
||||||
addressList = append(addressList, address)
|
addressList = append(addressList, address)
|
||||||
|
|
22
internal/util/net.go
Normal file
22
internal/util/net.go
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
package util
|
||||||
|
|
||||||
|
import (
|
||||||
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
|
func BroadcastAddr(n net.IPNet) net.IP {
|
||||||
|
var broadcast net.IP
|
||||||
|
var length int
|
||||||
|
if n.IP.To4() != nil {
|
||||||
|
broadcast = net.ParseIP("0.0.0.0").To4()
|
||||||
|
length = 4
|
||||||
|
} else {
|
||||||
|
broadcast = net.ParseIP("::")
|
||||||
|
length = 16
|
||||||
|
|
||||||
|
}
|
||||||
|
for i := 0; i < length; i++ {
|
||||||
|
broadcast[i] = n.IP[i] | ^n.Mask[i]
|
||||||
|
}
|
||||||
|
return broadcast
|
||||||
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
package util
|
package util
|
||||||
|
|
||||||
import "nfsense.net/nfsense/internal/definitions"
|
import "nfsense.net/nfsense/internal/definitions/object"
|
||||||
|
|
||||||
// ResolveBaseServices Resolves all groups to their base Services
|
// ResolveBaseServices Resolves all groups to their base Services
|
||||||
func ResolveBaseServices(allServices map[string]definitions.Service, serviceNames []string) []definitions.Service {
|
func ResolveBaseServices(allServices map[string]object.Service, serviceNames []string) []object.Service {
|
||||||
baseServices := []definitions.Service{}
|
baseServices := []object.Service{}
|
||||||
|
|
||||||
for _, serviceName := range serviceNames {
|
for _, serviceName := range serviceNames {
|
||||||
service := allServices[serviceName]
|
service := allServices[serviceName]
|
||||||
|
|
||||||
if service.Type == definitions.ServiceGroup {
|
if service.Type == object.ServiceGroup {
|
||||||
baseServices = append(baseServices, resolveServiceChildren(allServices, service)...)
|
baseServices = append(baseServices, resolveServiceChildren(allServices, service)...)
|
||||||
} else {
|
} else {
|
||||||
baseServices = append(baseServices, service)
|
baseServices = append(baseServices, service)
|
||||||
|
@ -20,12 +20,12 @@ func ResolveBaseServices(allServices map[string]definitions.Service, serviceName
|
||||||
return baseServices
|
return baseServices
|
||||||
}
|
}
|
||||||
|
|
||||||
func resolveServiceChildren(allServices map[string]definitions.Service, s definitions.Service) []definitions.Service {
|
func resolveServiceChildren(allServices map[string]object.Service, s object.Service) []object.Service {
|
||||||
serviceList := []definitions.Service{}
|
serviceList := []object.Service{}
|
||||||
for _, serviceName := range *s.Children {
|
for _, serviceName := range *s.Children {
|
||||||
service := allServices[serviceName]
|
service := allServices[serviceName]
|
||||||
|
|
||||||
if service.Type == definitions.ServiceGroup {
|
if service.Type == object.ServiceGroup {
|
||||||
serviceList = append(serviceList, resolveServiceChildren(allServices, service)...)
|
serviceList = append(serviceList, resolveServiceChildren(allServices, service)...)
|
||||||
} else {
|
} else {
|
||||||
serviceList = append(serviceList, service)
|
serviceList = append(serviceList, service)
|
||||||
|
|
Loading…
Add table
Reference in a new issue