mirror of
https://github.com/speatzle/nfsense.git
synced 2025-05-10 18:38:22 +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
|
||||
|
||||
import "nfsense.net/nfsense/internal/definitions"
|
||||
import (
|
||||
"nfsense.net/nfsense/internal/definitions/object"
|
||||
)
|
||||
|
||||
// ResolveBaseAddresses Resolves all groups to their base Addresses
|
||||
func ResolveBaseAddresses(allAddresses map[string]definitions.Address, addressNames []string) []definitions.Address {
|
||||
baseAddresses := []definitions.Address{}
|
||||
func ResolveBaseAddresses(allAddresses map[string]object.Address, addressNames []string) []object.Address {
|
||||
baseAddresses := []object.Address{}
|
||||
|
||||
for _, addressName := range addressNames {
|
||||
address := allAddresses[addressName]
|
||||
|
||||
if address.Type == definitions.AddressGroup {
|
||||
if address.Type == object.AddressGroup {
|
||||
baseAddresses = append(baseAddresses, resolveAddressChildren(allAddresses, address)...)
|
||||
} else {
|
||||
baseAddresses = append(baseAddresses, address)
|
||||
|
@ -20,12 +22,12 @@ func ResolveBaseAddresses(allAddresses map[string]definitions.Address, addressNa
|
|||
return baseAddresses
|
||||
}
|
||||
|
||||
func resolveAddressChildren(allAddresses map[string]definitions.Address, a definitions.Address) []definitions.Address {
|
||||
addressList := []definitions.Address{}
|
||||
func resolveAddressChildren(allAddresses map[string]object.Address, a object.Address) []object.Address {
|
||||
addressList := []object.Address{}
|
||||
for _, addressName := range *a.Children {
|
||||
address := allAddresses[addressName]
|
||||
|
||||
if address.Type == definitions.AddressGroup {
|
||||
if address.Type == object.AddressGroup {
|
||||
addressList = append(addressList, resolveAddressChildren(allAddresses, address)...)
|
||||
} else {
|
||||
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
|
||||
|
||||
import "nfsense.net/nfsense/internal/definitions"
|
||||
import "nfsense.net/nfsense/internal/definitions/object"
|
||||
|
||||
// ResolveBaseServices Resolves all groups to their base Services
|
||||
func ResolveBaseServices(allServices map[string]definitions.Service, serviceNames []string) []definitions.Service {
|
||||
baseServices := []definitions.Service{}
|
||||
func ResolveBaseServices(allServices map[string]object.Service, serviceNames []string) []object.Service {
|
||||
baseServices := []object.Service{}
|
||||
|
||||
for _, serviceName := range serviceNames {
|
||||
service := allServices[serviceName]
|
||||
|
||||
if service.Type == definitions.ServiceGroup {
|
||||
if service.Type == object.ServiceGroup {
|
||||
baseServices = append(baseServices, resolveServiceChildren(allServices, service)...)
|
||||
} else {
|
||||
baseServices = append(baseServices, service)
|
||||
|
@ -20,12 +20,12 @@ func ResolveBaseServices(allServices map[string]definitions.Service, serviceName
|
|||
return baseServices
|
||||
}
|
||||
|
||||
func resolveServiceChildren(allServices map[string]definitions.Service, s definitions.Service) []definitions.Service {
|
||||
serviceList := []definitions.Service{}
|
||||
func resolveServiceChildren(allServices map[string]object.Service, s object.Service) []object.Service {
|
||||
serviceList := []object.Service{}
|
||||
for _, serviceName := range *s.Children {
|
||||
service := allServices[serviceName]
|
||||
|
||||
if service.Type == definitions.ServiceGroup {
|
||||
if service.Type == object.ServiceGroup {
|
||||
serviceList = append(serviceList, resolveServiceChildren(allServices, service)...)
|
||||
} else {
|
||||
serviceList = append(serviceList, service)
|
||||
|
|
Loading…
Add table
Reference in a new issue